parent
0856ae12e0
commit
7bb45fdd8f
|
@ -314,10 +314,6 @@ dependencies {
|
|||
implementation project(':react-native-status')
|
||||
implementation project(':react-native-webview-bridge')
|
||||
implementation project(':react-native-status-keycard')
|
||||
implementation "com.google.android.gms:play-services-base:${rootProject.ext.googlePlayServicesVersion}"
|
||||
implementation 'com.google.firebase:firebase-core:16.0.9' //this decides your firebase SDK version
|
||||
implementation 'com.google.firebase:firebase-messaging:18.0.0'
|
||||
|
||||
implementation 'com.github.status-im:function:0.0.1'
|
||||
implementation 'com.facebook.fresco:animated-gif:1.10.0'
|
||||
}
|
||||
|
@ -342,8 +338,4 @@ task hemroidBuild(type: Exec) {
|
|||
|
||||
preBuild.dependsOn hemroidBuild
|
||||
|
||||
// Must be at bottom to avoid dependency collision
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "854811651919",
|
||||
"firebase_url": "https://status-react-app.firebaseio.com",
|
||||
"project_id": "status-react-app",
|
||||
"storage_bucket": "status-react-app.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:11ee7444ded8a00a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -61,7 +61,3 @@
|
|||
-dontwarn java.nio.file.*
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
||||
-dontwarn okio.**
|
||||
|
||||
# Firebase
|
||||
-keep class io.invertase.firebase.** { *; }
|
||||
-dontwarn io.invertase.firebase.**
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "854811651919",
|
||||
"firebase_url": "https://status-react-app.firebaseio.com",
|
||||
"project_id": "status-react-app",
|
||||
"storage_bucket": "status-react-app.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:11ee7444ded8a00a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum.debug"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -33,16 +33,6 @@
|
|||
android:name=".MainApplication"
|
||||
android:largeHeap="true"
|
||||
android:usesCleartextTraffic="true">
|
||||
<meta-data android:name="firebase_analytics_collection_deactivated" android:value="true" />
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_icon"
|
||||
android:resource="@drawable/ic_stat_status_notification" />
|
||||
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
||||
android:value="@string/notification_channel_id" />
|
||||
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
|
@ -78,12 +68,6 @@
|
|||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
|
||||
<service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service android:name="io.invertase.firebase.messaging.RNFirebaseBackgroundMessagingService" />
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.provider"
|
||||
|
|
|
@ -17,8 +17,6 @@ import java.util.List;
|
|||
|
||||
import im.status.ethereum.keycard.RNStatusKeycardPackage;
|
||||
import im.status.ethereum.module.StatusPackage;
|
||||
import io.invertase.firebase.messaging.RNFirebaseMessagingPackage;
|
||||
import io.invertase.firebase.notifications.RNFirebaseNotificationsPackage;
|
||||
|
||||
public class MainApplication extends MultiDexApplication implements ReactApplication {
|
||||
|
||||
|
@ -33,8 +31,6 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
|
|||
StatusPackage statusPackage = new StatusPackage(RootUtil.isDeviceRooted());
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
packages.add(statusPackage);
|
||||
packages.add(new RNFirebaseMessagingPackage());
|
||||
packages.add(new RNFirebaseNotificationsPackage());
|
||||
packages.add(new ReactNativeDialogsPackage());
|
||||
packages.add(new RNStatusKeycardPackage());
|
||||
packages.add(new WebViewBridgePackage(BuildConfig.DEBUG_WEBVIEW == "1"));
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "854811651919",
|
||||
"firebase_url": "https://status-react-app.firebaseio.com",
|
||||
"project_id": "status-react-app",
|
||||
"storage_bucket": "status-react-app.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:11ee7444ded8a00a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum.pr"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "854811651919",
|
||||
"firebase_url": "https://status-react-app.firebaseio.com",
|
||||
"project_id": "status-react-app",
|
||||
"storage_bucket": "status-react-app.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:11ee7444ded8a00a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -10,8 +10,6 @@ ext {
|
|||
targetSdkVersion = Integer.valueOf(project.targetSdkVersion)
|
||||
supportLibVersion = project.supportLibVersion
|
||||
gradlePluginVersion = project.gradlePluginVersion
|
||||
googlePlayServicesVersion = project.googlePlayServicesVersion
|
||||
googlePlayServicesVisionVersion = project.googlePlayServicesVisionVersion
|
||||
}
|
||||
|
||||
buildscript {
|
||||
|
@ -22,7 +20,6 @@ buildscript {
|
|||
}
|
||||
dependencies {
|
||||
classpath "com.android.tools.build:gradle:${project.ext.gradlePluginVersion}"
|
||||
classpath 'com.google.gms:google-services:4.2.0'
|
||||
classpath 'de.undercouch:gradle-download-task:3.1.2'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
|
|
|
@ -27,8 +27,6 @@ targetSdkVersion=28
|
|||
buildToolsVersion=28.0.3
|
||||
supportLibVersion=28.0.0
|
||||
gradlePluginVersion=3.4.1
|
||||
googlePlayServicesVersion=16.0.1
|
||||
googlePlayServicesVisionVersion=17.0.2
|
||||
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
"react-native-image-crop-picker"
|
||||
"react-native-svg"
|
||||
"react-native-webview-bridge"
|
||||
"react-native-firebase"
|
||||
"react-native-touch-id"
|
||||
"web3-utils"
|
||||
"chance"
|
||||
|
|
|
@ -141,7 +141,6 @@ var TopLevel = {
|
|||
"generateAlias": function() {},
|
||||
"fallbacks" : function () {},
|
||||
"fetch" : function () {},
|
||||
"firebase" : function () {},
|
||||
"floor" : function () {},
|
||||
"focus" : function () {},
|
||||
"format" : function () {},
|
||||
|
@ -428,7 +427,6 @@ var TopLevel = {
|
|||
"scrollToIndex" : function () {},
|
||||
"section" : function () {},
|
||||
"selection" : function () {},
|
||||
"sendDataNotification" : function () {},
|
||||
"sendDirectMessage" : function () {},
|
||||
"sendLogs" : function () {},
|
||||
"sendPairingMessage" : function () {},
|
||||
|
|
|
@ -5,13 +5,12 @@
|
|||
[status-im.ui.screens.wallet.add-new.views :as add-new]
|
||||
[fiddle.frame :as frame]))
|
||||
|
||||
;:generate-key
|
||||
;:choose-key
|
||||
;:select-key-storage
|
||||
;:create-code
|
||||
;:confirm-code
|
||||
;:enable-fingerprint
|
||||
;:enable-notifications
|
||||
;;:generate-key
|
||||
;;:choose-key
|
||||
;;:select-key-storage
|
||||
;;:create-code
|
||||
;;:confirm-code
|
||||
;;:enable-fingerprint
|
||||
(re-frame/reg-sub :intro-wizard (fn [_] {:step :generate-key :generating-keys? false}))
|
||||
|
||||
(defn screens []
|
||||
|
@ -21,4 +20,4 @@
|
|||
[frame/frame
|
||||
[intro/wizard]]
|
||||
[frame/frame
|
||||
[add-new/add-account]]])
|
||||
[add-new/add-account]]])
|
||||
|
|
|
@ -26,9 +26,6 @@
|
|||
(def svg (fn [] #js {:default #js {}}))
|
||||
(def status-keycard (fn [] #js {:default #js {}}))
|
||||
|
||||
(defrecord Notification [])
|
||||
(def react-native-firebase (fn [] #js {:default #js {:notifications #js {:Notification Notification}}}))
|
||||
|
||||
(def desktop-linking #js {:addEventListener (fn [])})
|
||||
(def desktop-shortcuts #js {:addEventListener (fn [])})
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1,54 +0,0 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This class provides configuration fields for Firebase Analytics.
|
||||
*/
|
||||
FIR_SWIFT_NAME(AnalyticsConfiguration)
|
||||
@interface FIRAnalyticsConfiguration : NSObject
|
||||
|
||||
/**
|
||||
* Returns the shared instance of FIRAnalyticsConfiguration.
|
||||
*/
|
||||
+ (FIRAnalyticsConfiguration *)sharedInstance FIR_SWIFT_NAME(shared());
|
||||
|
||||
/**
|
||||
* Sets the minimum engagement time in seconds required to start a new session. The default value
|
||||
* is 10 seconds.
|
||||
*/
|
||||
- (void)setMinimumSessionInterval:(NSTimeInterval)minimumSessionInterval;
|
||||
|
||||
/**
|
||||
* Sets the interval of inactivity in seconds that terminates the current session. The default
|
||||
* value is 1800 seconds (30 minutes).
|
||||
*/
|
||||
- (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval;
|
||||
|
||||
/**
|
||||
* Sets whether analytics collection is enabled for this app on this device. This setting is
|
||||
* persisted across app sessions. By default it is enabled.
|
||||
*/
|
||||
- (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -1,132 +0,0 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#if TARGET_OS_IOS
|
||||
// TODO: Remove UIKit import on next breaking change release
|
||||
#import <UIKit/UIKit.h>
|
||||
#endif
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
@class FIROptions;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** A block that takes a BOOL and has no return value. */
|
||||
typedef void (^FIRAppVoidBoolCallback)(BOOL success) FIR_SWIFT_NAME(FirebaseAppVoidBoolCallback);
|
||||
|
||||
/**
|
||||
* The entry point of Firebase SDKs.
|
||||
*
|
||||
* Initialize and configure FIRApp using +[FIRApp configure]
|
||||
* or other customized ways as shown below.
|
||||
*
|
||||
* The logging system has two modes: default mode and debug mode. In default mode, only logs with
|
||||
* log level Notice, Warning and Error will be sent to device. In debug mode, all logs will be sent
|
||||
* to device. The log levels that Firebase uses are consistent with the ASL log levels.
|
||||
*
|
||||
* Enable debug mode by passing the -FIRDebugEnabled argument to the application. You can add this
|
||||
* argument in the application's Xcode scheme. When debug mode is enabled via -FIRDebugEnabled,
|
||||
* further executions of the application will also be in debug mode. In order to return to default
|
||||
* mode, you must explicitly disable the debug mode with the application argument -FIRDebugDisabled.
|
||||
*
|
||||
* It is also possible to change the default logging level in code by calling setLoggerLevel: on
|
||||
* the FIRConfiguration interface.
|
||||
*/
|
||||
FIR_SWIFT_NAME(FirebaseApp)
|
||||
@interface FIRApp : NSObject
|
||||
|
||||
/**
|
||||
* Configures a default Firebase app. Raises an exception if any configuration step fails. The
|
||||
* default app is named "__FIRAPP_DEFAULT". This method should be called after the app is launched
|
||||
* and before using Firebase services. This method is thread safe.
|
||||
*/
|
||||
+ (void)configure;
|
||||
|
||||
/**
|
||||
* Configures the default Firebase app with the provided options. The default app is named
|
||||
* "__FIRAPP_DEFAULT". Raises an exception if any configuration step fails. This method is thread
|
||||
* safe.
|
||||
*
|
||||
* @param options The Firebase application options used to configure the service.
|
||||
*/
|
||||
+ (void)configureWithOptions:(FIROptions *)options FIR_SWIFT_NAME(configure(options:));
|
||||
|
||||
/**
|
||||
* Configures a Firebase app with the given name and options. Raises an exception if any
|
||||
* configuration step fails. This method is thread safe.
|
||||
*
|
||||
* @param name The application's name given by the developer. The name should should only contain
|
||||
Letters, Numbers and Underscore.
|
||||
* @param options The Firebase application options used to configure the services.
|
||||
*/
|
||||
// clang-format off
|
||||
+ (void)configureWithName:(NSString *)name
|
||||
options:(FIROptions *)options FIR_SWIFT_NAME(configure(name:options:));
|
||||
// clang-format on
|
||||
|
||||
/**
|
||||
* Returns the default app, or nil if the default app does not exist.
|
||||
*/
|
||||
+ (nullable FIRApp *)defaultApp FIR_SWIFT_NAME(app());
|
||||
|
||||
/**
|
||||
* Returns a previously created FIRApp instance with the given name, or nil if no such app exists.
|
||||
* This method is thread safe.
|
||||
*/
|
||||
+ (nullable FIRApp *)appNamed:(NSString *)name FIR_SWIFT_NAME(app(name:));
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/**
|
||||
* Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This
|
||||
* method is thread safe.
|
||||
*/
|
||||
@property(class, readonly, nullable) NSDictionary<NSString *, FIRApp *> *allApps;
|
||||
#else
|
||||
/**
|
||||
* Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This
|
||||
* method is thread safe.
|
||||
*/
|
||||
+ (nullable NSDictionary<NSString *, FIRApp *> *)allApps FIR_SWIFT_NAME(allApps());
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/**
|
||||
* Cleans up the current FIRApp, freeing associated data and returning its name to the pool for
|
||||
* future use. This method is thread safe.
|
||||
*/
|
||||
- (void)deleteApp:(FIRAppVoidBoolCallback)completion;
|
||||
|
||||
/**
|
||||
* FIRApp instances should not be initialized directly. Call +[FIRApp configure],
|
||||
* +[FIRApp configureWithOptions:], or +[FIRApp configureWithNames:options:] directly.
|
||||
*/
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/**
|
||||
* Gets the name of this app.
|
||||
*/
|
||||
@property(nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
/**
|
||||
* Gets a copy of the options for this app. These are non-modifiable.
|
||||
*/
|
||||
@property(nonatomic, copy, readonly) FIROptions *options;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -1,79 +0,0 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "FIRAnalyticsConfiguration.h"
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
#import "FIRLoggerLevel.h"
|
||||
|
||||
/**
|
||||
* The log levels used by FIRConfiguration.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRLogLevel) {
|
||||
/** Error */
|
||||
kFIRLogLevelError __deprecated = 0,
|
||||
/** Warning */
|
||||
kFIRLogLevelWarning __deprecated,
|
||||
/** Info */
|
||||
kFIRLogLevelInfo __deprecated,
|
||||
/** Debug */
|
||||
kFIRLogLevelDebug __deprecated,
|
||||
/** Assert */
|
||||
kFIRLogLevelAssert __deprecated,
|
||||
/** Max */
|
||||
kFIRLogLevelMax __deprecated = kFIRLogLevelAssert
|
||||
} DEPRECATED_MSG_ATTRIBUTE(
|
||||
"Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details.");
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This interface provides global level properties that the developer can tweak, and the singleton
|
||||
* of the Firebase Analytics configuration class.
|
||||
*/
|
||||
FIR_SWIFT_NAME(FirebaseConfiguration)
|
||||
@interface FIRConfiguration : NSObject
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/** Returns the shared configuration object. */
|
||||
@property(class, nonatomic, readonly) FIRConfiguration *sharedInstance FIR_SWIFT_NAME(shared);
|
||||
#else
|
||||
/** Returns the shared configuration object. */
|
||||
+ (FIRConfiguration *)sharedInstance FIR_SWIFT_NAME(shared());
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/** The configuration class for Firebase Analytics. */
|
||||
@property(nonatomic, readwrite) FIRAnalyticsConfiguration *analyticsConfiguration;
|
||||
|
||||
/** Global log level. Defaults to kFIRLogLevelError. */
|
||||
@property(nonatomic, readwrite, assign) FIRLogLevel logLevel DEPRECATED_MSG_ATTRIBUTE(
|
||||
"Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details.");
|
||||
|
||||
/**
|
||||
* Sets the logging level for internal Firebase logging. Firebase will only log messages
|
||||
* that are logged at or below loggerLevel. The messages are logged both to the Xcode
|
||||
* console and to the device's log. Note that if an app is running from AppStore, it will
|
||||
* never log above FIRLoggerLevelNotice even if loggerLevel is set to a higher (more verbose)
|
||||
* setting.
|
||||
*
|
||||
* @param loggerLevel The maximum logging level. The default level is set to FIRLoggerLevelNotice.
|
||||
*/
|
||||
- (void)setLoggerLevel:(FIRLoggerLevel)loggerLevel;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -1,29 +0,0 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef FIR_SWIFT_NAME
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK.
|
||||
// Wrap it in our own macro if it's a non-compatible SDK.
|
||||
#ifdef __IPHONE_9_3
|
||||
#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X)
|
||||
#else
|
||||
#define FIR_SWIFT_NAME(X) // Intentionally blank.
|
||||
#endif // #ifdef __IPHONE_9_3
|
||||
|
||||
#endif // FIR_SWIFT_NAME
|
|
@ -1,37 +0,0 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
/**
|
||||
* The log levels used by internal logging.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRLoggerLevel) {
|
||||
/** Error level, matches ASL_LEVEL_ERR. */
|
||||
FIRLoggerLevelError = 3,
|
||||
/** Warning level, matches ASL_LEVEL_WARNING. */
|
||||
FIRLoggerLevelWarning = 4,
|
||||
/** Notice level, matches ASL_LEVEL_NOTICE. */
|
||||
FIRLoggerLevelNotice = 5,
|
||||
/** Info level, matches ASL_LEVEL_NOTICE. */
|
||||
FIRLoggerLevelInfo = 6,
|
||||
/** Debug level, matches ASL_LEVEL_DEBUG. */
|
||||
FIRLoggerLevelDebug = 7,
|
||||
/** Minimum log level. */
|
||||
FIRLoggerLevelMin = FIRLoggerLevelError,
|
||||
/** Maximum log level. */
|
||||
FIRLoggerLevelMax = FIRLoggerLevelDebug
|
||||
} FIR_SWIFT_NAME(FirebaseLoggerLevel);
|
|
@ -1,135 +0,0 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This class provides constant fields of Google APIs.
|
||||
*/
|
||||
FIR_SWIFT_NAME(FirebaseOptions)
|
||||
@interface FIROptions : NSObject <NSCopying>
|
||||
|
||||
/**
|
||||
* Returns the default options.
|
||||
*/
|
||||
+ (nullable FIROptions *)defaultOptions FIR_SWIFT_NAME(defaultOptions());
|
||||
|
||||
/**
|
||||
* An iOS API key used for authenticating requests from your app, e.g.
|
||||
* @"AIzaSyDdVgKwhZl0sTTTLZ7iTmt1r3N2cJLnaDk", used to identify your app to Google servers.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *APIKey FIR_SWIFT_NAME(apiKey);
|
||||
|
||||
/**
|
||||
* The bundle ID for the application. Defaults to `[[NSBundle mainBundle] bundleID]` when not set
|
||||
* manually or in a plist.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *bundleID;
|
||||
|
||||
/**
|
||||
* The OAuth2 client ID for iOS application used to authenticate Google users, for example
|
||||
* @"12345.apps.googleusercontent.com", used for signing in with Google.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *clientID;
|
||||
|
||||
/**
|
||||
* The tracking ID for Google Analytics, e.g. @"UA-12345678-1", used to configure Google Analytics.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *trackingID;
|
||||
|
||||
/**
|
||||
* The Project Number from the Google Developer's console, for example @"012345678901", used to
|
||||
* configure Google Cloud Messaging.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *GCMSenderID FIR_SWIFT_NAME(gcmSenderID);
|
||||
|
||||
/**
|
||||
* The Project ID from the Firebase console, for example @"abc-xyz-123".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *projectID;
|
||||
|
||||
/**
|
||||
* The Android client ID used in Google AppInvite when an iOS app has its Android version, for
|
||||
* example @"12345.apps.googleusercontent.com".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *androidClientID;
|
||||
|
||||
/**
|
||||
* The Google App ID that is used to uniquely identify an instance of an app.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *googleAppID;
|
||||
|
||||
/**
|
||||
* The database root URL, e.g. @"http://abc-xyz-123.firebaseio.com".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *databaseURL;
|
||||
|
||||
/**
|
||||
* The URL scheme used to set up Durable Deep Link service.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *deepLinkURLScheme;
|
||||
|
||||
/**
|
||||
* The Google Cloud Storage bucket name, e.g. @"abc-xyz-123.storage.firebase.com".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *storageBucket;
|
||||
|
||||
/**
|
||||
* Initializes a customized instance of FIROptions with keys. googleAppID, bundleID and GCMSenderID
|
||||
* are required. Other keys may required for configuring specific services.
|
||||
*/
|
||||
- (instancetype)initWithGoogleAppID:(NSString *)googleAppID
|
||||
bundleID:(NSString *)bundleID
|
||||
GCMSenderID:(NSString *)GCMSenderID
|
||||
APIKey:(NSString *)APIKey
|
||||
clientID:(NSString *)clientID
|
||||
trackingID:(NSString *)trackingID
|
||||
androidClientID:(NSString *)androidClientID
|
||||
databaseURL:(NSString *)databaseURL
|
||||
storageBucket:(NSString *)storageBucket
|
||||
deepLinkURLScheme:(NSString *)deepLinkURLScheme
|
||||
DEPRECATED_MSG_ATTRIBUTE(
|
||||
"Use `-[[FIROptions alloc] initWithGoogleAppID:GCMSenderID:]` "
|
||||
"(`FirebaseOptions(googleAppID:gcmSenderID:)` in Swift)` and property "
|
||||
"setters instead.");
|
||||
|
||||
/**
|
||||
* Initializes a customized instance of FIROptions from the file at the given plist file path.
|
||||
* For example,
|
||||
* NSString *filePath =
|
||||
* [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
|
||||
* FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];
|
||||
* Returns nil if the plist file does not exist or is invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithContentsOfFile:(NSString *)plistPath;
|
||||
|
||||
/**
|
||||
* Initializes a customized instance of FIROptions with required fields. Use the mutable properties
|
||||
* to modify fields for configuring specific services.
|
||||
*/
|
||||
// clang-format off
|
||||
- (instancetype)initWithGoogleAppID:(NSString *)googleAppID
|
||||
GCMSenderID:(NSString *)GCMSenderID
|
||||
FIR_SWIFT_NAME(init(googleAppID:gcmSenderID:));
|
||||
// clang-format on
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -1,6 +0,0 @@
|
|||
#import "FIRAnalyticsConfiguration.h"
|
||||
#import "FIRApp.h"
|
||||
#import "FIRConfiguration.h"
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
#import "FIRLoggerLevel.h"
|
||||
#import "FIROptions.h"
|
|
@ -1,5 +0,0 @@
|
|||
framework module FirebaseCore {
|
||||
umbrella header "FirebaseCore.h"
|
||||
export *
|
||||
module * { export *}
|
||||
link "z"}
|
Binary file not shown.
|
@ -1,4 +0,0 @@
|
|||
framework module FirebaseCoreDiagnostics {
|
||||
export *
|
||||
module * { export *}
|
||||
link "z"}
|
Binary file not shown.
|
@ -1,281 +0,0 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
|
||||
// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK.
|
||||
// Wrap it in our own macro if it's a non-compatible SDK.
|
||||
#ifndef FIR_SWIFT_NAME
|
||||
#ifdef __IPHONE_9_3
|
||||
#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X)
|
||||
#else
|
||||
#define FIR_SWIFT_NAME(X) // Intentionally blank.
|
||||
#endif // #ifdef __IPHONE_9_3
|
||||
#endif // #ifndef FIR_SWIFT_NAME
|
||||
|
||||
/**
|
||||
* @memberof FIRInstanceID
|
||||
*
|
||||
* The scope to be used when fetching/deleting a token for Firebase Messaging.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDScopeFirebaseMessaging
|
||||
FIR_SWIFT_NAME(InstanceIDScopeFirebaseMessaging);
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/**
|
||||
* Called when the system determines that tokens need to be refreshed.
|
||||
* This method is also called if Instance ID has been reset in which
|
||||
* case, tokens and FCM topic subscriptions also need to be refreshed.
|
||||
*
|
||||
* Instance ID service will throttle the refresh event across all devices
|
||||
* to control the rate of token updates on application servers.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull kFIRInstanceIDTokenRefreshNotification
|
||||
FIR_SWIFT_NAME(InstanceIDTokenRefresh);
|
||||
#else
|
||||
/**
|
||||
* Called when the system determines that tokens need to be refreshed.
|
||||
* This method is also called if Instance ID has been reset in which
|
||||
* case, tokens and FCM topic subscriptions also need to be refreshed.
|
||||
*
|
||||
* Instance ID service will throttle the refresh event across all devices
|
||||
* to control the rate of token updates on application servers.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDTokenRefreshNotification
|
||||
FIR_SWIFT_NAME(InstanceIDTokenRefreshNotification);
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the InstanceID token returns. If
|
||||
* the call fails we return the appropriate `error code` as described below.
|
||||
*
|
||||
* @param token The valid token as returned by InstanceID backend.
|
||||
*
|
||||
* @param error The error describing why generating a new token
|
||||
* failed. See the error codes below for a more detailed
|
||||
* description.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDTokenHandler);
|
||||
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the InstanceID `deleteToken` returns. If
|
||||
* the call fails we return the appropriate `error code` as described below
|
||||
*
|
||||
* @param error The error describing why deleting the token failed.
|
||||
* See the error codes below for a more detailed description.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDDeleteTokenHandler)(NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDDeleteTokenHandler);
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the app identity is created. If the
|
||||
* identity wasn't created for some reason we return the appropriate error code.
|
||||
*
|
||||
* @param identity A valid identity for the app instance, nil if there was an error
|
||||
* while creating an identity.
|
||||
* @param error The error if fetching the identity fails else nil.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDHandler)(NSString * __nullable identity, NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDHandler);
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the app identity and all the tokens associated
|
||||
* with it are deleted. Returns a valid error object in case of failure else nil.
|
||||
*
|
||||
* @param error The error if deleting the identity and all the tokens associated with
|
||||
* it fails else nil.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDDeleteHandler)(NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDDeleteHandler);
|
||||
|
||||
/**
|
||||
* @enum FIRInstanceIDError
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, FIRInstanceIDError) {
|
||||
// Http related errors.
|
||||
|
||||
/// Unknown error.
|
||||
FIRInstanceIDErrorUnknown = 0,
|
||||
|
||||
/// Auth Error -- GCM couldn't validate request from this client.
|
||||
FIRInstanceIDErrorAuthentication = 1,
|
||||
|
||||
/// NoAccess -- InstanceID service cannot be accessed.
|
||||
FIRInstanceIDErrorNoAccess = 2,
|
||||
|
||||
/// Timeout -- Request to InstanceID backend timed out.
|
||||
FIRInstanceIDErrorTimeout = 3,
|
||||
|
||||
/// Network -- No network available to reach the servers.
|
||||
FIRInstanceIDErrorNetwork = 4,
|
||||
|
||||
/// OperationInProgress -- Another similar operation in progress,
|
||||
/// bailing this one.
|
||||
FIRInstanceIDErrorOperationInProgress = 5,
|
||||
|
||||
/// InvalidRequest -- Some parameters of the request were invalid.
|
||||
FIRInstanceIDErrorInvalidRequest = 7,
|
||||
} FIR_SWIFT_NAME(InstanceIDError);
|
||||
|
||||
/**
|
||||
* The APNS token type for the app. If the token type is set to `UNKNOWN`
|
||||
* InstanceID will implicitly try to figure out what the actual token type
|
||||
* is from the provisioning profile.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
|
||||
/// Unknown token type.
|
||||
FIRInstanceIDAPNSTokenTypeUnknown,
|
||||
/// Sandbox token type.
|
||||
FIRInstanceIDAPNSTokenTypeSandbox,
|
||||
/// Production token type.
|
||||
FIRInstanceIDAPNSTokenTypeProd,
|
||||
} FIR_SWIFT_NAME(InstanceIDAPNSTokenType)
|
||||
__deprecated_enum_msg("Use FIRMessaging's APNSToken property instead.");
|
||||
|
||||
/**
|
||||
* Instance ID provides a unique identifier for each app instance and a mechanism
|
||||
* to authenticate and authorize actions (for example, sending an FCM message).
|
||||
*
|
||||
* Instance ID is long lived but, may be reset if the device is not used for
|
||||
* a long time or the Instance ID service detects a problem.
|
||||
* If Instance ID is reset, the app will be notified via
|
||||
* `kFIRInstanceIDTokenRefreshNotification`.
|
||||
*
|
||||
* If the Instance ID has become invalid, the app can request a new one and
|
||||
* send it to the app server.
|
||||
* To prove ownership of Instance ID and to allow servers to access data or
|
||||
* services associated with the app, call
|
||||
* `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`.
|
||||
*/
|
||||
FIR_SWIFT_NAME(InstanceID)
|
||||
@interface FIRInstanceID : NSObject
|
||||
|
||||
/**
|
||||
* FIRInstanceID.
|
||||
*
|
||||
* @return A shared instance of FIRInstanceID.
|
||||
*/
|
||||
+ (nonnull instancetype)instanceID FIR_SWIFT_NAME(instanceID());
|
||||
|
||||
/**
|
||||
* Unavailable. Use +instanceID instead.
|
||||
*/
|
||||
- (nonnull instancetype)init __attribute__((unavailable("Use +instanceID instead.")));
|
||||
|
||||
/**
|
||||
* Set APNS token for the application. This APNS token will be used to register
|
||||
* with Firebase Messaging using `token` or
|
||||
* `tokenWithAuthorizedEntity:scope:options:handler`. If the token type is set to
|
||||
* `FIRInstanceIDAPNSTokenTypeUnknown` InstanceID will read the provisioning profile
|
||||
* to find out the token type.
|
||||
*
|
||||
* @param token The APNS token for the application.
|
||||
* @param type The APNS token type for the above token.
|
||||
*/
|
||||
- (void)setAPNSToken:(nonnull NSData *)token
|
||||
type:(FIRInstanceIDAPNSTokenType)type
|
||||
__deprecated_msg("Use FIRMessaging's APNSToken property instead.");
|
||||
|
||||
#pragma mark - Tokens
|
||||
|
||||
/**
|
||||
* Returns a Firebase Messaging scoped token for the firebase app.
|
||||
*
|
||||
* @return Null Returns null if the device has not yet been registerd with
|
||||
* Firebase Message else returns a valid token.
|
||||
*/
|
||||
- (nullable NSString *)token;
|
||||
|
||||
/**
|
||||
* Returns a token that authorizes an Entity (example: cloud service) to perform
|
||||
* an action on behalf of the application identified by Instance ID.
|
||||
*
|
||||
* This is similar to an OAuth2 token except, it applies to the
|
||||
* application instance instead of a user.
|
||||
*
|
||||
* This is an asynchronous call. If the token fetching fails for some reason
|
||||
* we invoke the completion callback with nil `token` and the appropriate
|
||||
* error.
|
||||
*
|
||||
* Note, you can only have one `token` or `deleteToken` call for a given
|
||||
* authorizedEntity and scope at any point of time. Making another such call with the
|
||||
* same authorizedEntity and scope before the last one finishes will result in an
|
||||
* error with code `OperationInProgress`.
|
||||
*
|
||||
* @see FIRInstanceID deleteTokenWithAuthorizedEntity:scope:handler:
|
||||
*
|
||||
* @param authorizedEntity Entity authorized by the token.
|
||||
* @param scope Action authorized for authorizedEntity.
|
||||
* @param options The extra options to be sent with your token request. The
|
||||
* value for the `apns_token` should be the NSData object
|
||||
* passed to the UIApplicationDelegate's
|
||||
* `didRegisterForRemoteNotificationsWithDeviceToken` method.
|
||||
* The value for `apns_sandbox` should be a boolean (or an
|
||||
* NSNumber representing a BOOL in Objective C) set to true if
|
||||
* your app is a debug build, which means that the APNs
|
||||
* device token is for the sandbox environment. It should be
|
||||
* set to false otherwise.
|
||||
* @param handler The callback handler which is invoked when the token is
|
||||
* successfully fetched. In case of success a valid `token` and
|
||||
* `nil` error are returned. In case of any error the `token`
|
||||
* is nil and a valid `error` is returned. The valid error
|
||||
* codes have been documented above.
|
||||
*/
|
||||
- (void)tokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity
|
||||
scope:(nonnull NSString *)scope
|
||||
options:(nullable NSDictionary *)options
|
||||
handler:(nonnull FIRInstanceIDTokenHandler)handler;
|
||||
|
||||
/**
|
||||
* Revokes access to a scope (action) for an entity previously
|
||||
* authorized by `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`.
|
||||
*
|
||||
* This is an asynchronous call. Call this on the main thread since InstanceID lib
|
||||
* is not thread safe. In case token deletion fails for some reason we invoke the
|
||||
* `handler` callback passed in with the appropriate error code.
|
||||
*
|
||||
* Note, you can only have one `token` or `deleteToken` call for a given
|
||||
* authorizedEntity and scope at a point of time. Making another such call with the
|
||||
* same authorizedEntity and scope before the last one finishes will result in an error
|
||||
* with code `OperationInProgress`.
|
||||
*
|
||||
* @param authorizedEntity Entity that must no longer have access.
|
||||
* @param scope Action that entity is no longer authorized to perform.
|
||||
* @param handler The handler that is invoked once the unsubscribe call ends.
|
||||
* In case of error an appropriate error object is returned
|
||||
* else error is nil.
|
||||
*/
|
||||
- (void)deleteTokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity
|
||||
scope:(nonnull NSString *)scope
|
||||
handler:(nonnull FIRInstanceIDDeleteTokenHandler)handler;
|
||||
|
||||
#pragma mark - Identity
|
||||
|
||||
/**
|
||||
* Asynchronously fetch a stable identifier that uniquely identifies the app
|
||||
* instance. If the identifier has been revoked or has expired, this method will
|
||||
* return a new identifier.
|
||||
*
|
||||
*
|
||||
* @param handler The handler to invoke once the identifier has been fetched.
|
||||
* In case of error an appropriate error object is returned else
|
||||
* a valid identifier is returned and a valid identifier for the
|
||||
* application instance.
|
||||
*/
|
||||
- (void)getIDWithHandler:(nonnull FIRInstanceIDHandler)handler
|
||||
FIR_SWIFT_NAME(getID(handler:));
|
||||
|
||||
/**
|
||||
* Resets Instance ID and revokes all tokens.
|
||||
*/
|
||||
- (void)deleteIDWithHandler:(nonnull FIRInstanceIDDeleteHandler)handler
|
||||
FIR_SWIFT_NAME(deleteID(handler:));
|
||||
|
||||
@end
|
|
@ -1 +0,0 @@
|
|||
#import "FIRInstanceID.h"
|
|
@ -1,5 +0,0 @@
|
|||
framework module FirebaseInstanceID {
|
||||
umbrella header "FirebaseInstanceID.h"
|
||||
export *
|
||||
module * { export *}
|
||||
link "z"}
|
Binary file not shown.
|
@ -1,492 +0,0 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK.
|
||||
// Wrap it in our own macro if it's a non-compatible SDK.
|
||||
#ifndef FIR_SWIFT_NAME
|
||||
#ifdef __IPHONE_9_3
|
||||
#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X)
|
||||
#else
|
||||
#define FIR_SWIFT_NAME(X) // Intentionally blank.
|
||||
#endif // #ifdef __IPHONE_9_3
|
||||
#endif // #ifndef FIR_SWIFT_NAME
|
||||
|
||||
/**
|
||||
* @related FIRMessaging
|
||||
*
|
||||
* The completion handler invoked when the registration token returns.
|
||||
* If the call fails we return the appropriate `error code`, described by
|
||||
* `FIRMessagingError`.
|
||||
*
|
||||
* @param FCMToken The valid registration token returned by FCM.
|
||||
* @param error The error describing why a token request failed. The error code
|
||||
* will match a value from the FIRMessagingError enumeration.
|
||||
*/
|
||||
typedef void(^FIRMessagingFCMTokenFetchCompletion)(NSString * _Nullable FCMToken,
|
||||
NSError * _Nullable error)
|
||||
FIR_SWIFT_NAME(MessagingFCMTokenFetchCompletion);
|
||||
|
||||
|
||||
/**
|
||||
* @related FIRMessaging
|
||||
*
|
||||
* The completion handler invoked when the registration token deletion request is
|
||||
* completed. If the call fails we return the appropriate `error code`, described
|
||||
* by `FIRMessagingError`.
|
||||
*
|
||||
* @param error The error describing why a token deletion failed. The error code
|
||||
* will match a value from the FIRMessagingError enumeration.
|
||||
*/
|
||||
typedef void(^FIRMessagingDeleteFCMTokenCompletion)(NSError * _Nullable error)
|
||||
FIR_SWIFT_NAME(MessagingDeleteFCMTokenCompletion);
|
||||
|
||||
/**
|
||||
* The completion handler invoked once the data connection with FIRMessaging is
|
||||
* established. The data connection is used to send a continous stream of
|
||||
* data and all the FIRMessaging data notifications arrive through this connection.
|
||||
* Once the connection is established we invoke the callback with `nil` error.
|
||||
* Correspondingly if we get an error while trying to establish a connection
|
||||
* we invoke the handler with an appropriate error object and do an
|
||||
* exponential backoff to try and connect again unless successful.
|
||||
*
|
||||
* @param error The error object if any describing why the data connection
|
||||
* to FIRMessaging failed.
|
||||
*/
|
||||
typedef void(^FIRMessagingConnectCompletion)(NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(MessagingConnectCompletion)
|
||||
__deprecated_msg("Please listen for the FIRMessagingConnectionStateChangedNotification "
|
||||
"NSNotification instead.");
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/**
|
||||
* Notification sent when the upstream message has been delivered
|
||||
* successfully to the server. The notification object will be the messageID
|
||||
* of the successfully delivered message.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingSendSuccessNotification
|
||||
FIR_SWIFT_NAME(MessagingSendSuccess);
|
||||
|
||||
/**
|
||||
* Notification sent when the upstream message was failed to be sent to the
|
||||
* server. The notification object will be the messageID of the failed
|
||||
* message. The userInfo dictionary will contain the relevant error
|
||||
* information for the failure.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingSendErrorNotification
|
||||
FIR_SWIFT_NAME(MessagingSendError);
|
||||
|
||||
/**
|
||||
* Notification sent when the Firebase messaging server deletes pending
|
||||
* messages due to exceeded storage limits. This may occur, for example, when
|
||||
* the device cannot be reached for an extended period of time.
|
||||
*
|
||||
* It is recommended to retrieve any missing messages directly from the
|
||||
* server.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingMessagesDeletedNotification
|
||||
FIR_SWIFT_NAME(MessagingMessagesDeleted);
|
||||
|
||||
/**
|
||||
* Notification sent when Firebase Messaging establishes or disconnects from
|
||||
* an FCM socket connection. You can query the connection state in this
|
||||
* notification by checking the `isDirectChannelEstablished` property of FIRMessaging.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingConnectionStateChangedNotification
|
||||
FIR_SWIFT_NAME(MessagingConnectionStateChanged);
|
||||
|
||||
/**
|
||||
* Notification sent when the FCM registration token has been refreshed. You can also
|
||||
* receive the FCM token via the FIRMessagingDelegate method
|
||||
* `-messaging:didRefreshRegistrationToken:`
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull
|
||||
FIRMessagingRegistrationTokenRefreshedNotification
|
||||
FIR_SWIFT_NAME(MessagingRegistrationTokenRefreshed);
|
||||
#else
|
||||
/**
|
||||
* Notification sent when the upstream message has been delivered
|
||||
* successfully to the server. The notification object will be the messageID
|
||||
* of the successfully delivered message.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendSuccessNotification
|
||||
FIR_SWIFT_NAME(MessagingSendSuccessNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when the upstream message was failed to be sent to the
|
||||
* server. The notification object will be the messageID of the failed
|
||||
* message. The userInfo dictionary will contain the relevant error
|
||||
* information for the failure.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendErrorNotification
|
||||
FIR_SWIFT_NAME(MessagingSendErrorNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when the Firebase messaging server deletes pending
|
||||
* messages due to exceeded storage limits. This may occur, for example, when
|
||||
* the device cannot be reached for an extended period of time.
|
||||
*
|
||||
* It is recommended to retrieve any missing messages directly from the
|
||||
* server.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingMessagesDeletedNotification
|
||||
FIR_SWIFT_NAME(MessagingMessagesDeletedNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when Firebase Messaging establishes or disconnects from
|
||||
* an FCM socket connection. You can query the connection state in this
|
||||
* notification by checking the `isDirectChannelEstablished` property of FIRMessaging.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingConnectionStateChangedNotification
|
||||
FIR_SWIFT_NAME(MessagingConnectionStateChangedNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when the FCM registration token has been refreshed. You can also
|
||||
* receive the FCM token via the FIRMessagingDelegate method
|
||||
* `-messaging:didRefreshRegistrationToken:`
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingRegistrationTokenRefreshedNotification
|
||||
FIR_SWIFT_NAME(MessagingRegistrationTokenRefreshedNotification);
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/**
|
||||
* @enum FIRMessagingError
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, FIRMessagingError) {
|
||||
/// Unknown error.
|
||||
FIRMessagingErrorUnknown = 0,
|
||||
|
||||
/// FIRMessaging couldn't validate request from this client.
|
||||
FIRMessagingErrorAuthentication = 1,
|
||||
|
||||
/// InstanceID service cannot be accessed.
|
||||
FIRMessagingErrorNoAccess = 2,
|
||||
|
||||
/// Request to InstanceID backend timed out.
|
||||
FIRMessagingErrorTimeout = 3,
|
||||
|
||||
/// No network available to reach the servers.
|
||||
FIRMessagingErrorNetwork = 4,
|
||||
|
||||
/// Another similar operation in progress, bailing this one.
|
||||
FIRMessagingErrorOperationInProgress = 5,
|
||||
|
||||
/// Some parameters of the request were invalid.
|
||||
FIRMessagingErrorInvalidRequest = 7,
|
||||
} FIR_SWIFT_NAME(MessagingError);
|
||||
|
||||
/// Status for the downstream message received by the app.
|
||||
typedef NS_ENUM(NSInteger, FIRMessagingMessageStatus) {
|
||||
/// Unknown status.
|
||||
FIRMessagingMessageStatusUnknown,
|
||||
/// New downstream message received by the app.
|
||||
FIRMessagingMessageStatusNew,
|
||||
} FIR_SWIFT_NAME(MessagingMessageStatus);
|
||||
|
||||
/**
|
||||
* The APNS token type for the app. If the token type is set to `UNKNOWN`
|
||||
* Firebase Messaging will implicitly try to figure out what the actual token type
|
||||
* is from the provisioning profile.
|
||||
* Unless you really need to specify the type, you should use the `APNSToken`
|
||||
* property instead.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRMessagingAPNSTokenType) {
|
||||
/// Unknown token type.
|
||||
FIRMessagingAPNSTokenTypeUnknown,
|
||||
/// Sandbox token type.
|
||||
FIRMessagingAPNSTokenTypeSandbox,
|
||||
/// Production token type.
|
||||
FIRMessagingAPNSTokenTypeProd,
|
||||
} FIR_SWIFT_NAME(MessagingAPNSTokenType);
|
||||
|
||||
/// Information about a downstream message received by the app.
|
||||
FIR_SWIFT_NAME(MessagingMessageInfo)
|
||||
@interface FIRMessagingMessageInfo : NSObject
|
||||
|
||||
/// The status of the downstream message
|
||||
@property(nonatomic, readonly, assign) FIRMessagingMessageStatus status;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* A remote data message received by the app via FCM (not just the APNs interface).
|
||||
*
|
||||
* This is only for devices running iOS 10 or above. To support devices running iOS 9 or below, use
|
||||
* the local and remote notifications handlers defined in UIApplicationDelegate protocol.
|
||||
*/
|
||||
FIR_SWIFT_NAME(MessagingRemoteMessage)
|
||||
@interface FIRMessagingRemoteMessage : NSObject
|
||||
|
||||
/// The downstream message received by the application.
|
||||
@property(nonatomic, readonly, strong, nonnull) NSDictionary *appData;
|
||||
@end
|
||||
|
||||
@class FIRMessaging;
|
||||
/**
|
||||
* A protocol to handle events from FCM for devices running iOS 10 or above.
|
||||
*
|
||||
* To support devices running iOS 9 or below, use the local and remote notifications handlers
|
||||
* defined in UIApplicationDelegate protocol.
|
||||
*/
|
||||
FIR_SWIFT_NAME(MessagingDelegate)
|
||||
@protocol FIRMessagingDelegate <NSObject>
|
||||
|
||||
/// This method will be called whenever FCM receives a new, default FCM token for your
|
||||
/// Firebase project's Sender ID.
|
||||
/// You can send this token to your application server to send notifications to this device.
|
||||
- (void)messaging:(nonnull FIRMessaging *)messaging
|
||||
didRefreshRegistrationToken:(nonnull NSString *)fcmToken
|
||||
FIR_SWIFT_NAME(messaging(_:didRefreshRegistrationToken:));
|
||||
|
||||
@optional
|
||||
/// This method is called on iOS 10 devices to handle data messages received via FCM through its
|
||||
/// direct channel (not via APNS). For iOS 9 and below, the FCM data message is delivered via the
|
||||
/// UIApplicationDelegate's -application:didReceiveRemoteNotification: method.
|
||||
- (void)messaging:(nonnull FIRMessaging *)messaging
|
||||
didReceiveMessage:(nonnull FIRMessagingRemoteMessage *)remoteMessage
|
||||
FIR_SWIFT_NAME(messaging(_:didReceive:))
|
||||
__IOS_AVAILABLE(10.0);
|
||||
|
||||
/// The callback to handle data message received via FCM for devices running iOS 10 or above.
|
||||
- (void)applicationReceivedRemoteMessage:(nonnull FIRMessagingRemoteMessage *)remoteMessage
|
||||
FIR_SWIFT_NAME(application(received:))
|
||||
__deprecated_msg("Use FIRMessagingDelegate’s -messaging:didReceiveMessage:");
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* Firebase Messaging lets you reliably deliver messages at no cost.
|
||||
*
|
||||
* To send or receive messages, the app must get a
|
||||
* registration token from FIRInstanceID. This token authorizes an
|
||||
* app server to send messages to an app instance.
|
||||
*
|
||||
* In order to receive FIRMessaging messages, declare `application:didReceiveRemoteNotification:`.
|
||||
*/
|
||||
FIR_SWIFT_NAME(Messaging)
|
||||
@interface FIRMessaging : NSObject
|
||||
|
||||
/**
|
||||
* Delegate to handle FCM token refreshes, and remote data messages received via FCM for devices
|
||||
* running iOS 10 or above.
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<FIRMessagingDelegate> delegate;
|
||||
|
||||
|
||||
/**
|
||||
* Delegate to handle remote data messages received via FCM for devices running iOS 10 or above.
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<FIRMessagingDelegate> remoteMessageDelegate
|
||||
__deprecated_msg("Use 'delegate' property");
|
||||
|
||||
/**
|
||||
* When set to `YES`, Firebase Messaging will automatically establish a socket-based, direct
|
||||
* channel to the FCM server. Enable this only if you are sending upstream messages or
|
||||
* receiving non-APNS, data-only messages in foregrounded apps.
|
||||
* Default is `NO`.
|
||||
*/
|
||||
@property(nonatomic) BOOL shouldEstablishDirectChannel;
|
||||
|
||||
/**
|
||||
* Returns `YES` if the direct channel to the FCM server is active, and `NO` otherwise.
|
||||
*/
|
||||
@property(nonatomic, readonly) BOOL isDirectChannelEstablished;
|
||||
|
||||
/**
|
||||
* FIRMessaging
|
||||
*
|
||||
* @return An instance of FIRMessaging.
|
||||
*/
|
||||
+ (nonnull instancetype)messaging FIR_SWIFT_NAME(messaging());
|
||||
|
||||
/**
|
||||
* Unavailable. Use +messaging instead.
|
||||
*/
|
||||
- (nonnull instancetype)init __attribute__((unavailable("Use +messaging instead.")));
|
||||
|
||||
#pragma mark - APNS
|
||||
|
||||
/**
|
||||
* This property is used to set the APNS Token received by the application delegate.
|
||||
*
|
||||
* FIRMessaging uses method swizzling to ensure that the APNS token is set
|
||||
* automatically. However, if you have disabled swizzling by setting
|
||||
* `FirebaseAppDelegateProxyEnabled` to `NO` in your app's
|
||||
* Info.plist, you should manually set the APNS token in your application
|
||||
* delegate's `-application:didRegisterForRemoteNotificationsWithDeviceToken:`
|
||||
* method.
|
||||
*
|
||||
* If you would like to set the type of the APNS token, rather than relying on
|
||||
* automatic detection, see: `-setAPNSToken:type:`.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSData *APNSToken FIR_SWIFT_NAME(apnsToken);
|
||||
|
||||
/**
|
||||
* Set APNS token for the application. This APNS token will be used to register
|
||||
* with Firebase Messaging using `FCMToken` or
|
||||
* `tokenWithAuthorizedEntity:scope:options:handler`.
|
||||
*
|
||||
* @param apnsToken The APNS token for the application.
|
||||
* @param type The type of APNS token. Debug builds should use
|
||||
* FIRMessagingAPNSTokenTypeSandbox. Alternatively, you can supply
|
||||
* FIRMessagingAPNSTokenTypeUnknown to have the type automatically
|
||||
* detected based on your provisioning profile.
|
||||
*/
|
||||
- (void)setAPNSToken:(nonnull NSData *)apnsToken type:(FIRMessagingAPNSTokenType)type;
|
||||
|
||||
#pragma mark - FCM Tokens
|
||||
|
||||
/**
|
||||
* The FCM token is used to identify this device so that FCM can send notifications to it.
|
||||
* It is associated with your APNS token when the APNS token is supplied, so that sending
|
||||
* messages to the FCM token will be delivered over APNS.
|
||||
*
|
||||
* The FCM token is sometimes refreshed automatically. You can be notified of these changes
|
||||
* via the FIRMessagingDelegate method `-message:didRefreshRegistrationToken:`, or by
|
||||
* listening for the `FIRMessagingRegistrationTokenRefreshedNotification` notification.
|
||||
*
|
||||
* Once you have an FCM token, you should send it to your application server, so it can use
|
||||
* the FCM token to send notifications to your device.
|
||||
*/
|
||||
@property(nonatomic, readonly, nullable) NSString *FCMToken FIR_SWIFT_NAME(fcmToken);
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves an FCM registration token for a particular Sender ID. This can be used to allow
|
||||
* multiple senders to send notifications to the same device. By providing a different Sender
|
||||
* ID than your default when fetching a token, you can create a new FCM token which you can
|
||||
* give to a different sender. Both tokens will deliver notifications to your device, and you
|
||||
* can revoke a token when you need to.
|
||||
*
|
||||
* This registration token is not cached by FIRMessaging. FIRMessaging should have an APNS
|
||||
* token set before calling this to ensure that notifications can be delivered via APNS using
|
||||
* this FCM token. You may re-retrieve the FCM token once you have the APNS token set, to
|
||||
* associate it with the FCM token. The default FCM token is automatically associated with
|
||||
* the APNS token, if the APNS token data is available.
|
||||
*
|
||||
* @param senderID The Sender ID for a particular Firebase project.
|
||||
* @param completion The completion handler to handle the token request.
|
||||
*/
|
||||
- (void)retrieveFCMTokenForSenderID:(nonnull NSString *)senderID
|
||||
completion:(nonnull FIRMessagingFCMTokenFetchCompletion)completion
|
||||
FIR_SWIFT_NAME(retrieveFCMToken(forSenderID:completion:));
|
||||
|
||||
|
||||
/**
|
||||
* Invalidates an FCM token for a particular Sender ID. That Sender ID cannot no longer send
|
||||
* notifications to that FCM token.
|
||||
*
|
||||
* @param senderID The senderID for a particular Firebase project.
|
||||
* @param completion The completion handler to handle the token deletion.
|
||||
*/
|
||||
- (void)deleteFCMTokenForSenderID:(nonnull NSString *)senderID
|
||||
completion:(nonnull FIRMessagingDeleteFCMTokenCompletion)completion
|
||||
FIR_SWIFT_NAME(deleteFCMToken(forSenderID:completion:));
|
||||
|
||||
|
||||
#pragma mark - Connect
|
||||
|
||||
/**
|
||||
* Create a FIRMessaging data connection which will be used to send the data notifications
|
||||
* sent by your server. It will also be used to send ACKS and other messages based
|
||||
* on the FIRMessaging ACKS and other messages based on the FIRMessaging protocol.
|
||||
*
|
||||
*
|
||||
* @param handler The handler to be invoked once the connection is established.
|
||||
* If the connection fails we invoke the handler with an
|
||||
* appropriate error code letting you know why it failed. At
|
||||
* the same time, FIRMessaging performs exponential backoff to retry
|
||||
* establishing a connection and invoke the handler when successful.
|
||||
*/
|
||||
- (void)connectWithCompletion:(nonnull FIRMessagingConnectCompletion)handler
|
||||
FIR_SWIFT_NAME(connect(handler:))
|
||||
__deprecated_msg("Please use the shouldEstablishDirectChannel property instead.");
|
||||
|
||||
/**
|
||||
* Disconnect the current FIRMessaging data connection. This stops any attempts to
|
||||
* connect to FIRMessaging. Calling this on an already disconnected client is a no-op.
|
||||
*
|
||||
* Call this before `teardown` when your app is going to the background.
|
||||
* Since the FIRMessaging connection won't be allowed to live when in the background, it is
|
||||
* prudent to close the connection.
|
||||
*/
|
||||
- (void)disconnect
|
||||
__deprecated_msg("Please use the shouldEstablishDirectChannel property instead.");
|
||||
|
||||
#pragma mark - Topics
|
||||
|
||||
/**
|
||||
* Asynchronously subscribes to a topic.
|
||||
*
|
||||
* @param topic The name of the topic, for example, @"sports".
|
||||
*/
|
||||
- (void)subscribeToTopic:(nonnull NSString *)topic FIR_SWIFT_NAME(subscribe(toTopic:));
|
||||
|
||||
/**
|
||||
* Asynchronously unsubscribe from a topic.
|
||||
*
|
||||
* @param topic The name of the topic, for example @"sports".
|
||||
*/
|
||||
- (void)unsubscribeFromTopic:(nonnull NSString *)topic FIR_SWIFT_NAME(unsubscribe(fromTopic:));
|
||||
|
||||
#pragma mark - Upstream
|
||||
|
||||
/**
|
||||
* Sends an upstream ("device to cloud") message.
|
||||
*
|
||||
* The message is queued if we don't have an active connection.
|
||||
* You can only use the upstream feature if your FCM implementation
|
||||
* uses the XMPP server protocol.
|
||||
*
|
||||
* @param message Key/Value pairs to be sent. Values must be String, any
|
||||
* other type will be ignored.
|
||||
* @param receiver A string identifying the receiver of the message. For FCM
|
||||
* project IDs the value is `SENDER_ID@gcm.googleapis.com`.
|
||||
* @param messageID The ID of the message. This is generated by the application. It
|
||||
* must be unique for each message generated by this application.
|
||||
* It allows error callbacks and debugging, to uniquely identify
|
||||
* each message.
|
||||
* @param ttl The time to live for the message. In case we aren't able to
|
||||
* send the message before the TTL expires we will send you a
|
||||
* callback. If 0, we'll attempt to send immediately and return
|
||||
* an error if we're not connected. Otherwise, the message will
|
||||
* be queued. As for server-side messages, we don't return an error
|
||||
* if the message has been dropped because of TTL; this can happen
|
||||
* on the server side, and it would require extra communication.
|
||||
*/
|
||||
- (void)sendMessage:(nonnull NSDictionary *)message
|
||||
to:(nonnull NSString *)receiver
|
||||
withMessageID:(nonnull NSString *)messageID
|
||||
timeToLive:(int64_t)ttl;
|
||||
|
||||
#pragma mark - Analytics
|
||||
|
||||
/**
|
||||
* Use this to track message delivery and analytics for messages, typically
|
||||
* when you receive a notification in `application:didReceiveRemoteNotification:`.
|
||||
* However, you only need to call this if you set the `FirebaseAppDelegateProxyEnabled`
|
||||
* flag to `NO` in your Info.plist. If `FirebaseAppDelegateProxyEnabled` is either missing
|
||||
* or set to `YES` in your Info.plist, the library will call this automatically.
|
||||
*
|
||||
* @param message The downstream message received by the application.
|
||||
*
|
||||
* @return Information about the downstream message.
|
||||
*/
|
||||
- (nonnull FIRMessagingMessageInfo *)appDidReceiveMessage:(nonnull NSDictionary *)message;
|
||||
|
||||
@end
|
|
@ -1 +0,0 @@
|
|||
#import "FIRMessaging.h"
|
|
@ -1,6 +0,0 @@
|
|||
framework module FirebaseMessaging {
|
||||
umbrella header "FirebaseMessaging.h"
|
||||
export *
|
||||
module * { export *}
|
||||
link "sqlite3"
|
||||
link "z"}
|
Binary file not shown.
|
@ -1,42 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AD_UNIT_ID_FOR_BANNER_TEST</key>
|
||||
<string>ca-app-pub-3940256099942544/2934735716</string>
|
||||
<key>AD_UNIT_ID_FOR_INTERSTITIAL_TEST</key>
|
||||
<string>ca-app-pub-3940256099942544/4411468910</string>
|
||||
<key>CLIENT_ID</key>
|
||||
<string>854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com</string>
|
||||
<key>REVERSED_CLIENT_ID</key>
|
||||
<string>com.googleusercontent.apps.854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o</string>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyCwlaE5cnsT4rmGyOFxE39FlPVyKQ_2Mdo</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>854811651919</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_ID_SUFFIX)</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>status-react-app</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>status-react-app.appspot.com</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<true/>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
<false/>
|
||||
<key>IS_APPINVITE_ENABLED</key>
|
||||
<false/>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true/>
|
||||
<key>FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED</key>
|
||||
<true/>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true/>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:854811651919:ios:11ee7444ded8a00a</string>
|
||||
<key>DATABASE_URL</key>
|
||||
<string>https://status-react-app.firebaseio.com</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -9,9 +9,6 @@ target 'StatusIm' do
|
|||
# use_frameworks!
|
||||
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
||||
# Pods for StatusIm
|
||||
pod 'Firebase/Core', '~> 5.5'
|
||||
pod 'Firebase/Messaging', '~> 5.5'
|
||||
|
||||
pod 'React', :path => '../node_modules/react-native/'
|
||||
pod 'React-Core', :path => '../node_modules/react-native/React'
|
||||
pod 'React-DevSupport', :path => '../node_modules/react-native/React'
|
||||
|
|
304
ios/Podfile.lock
304
ios/Podfile.lock
|
@ -1,42 +1,6 @@
|
|||
PODS:
|
||||
- boost-for-react-native (1.63.0)
|
||||
- Crashlytics (3.14.0):
|
||||
- Fabric (~> 1.10.2)
|
||||
- DoubleConversion (1.1.6)
|
||||
- Fabric (1.10.2)
|
||||
- Firebase/Core (5.20.2):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAnalytics (= 5.8.1)
|
||||
- Firebase/CoreOnly (5.20.2):
|
||||
- FirebaseCore (= 5.4.1)
|
||||
- Firebase/Messaging (5.20.2):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseMessaging (= 3.5.0)
|
||||
- FirebaseAnalytics (5.8.1):
|
||||
- FirebaseCore (~> 5.4)
|
||||
- FirebaseInstanceID (~> 3.8)
|
||||
- GoogleAppMeasurement (= 5.8.1)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- FirebaseAnalyticsInterop (1.4.0)
|
||||
- FirebaseCore (5.4.1):
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- GoogleUtilities/Logger (~> 5.2)
|
||||
- FirebaseInstanceID (3.8.1):
|
||||
- FirebaseCore (~> 5.2)
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- GoogleUtilities/UserDefaults (~> 5.2)
|
||||
- FirebaseMessaging (3.5.0):
|
||||
- FirebaseAnalyticsInterop (~> 1.1)
|
||||
- FirebaseCore (~> 5.2)
|
||||
- FirebaseInstanceID (~> 3.6)
|
||||
- GoogleUtilities/Environment (~> 5.3)
|
||||
- GoogleUtilities/Reachability (~> 5.3)
|
||||
- GoogleUtilities/UserDefaults (~> 5.3)
|
||||
- Protobuf (~> 3.1)
|
||||
- Folly (2018.10.22.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
|
@ -47,96 +11,67 @@ PODS:
|
|||
- DoubleConversion
|
||||
- glog
|
||||
- glog (0.3.5)
|
||||
- GoogleAppMeasurement (5.8.1):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- GoogleUtilities/AppDelegateSwizzler (5.8.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (5.8.0)
|
||||
- GoogleUtilities/Logger (5.8.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/MethodSwizzler (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (5.8.0)"
|
||||
- GoogleUtilities/Reachability (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/UserDefaults (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- nanopb (0.3.901):
|
||||
- nanopb/decode (= 0.3.901)
|
||||
- nanopb/encode (= 0.3.901)
|
||||
- nanopb/decode (0.3.901)
|
||||
- nanopb/encode (0.3.901)
|
||||
- QBImagePickerController (3.4.0)
|
||||
- React (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-DevSupport (= 0.60.6)
|
||||
- React-RCTActionSheet (= 0.60.6)
|
||||
- React-RCTAnimation (= 0.60.6)
|
||||
- React-RCTBlob (= 0.60.6)
|
||||
- React-RCTImage (= 0.60.6)
|
||||
- React-RCTLinking (= 0.60.6)
|
||||
- React-RCTNetwork (= 0.60.6)
|
||||
- React-RCTSettings (= 0.60.6)
|
||||
- React-RCTText (= 0.60.6)
|
||||
- React-RCTVibration (= 0.60.6)
|
||||
- React-RCTWebSocket (= 0.60.6)
|
||||
- React-Core (0.60.6):
|
||||
- React (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-DevSupport (= 0.60.5)
|
||||
- React-RCTActionSheet (= 0.60.5)
|
||||
- React-RCTAnimation (= 0.60.5)
|
||||
- React-RCTBlob (= 0.60.5)
|
||||
- React-RCTImage (= 0.60.5)
|
||||
- React-RCTLinking (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTSettings (= 0.60.5)
|
||||
- React-RCTText (= 0.60.5)
|
||||
- React-RCTVibration (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-Core (0.60.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- React-cxxreact (= 0.60.6)
|
||||
- React-jsiexecutor (= 0.60.6)
|
||||
- yoga (= 0.60.6.React)
|
||||
- React-cxxreact (0.60.6):
|
||||
- React-cxxreact (= 0.60.5)
|
||||
- React-jsiexecutor (= 0.60.5)
|
||||
- yoga (= 0.60.5.React)
|
||||
- React-cxxreact (0.60.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsinspector (= 0.60.6)
|
||||
- React-DevSupport (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTWebSocket (= 0.60.6)
|
||||
- React-jsi (0.60.6):
|
||||
- React-jsinspector (= 0.60.5)
|
||||
- React-DevSupport (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-jsi (0.60.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsi/Default (= 0.60.6)
|
||||
- React-jsi/Default (0.60.6):
|
||||
- React-jsi/Default (= 0.60.5)
|
||||
- React-jsi/Default (0.60.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsiexecutor (0.60.6):
|
||||
- React-jsiexecutor (0.60.5):
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-cxxreact (= 0.60.6)
|
||||
- React-jsi (= 0.60.6)
|
||||
- React-jsinspector (0.60.6)
|
||||
- React-cxxreact (= 0.60.5)
|
||||
- React-jsi (= 0.60.5)
|
||||
- React-jsinspector (0.60.5)
|
||||
- react-native-background-timer (2.1.1):
|
||||
- React
|
||||
- react-native-camera (3.6.0):
|
||||
- react-native-camera (3.3.3):
|
||||
- React
|
||||
- react-native-camera/RCT (= 3.6.0)
|
||||
- react-native-camera/RN (= 3.6.0)
|
||||
- react-native-camera/RCT (3.6.0):
|
||||
- react-native-camera/RCT (= 3.3.3)
|
||||
- react-native-camera/RN (= 3.3.3)
|
||||
- react-native-camera/RCT (3.3.3):
|
||||
- React
|
||||
- react-native-camera/RN (3.6.0):
|
||||
- react-native-camera/RN (3.3.3):
|
||||
- React
|
||||
- react-native-image-resizer (1.0.0):
|
||||
- React
|
||||
- react-native-mail (4.0.0):
|
||||
- React
|
||||
- react-native-netinfo (4.4.0):
|
||||
- react-native-netinfo (4.2.2):
|
||||
- React
|
||||
- react-native-shake (3.4.0):
|
||||
- React
|
||||
|
@ -146,43 +81,34 @@ PODS:
|
|||
- React
|
||||
- react-native-webview-bridge (0.33.17):
|
||||
- React
|
||||
- React-RCTActionSheet (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTAnimation (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTBlob (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTNetwork (= 0.60.6)
|
||||
- React-RCTWebSocket (= 0.60.6)
|
||||
- React-RCTImage (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTNetwork (= 0.60.6)
|
||||
- React-RCTLinking (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTNetwork (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTSettings (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTText (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTVibration (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- React-RCTWebSocket (0.60.6):
|
||||
- React-Core (= 0.60.6)
|
||||
- RNFirebase (5.5.6):
|
||||
- Firebase/Core
|
||||
- React
|
||||
- RNFirebase/Crashlytics (= 5.5.6)
|
||||
- RNFirebase/Crashlytics (5.5.6):
|
||||
- Crashlytics
|
||||
- Fabric
|
||||
- Firebase/Core
|
||||
- React
|
||||
- React-RCTActionSheet (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTAnimation (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTBlob (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-RCTImage (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTLinking (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTSettings (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTText (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTVibration (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTWebSocket (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- RNFS (2.14.1):
|
||||
- React
|
||||
- RNGestureHandler (1.4.1):
|
||||
- RNGestureHandler (1.3.0):
|
||||
- React
|
||||
- RNImageCropPicker (0.25.3):
|
||||
- RNImageCropPicker (0.25.0):
|
||||
- QBImagePickerController
|
||||
- React-Core
|
||||
- React-RCTImage
|
||||
|
@ -191,9 +117,9 @@ PODS:
|
|||
- React
|
||||
- RNLanguages (3.0.2):
|
||||
- React
|
||||
- RNScreens (1.0.0-alpha.23):
|
||||
- RNScreens (1.0.0-alpha.22):
|
||||
- React
|
||||
- RNSVG (9.11.1):
|
||||
- RNSVG (9.8.4):
|
||||
- React
|
||||
- RSKImageCropper (2.2.3)
|
||||
- SQLCipher (3.4.2):
|
||||
|
@ -204,12 +130,10 @@ PODS:
|
|||
- SSZipArchive (2.2.2)
|
||||
- TouchID (4.4.1):
|
||||
- React
|
||||
- yoga (0.60.6.React)
|
||||
- yoga (0.60.5.React)
|
||||
|
||||
DEPENDENCIES:
|
||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- Firebase/Core (~> 5.5)
|
||||
- Firebase/Messaging (~> 5.5)
|
||||
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- React (from `../node_modules/react-native/`)
|
||||
|
@ -238,7 +162,6 @@ DEPENDENCIES:
|
|||
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
|
||||
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
||||
- React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
|
||||
- RNFirebase (from `../node_modules/react-native-firebase/ios`)
|
||||
- RNFS (from `../node_modules/react-native-fs`)
|
||||
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
|
||||
- RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`)
|
||||
|
@ -252,19 +175,8 @@ DEPENDENCIES:
|
|||
- yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
||||
|
||||
SPEC REPOS:
|
||||
https://github.com/cocoapods/specs.git:
|
||||
https://github.com/CocoaPods/Specs.git:
|
||||
- boost-for-react-native
|
||||
- Crashlytics
|
||||
- Fabric
|
||||
- Firebase
|
||||
- FirebaseAnalytics
|
||||
- FirebaseAnalyticsInterop
|
||||
- FirebaseCore
|
||||
- FirebaseInstanceID
|
||||
- FirebaseMessaging
|
||||
- GoogleAppMeasurement
|
||||
- GoogleUtilities
|
||||
- nanopb
|
||||
- QBImagePickerController
|
||||
- RSKImageCropper
|
||||
- SQLCipher
|
||||
|
@ -329,8 +241,6 @@ EXTERNAL SOURCES:
|
|||
:path: "../node_modules/react-native/Libraries/Vibration"
|
||||
React-RCTWebSocket:
|
||||
:path: "../node_modules/react-native/Libraries/WebSocket"
|
||||
RNFirebase:
|
||||
:path: "../node_modules/react-native-firebase/ios"
|
||||
RNFS:
|
||||
:path: "../node_modules/react-native-fs"
|
||||
RNGestureHandler:
|
||||
|
@ -352,61 +262,49 @@ EXTERNAL SOURCES:
|
|||
|
||||
SPEC CHECKSUMS:
|
||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||
Crashlytics: 540b7e5f5da5a042647227a5e3ac51d85eed06df
|
||||
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
|
||||
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
||||
Firebase: 0c8cf33f266410c61ab3e2265cfa412200351d9c
|
||||
FirebaseAnalytics: ece1aa57a4f43c64d53a648b5a5e05151aae947b
|
||||
FirebaseAnalyticsInterop: d48b6ab67bcf016a05e55b71fc39c61c0cb6b7f3
|
||||
FirebaseCore: f1a9a8be1aee4bf71a2fc0f4096df6788bdfda61
|
||||
FirebaseInstanceID: a122b0c258720cf250551bb2bedf48c699f80d90
|
||||
FirebaseMessaging: 4235f949ce1c4e827aeb19705ba5c53f9b85aa10
|
||||
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
|
||||
glog: 7b113d8578aa09b57aa5945dd002bc37d0ab4fb5
|
||||
GoogleAppMeasurement: ffe513e90551844a739e7bcbb1d2aca1c28a4338
|
||||
GoogleUtilities: 04fce34bcd5620c1ee76fb79172105c74a4df335
|
||||
nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
|
||||
QBImagePickerController: d54cf93db6decf26baf6ed3472f336ef35cae022
|
||||
React: c438ccc7e14e86d4702bb92d7e262f549ffaa995
|
||||
React-Core: c76495f5c14e73c0f803b89c3fa83f804da61bd6
|
||||
React-cxxreact: f64bc64cf4682d6ea5a064f6017da72482858682
|
||||
React-DevSupport: 30336bca00f72681eac995d21a31b963e7d5cfec
|
||||
React-jsi: 40f467ff088c811c6630acccb4aea57ea7ccb1b5
|
||||
React-jsiexecutor: e4b4717060a0cd8d0270323b5655a68c95432efd
|
||||
React-jsinspector: 044105eea064aec81adc5e4d777a8f6589e7d094
|
||||
react-native-background-timer: bb7a98c8e97fc7c290de2d423dd09ddb73dcbcbb
|
||||
react-native-camera: 9c50d7def800895e7991ccda6203929553ceec9c
|
||||
react-native-image-resizer: 04a3409e7d4ad646c4468671c69dec490def139c
|
||||
react-native-mail: ff4aba592530d80ac96eea6c1ca03114b84d630a
|
||||
react-native-netinfo: a91b5cf92ed3ada997cfe2bf067633386eb19fd8
|
||||
react-native-shake: e9d1368d6f0ec7e48c8afc91e379b81006b9ba42
|
||||
react-native-splash-screen: a49be22f0f6648b8416f3bd28258645eeaa5b42b
|
||||
react-native-webview: ad9581723f4d401c22cb3a371811d4dc9310df56
|
||||
react-native-webview-bridge: c712d20bbe7e2a2fabdd5d8ccdfec5e704455763
|
||||
React-RCTActionSheet: 08864c609d9f959abf3d51fdd93f8bc6e91f21eb
|
||||
React-RCTAnimation: a4547e9fac2627ded3df9d302f5558b475faf819
|
||||
React-RCTBlob: 62d5c263a2adb8f7a2cafd601beba18a2d99cbbb
|
||||
React-RCTImage: 963859de2b05d2037d1b7842cdbddc8d7f3a2f3b
|
||||
React-RCTLinking: 5998a7db9a6156ed112b006d01f76b2d1cc83d98
|
||||
React-RCTNetwork: 0b676e8194f3f893db813007d37e37e9820173a3
|
||||
React-RCTSettings: fdd7606f1b6050eced69fc6046d5db6768aefd57
|
||||
React-RCTText: 36c0532feb5521cb295ba80e7e44b70cf1c36fc7
|
||||
React-RCTVibration: dabb8d59bb47e1d9124b3f77bfdc1b33d42b0a74
|
||||
React-RCTWebSocket: 2e7f6e98fd6d2bf447d145e499c3a235cc13e350
|
||||
RNFirebase: ca408d6bee0ca9383bd0cfe84f40b01370b8ad4d
|
||||
RNFS: 6a2bfb5d0b14cf0ad72667f76202358abba4aacf
|
||||
RNGestureHandler: 311e3b1cef021a7c9ef31e97e7dc31970cc6288d
|
||||
RNImageCropPicker: c406db73f02f11bf3a887f856ff04ee50af173f4
|
||||
RNKeychain: 627c6095cef215dd3d9804a9a9cf45ab96aa3997
|
||||
RNLanguages: e3ae05ef105937645218272429dac0c3f7633451
|
||||
RNScreens: 354046589421edc3d83d5c6212475bf1fb9a731d
|
||||
RNSVG: 2e097b92aaa6d4e0f354fd7c49cbf3b17f8b3920
|
||||
React: 53c53c4d99097af47cf60594b8706b4e3321e722
|
||||
React-Core: ba421f6b4f4cbe2fb17c0b6fc675f87622e78a64
|
||||
React-cxxreact: 8384287780c4999351ad9b6e7a149d9ed10a2395
|
||||
React-DevSupport: 197fb409737cff2c4f9986e77c220d7452cb9f9f
|
||||
React-jsi: 4d8c9efb6312a9725b18d6fc818ffc103f60fec2
|
||||
React-jsiexecutor: 90ad2f9db09513fc763bc757fdc3c4ff8bde2a30
|
||||
React-jsinspector: e08662d1bf5b129a3d556eb9ea343a3f40353ae4
|
||||
react-native-background-timer: 1b6e6b4e10f1b74c367a1fdc3c72b67c619b222b
|
||||
react-native-camera: 3050fa68d12e6abdc0bfdaf0e80f4acd45268454
|
||||
react-native-image-resizer: 4516052af6ae0248caf4ccf356caecefe60072d7
|
||||
react-native-mail: 7e37dfbe93ff0d4c7df346b738854dbed533e86f
|
||||
react-native-netinfo: 2bb2e5094edcfecfb340a85053608526cb20f185
|
||||
react-native-shake: de052eaa3eadc4a326b8ddd7ac80c06e8d84528c
|
||||
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
|
||||
react-native-webview: 0658813bcc4b6c22f3cbb035a2227aa896a8cbc0
|
||||
react-native-webview-bridge: 3023f6b0e84cdf8e4a96511d2b04e73b038f95f0
|
||||
React-RCTActionSheet: b0f1ea83f4bf75fb966eae9bfc47b78c8d3efd90
|
||||
React-RCTAnimation: 359ba1b5690b1e87cc173558a78e82d35919333e
|
||||
React-RCTBlob: 5e2b55f76e9a1c7ae52b826923502ddc3238df24
|
||||
React-RCTImage: f5f1c50922164e89bdda67bcd0153952a5cfe719
|
||||
React-RCTLinking: d0ecbd791e9ddddc41fa1f66b0255de90e8ee1e9
|
||||
React-RCTNetwork: e26946300b0ab7bb6c4a6348090e93fa21f33a9d
|
||||
React-RCTSettings: d0d37cb521b7470c998595a44f05847777cc3f42
|
||||
React-RCTText: b074d89033583d4f2eb5faf7ea2db3a13c7553a2
|
||||
React-RCTVibration: 2105b2e0e2b66a6408fc69a46c8a7fb5b2fdade0
|
||||
React-RCTWebSocket: cd932a16b7214898b6b7f788c8bddb3637246ac4
|
||||
RNFS: a8fbe7060fa49157d819466404794ad9c58e58cf
|
||||
RNGestureHandler: 5329a942fce3d41c68b84c2c2276ce06a696d8b0
|
||||
RNImageCropPicker: 0a731d984e64ee4c28bddaa7ce52262e4b80979f
|
||||
RNKeychain: 216f37338fcb9e5c3a2530f1e3295f737a690cb1
|
||||
RNLanguages: 962e562af0d34ab1958d89bcfdb64fafc37c513e
|
||||
RNScreens: 720a9e6968beb73e8196239801e887d8401f86ed
|
||||
RNSVG: a78b4c581e33a1bb72968997d167afabf72b05dc
|
||||
RSKImageCropper: a446db0e8444a036b34f3c43db01b2373baa4b2a
|
||||
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
|
||||
SSZipArchive: fa16b8cc4cdeceb698e5e5d9f67e9558532fbf23
|
||||
TouchID: b0640fedb86fa2db2fe1df15b61594ad49e76288
|
||||
yoga: 88c514f310aff89b94a14c5fbf44b95735af0cb7
|
||||
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4
|
||||
yoga: 312528f5bbbba37b4dcea5ef00e8b4033fdd9411
|
||||
|
||||
PODFILE CHECKSUM: eada5ca1782f4a5407527b6bb8f04e5fe4ab1e49
|
||||
PODFILE CHECKSUM: 7b53149061c27253efb0c63580a220c0e836aad4
|
||||
|
||||
COCOAPODS: 1.5.3
|
||||
COCOAPODS: 1.8.4
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
00E356F31AD99517003FC87E /* StatusImTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* StatusImTests.m */; };
|
||||
0C13D5C5E4EB4D518C95FCD0 /* Inter-ThinItalic-BETA.otf in Resources */ = {isa = PBXBuildFile; fileRef = 8077F6B47C6C491A9351E836 /* Inter-ThinItalic-BETA.otf */; };
|
||||
|
@ -23,9 +24,7 @@
|
|||
81C6E6AE0AA739BE9D87C1D0 /* libPods-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC1CBCFE6C906043D6CCEEE1 /* libPods-StatusImTests.a */; };
|
||||
8391E8E0E93C41A98AAA6631 /* Inter-SemiBoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = A4F2BBE8D4DD4140A6CCAC39 /* Inter-SemiBoldItalic.otf */; };
|
||||
8E55E6877F950B81C8D711C5 /* libPods-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 101A4045637A2ADF57D28EF5 /* libPods-StatusIm.a */; };
|
||||
925C1F4C1F7B73B20063DFA0 /* nanopb.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F451F7B73B20063DFA0 /* nanopb.framework */; };
|
||||
92A0DF7D1F4DE3A4002051BC /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 92A0DF491F4DE3A0002051BC /* GoogleService-Info.plist */; };
|
||||
983F077E2119C9D2004133ED /* message.wav in Resources */ = {isa = PBXBuildFile; fileRef = 983F07442119C9D2004133ED /* message.wav */; };
|
||||
925C1F4C1F7B73B20063DFA0 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; };
|
||||
9EF0836B1F3B53AB00876A8F /* libReactNativeConfig.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EF083611F3B538B00876A8F /* libReactNativeConfig.a */; };
|
||||
B190FBFB6A9B43EAAF396CD7 /* Inter-BlackItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2006E199700F423E84885CD9 /* Inter-BlackItalic.otf */; };
|
||||
B24FC7FD1DE7195700D694FF /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B24FC7FC1DE7195700D694FF /* Social.framework */; };
|
||||
|
@ -112,8 +111,6 @@
|
|||
2028DFF81D4275B600227DCD /* SF-UI-Display-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Thin.otf"; sourceTree = "<group>"; };
|
||||
38A44830EC5708E89387F641 /* Pods-StatusIm.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-StatusIm.release.xcconfig"; path = "Pods/Target Support Files/Pods-StatusIm/Pods-StatusIm.release.xcconfig"; sourceTree = "<group>"; };
|
||||
439B6B4B407A4E2AACAFE5BE /* RCTStatus.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTStatus.xcodeproj; path = "../modules/react-native-status/ios/RCTStatus/RCTStatus.xcodeproj"; sourceTree = "<group>"; };
|
||||
475D1FCD20B7415300879A77 /* libFirebaseCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFirebaseCore.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
475D1FCE20B7415300879A77 /* libFirebaseMessaging.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFirebaseMessaging.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
4E586E1B0E544F64AA9F5BD1 /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||
6864A92FD6844B928C52F5C1 /* Inter-Light-BETA.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Light-BETA.otf"; path = "../resources/fonts/Inter-Light-BETA.otf"; sourceTree = "<group>"; };
|
||||
|
@ -123,14 +120,6 @@
|
|||
8077F6B47C6C491A9351E836 /* Inter-ThinItalic-BETA.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ThinItalic-BETA.otf"; path = "../resources/fonts/Inter-ThinItalic-BETA.otf"; sourceTree = "<group>"; };
|
||||
8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||
922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = StatusIm.entitlements; path = StatusIm/StatusIm.entitlements; sourceTree = "<group>"; };
|
||||
925C1F401F7B73B20063DFA0 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCore.framework; sourceTree = "<group>"; };
|
||||
925C1F411F7B73B20063DFA0 /* FirebaseCoreDiagnostics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCoreDiagnostics.framework; sourceTree = "<group>"; };
|
||||
925C1F421F7B73B20063DFA0 /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseInstanceID.framework; sourceTree = "<group>"; };
|
||||
925C1F431F7B73B20063DFA0 /* FirebaseNanoPB.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseNanoPB.framework; sourceTree = "<group>"; };
|
||||
925C1F451F7B73B20063DFA0 /* nanopb.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = nanopb.framework; sourceTree = "<group>"; };
|
||||
925C1F7F1F7B73C00063DFA0 /* FirebaseMessaging.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseMessaging.framework; sourceTree = "<group>"; };
|
||||
92A0DF491F4DE3A0002051BC /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
983F07442119C9D2004133ED /* message.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = message.wav; path = ../android/app/src/main/res/raw/message.wav; sourceTree = "<group>"; };
|
||||
9E0B01A01DDC5DA7002B0359 /* SF-UI-Text-Light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Text-Light.otf"; sourceTree = "<group>"; };
|
||||
9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWKWebView.xcodeproj; path = "../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView.xcodeproj"; sourceTree = "<group>"; };
|
||||
9ED2F45C1D9D52C100B36508 /* SF-UI-Text-Medium.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Text-Medium.otf"; sourceTree = "<group>"; };
|
||||
|
@ -172,7 +161,7 @@
|
|||
B24FC7FD1DE7195700D694FF /* Social.framework in Frameworks */,
|
||||
CE4E31B31D8695250033ED64 /* Statusgo.framework in Frameworks */,
|
||||
20AB9EC61D47CC0300E7FD9C /* libRCTStatus.a in Frameworks */,
|
||||
925C1F4C1F7B73B20063DFA0 /* nanopb.framework in Frameworks */,
|
||||
925C1F4C1F7B73B20063DFA0 /* BuildFile in Frameworks */,
|
||||
25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */,
|
||||
BA68A2377A20496EA737000D /* libz.tbd in Frameworks */,
|
||||
8E55E6877F950B81C8D711C5 /* libPods-StatusIm.a in Frameworks */,
|
||||
|
@ -217,7 +206,6 @@
|
|||
1E7837547A9A40E18AD63CF3 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
983F07442119C9D2004133ED /* message.wav */,
|
||||
2028E0111D4275BD00227DCD /* SF */,
|
||||
B23B48FE1E76917B006D4535 /* RobotoMono-Medium.ttf */,
|
||||
74B758FB20D7C00B003343C3 /* launch-image-universal.storyboard */,
|
||||
|
@ -291,7 +279,6 @@
|
|||
83CBB9F61A601CBA00E9B192 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
92A0DF491F4DE3A0002051BC /* GoogleService-Info.plist */,
|
||||
13B07FAE1A68108700A75B9A /* StatusIm */,
|
||||
832341AE1AAA6A7D00B99B32 /* Libraries */,
|
||||
00E356EF1AD99517003FC87E /* StatusImTests */,
|
||||
|
@ -333,15 +320,7 @@
|
|||
A97BA941B2FB44B4B66EE6D3 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
475D1FCD20B7415300879A77 /* libFirebaseCore.a */,
|
||||
475D1FCE20B7415300879A77 /* libFirebaseMessaging.a */,
|
||||
4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */,
|
||||
925C1F7F1F7B73C00063DFA0 /* FirebaseMessaging.framework */,
|
||||
925C1F401F7B73B20063DFA0 /* FirebaseCore.framework */,
|
||||
925C1F411F7B73B20063DFA0 /* FirebaseCoreDiagnostics.framework */,
|
||||
925C1F421F7B73B20063DFA0 /* FirebaseInstanceID.framework */,
|
||||
925C1F431F7B73B20063DFA0 /* FirebaseNanoPB.framework */,
|
||||
925C1F451F7B73B20063DFA0 /* nanopb.framework */,
|
||||
B24FC7FE1DE7195F00D694FF /* MessageUI.framework */,
|
||||
B24FC7FC1DE7195700D694FF /* Social.framework */,
|
||||
CE4E31B21D8695250033ED64 /* Statusgo.framework */,
|
||||
|
@ -488,13 +467,6 @@
|
|||
remoteRef = 9EF083601F3B538B00876A8F /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
C90048231FC47AF50002B8EA /* libRNSVG-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libRNSVG-tvOS.a";
|
||||
remoteRef = C90048221FC47AF50002B8EA /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
/* End PBXReferenceProxy section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
|
@ -509,10 +481,8 @@
|
|||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
983F077E2119C9D2004133ED /* message.wav in Resources */,
|
||||
74B758FC20D7C00B003343C3 /* launch-image-universal.storyboard in Resources */,
|
||||
B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */,
|
||||
92A0DF7D1F4DE3A4002051BC /* GoogleService-Info.plist in Resources */,
|
||||
D2356A41DAE14CB683EAEE59 /* Inter-Black.otf in Resources */,
|
||||
B190FBFB6A9B43EAAF396CD7 /* Inter-BlackItalic.otf in Resources */,
|
||||
D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */,
|
||||
|
@ -557,7 +527,7 @@
|
|||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${SRCROOT}/Pods/Target Support Files/Pods-StatusIm/Pods-StatusIm-resources.sh",
|
||||
"${PODS_ROOT}/Target Support Files/Pods-StatusIm/Pods-StatusIm-resources.sh",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController/QBImagePicker.bundle",
|
||||
"${PODS_ROOT}/RSKImageCropper/RSKImageCropper/RSKImageCropperStrings.bundle",
|
||||
);
|
||||
|
@ -568,7 +538,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-StatusIm/Pods-StatusIm-resources.sh\"\n";
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-StatusIm/Pods-StatusIm-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
2EAC54E16AB243C3EBBFE1BA /* [CP] Check Pods Manifest.lock */ = {
|
||||
|
@ -679,9 +649,7 @@
|
|||
INFOPLIST_FILE = StatusImTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
|
@ -706,9 +674,7 @@
|
|||
INFOPLIST_FILE = StatusImTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
|
@ -750,9 +716,6 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-splash-screen/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-config/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS",
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase",
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase/messaging",
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase/notifications",
|
||||
);
|
||||
INFOPLIST_FILE = StatusIm/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
|
@ -808,9 +771,6 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-splash-screen/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-config/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS",
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase",
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase/messaging",
|
||||
"$(SRCROOT)/../node_modules/react-native-firebase/ios/RNFirebase/notifications",
|
||||
);
|
||||
INFOPLIST_FILE = StatusIm/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
|
|
|
@ -16,9 +16,6 @@
|
|||
#import "RCTRootView.h"
|
||||
#import "RNSplashScreen.h"
|
||||
#import "RCTLinkingManager.h"
|
||||
#import <Firebase.h>
|
||||
#import "RNFirebaseNotifications.h"
|
||||
#import "RNFirebaseMessaging.h"
|
||||
|
||||
@implementation AppDelegate
|
||||
{
|
||||
|
@ -30,11 +27,6 @@
|
|||
signal(SIGPIPE, SIG_IGN);
|
||||
NSURL *jsCodeLocation;
|
||||
|
||||
[FIRApp configure];
|
||||
[RNFirebaseNotifications configure];
|
||||
[application registerForRemoteNotifications];
|
||||
|
||||
|
||||
/* Set logging level from React Native */
|
||||
NSString *logLevel = [ReactNativeConfig envFor:@"LOG_LEVEL"];
|
||||
if([logLevel isEqualToString:@"error"]){
|
||||
|
@ -74,19 +66,6 @@
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
|
||||
[[RNFirebaseNotifications instance] didReceiveLocalNotification:notification];
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo
|
||||
fetchCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler{
|
||||
[[RNFirebaseNotifications instance] didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
|
||||
[[RNFirebaseMessaging instance] didRegisterUserNotificationSettings:notificationSettings];
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
openURL:(NSURL *)url
|
||||
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
|
||||
|
|
|
@ -91,10 +91,6 @@ used to be able to put a timeout on fetch request
|
|||
TODO: check if the fetch timeout is actually aborting the request or only ignoring the callback on the response, if it
|
||||
doesn't then this is useless and we are better of using a simple seTimeout
|
||||
|
||||
## "react-native-firebase": "5.1.1"
|
||||
|
||||
used to have some stupid notifications and give free metadata to Google
|
||||
|
||||
## "react-native-fs": "^2.14.1"
|
||||
|
||||
used for some filesystem related functions, for instance to get no-backup directory in `status-im.utils.platform`
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
"react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1-status",
|
||||
"react-native-dialogs": "^1.0.4",
|
||||
"react-native-fetch-polyfill": "^1.1.2",
|
||||
"react-native-firebase": "^5.5.6",
|
||||
"react-native-fs": "^2.14.1",
|
||||
"react-native-gesture-handler": "^1.3.0",
|
||||
"react-native-image-crop-picker": "^0.25.0",
|
||||
|
|
|
@ -4342,11 +4342,6 @@ open@^6.2.0:
|
|||
dependencies:
|
||||
is-wsl "^1.1.0"
|
||||
|
||||
opencollective-postinstall@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89"
|
||||
integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==
|
||||
|
||||
optimist@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
|
||||
|
@ -4802,14 +4797,6 @@ react-native-fetch-polyfill@^1.1.2:
|
|||
resolved "https://registry.yarnpkg.com/react-native-fetch-polyfill/-/react-native-fetch-polyfill-1.1.3.tgz#a02d9069a2f7108ca0b70b8469085c67cc02949c"
|
||||
integrity sha512-zr5yXQftuGq+ABGa3n4ZE+vkL1lBsMSePkRINm3/6vlpbwnLXYoijwazTO/W8GjsV4LAgGmzuieZxKO/NxW19A==
|
||||
|
||||
react-native-firebase@^5.5.6:
|
||||
version "5.5.6"
|
||||
resolved "https://registry.yarnpkg.com/react-native-firebase/-/react-native-firebase-5.5.6.tgz#17b34ec0d5dc39afaaf0e159fd160f6339e0f707"
|
||||
integrity sha512-AdbpGwKEEiMFgaRar9WOPc8Li4sfxR//WOyNQzxYsQ1fpARC908j7feqy2gu73SLqk4wzIrnlfJWakOe0/Bclg==
|
||||
dependencies:
|
||||
opencollective-postinstall "^2.0.0"
|
||||
prop-types "^15.7.2"
|
||||
|
||||
react-native-fs@^2.14.1:
|
||||
version "2.14.1"
|
||||
resolved "https://registry.yarnpkg.com/react-native-fs/-/react-native-fs-2.14.1.tgz#61c70a865b5b5bcb020dd4e4befd60a2c20c836f"
|
||||
|
|
|
@ -456,25 +456,6 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
|
|||
}
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void sendDataNotification(final String dataPayloadJSON, final String tokensJSON, final Callback callback) {
|
||||
Log.d(TAG, "sendDataNotification");
|
||||
if (!checkAvailability()) {
|
||||
callback.invoke(false);
|
||||
return;
|
||||
}
|
||||
|
||||
Runnable r = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
String res = Statusgo.sendDataNotification(dataPayloadJSON, tokensJSON);
|
||||
callback.invoke(res);
|
||||
}
|
||||
};
|
||||
|
||||
StatusThreadPoolExecutor.getInstance().execute(r);
|
||||
}
|
||||
|
||||
private Boolean zip(File[] _files, File zipFile, Stack<String> errorList) {
|
||||
final int BUFFER = 0x8000;
|
||||
|
||||
|
|
|
@ -145,22 +145,6 @@ void RCTStatus::initKeystore() {
|
|||
logStatusGoResult("::initKeystore InitKeystore", result);
|
||||
}
|
||||
|
||||
void RCTStatus::sendDataNotification(QString dataPayloadJSON,
|
||||
QString tokensJSON, double callbackId) {
|
||||
Q_D(RCTStatus);
|
||||
qCDebug(RCTSTATUS) << "::sendDataNotification call - callbackId:"
|
||||
<< callbackId;
|
||||
QtConcurrent::run(
|
||||
[&](QString dataPayloadJSON, QString tokensJSON, double callbackId) {
|
||||
const char *result = SendDataNotification(
|
||||
dataPayloadJSON.toUtf8().data(), tokensJSON.toUtf8().data());
|
||||
logStatusGoResult("::sendDataNotification SendDataNotification",
|
||||
result);
|
||||
d->bridge->invokePromiseCallback(callbackId, QVariantList{result});
|
||||
},
|
||||
dataPayloadJSON, tokensJSON, callbackId);
|
||||
}
|
||||
|
||||
#include <QApplication>
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
|
|
|
@ -38,8 +38,6 @@ public:
|
|||
Q_INVOKABLE void shouldMoveToInternalStorage(double callbackId);
|
||||
Q_INVOKABLE void moveToInternalStorage(double callbackId);
|
||||
Q_INVOKABLE void initKeystore();
|
||||
Q_INVOKABLE void sendDataNotification(QString dataPayloadJSON,
|
||||
QString tokensJSON, double callbackId);
|
||||
Q_INVOKABLE void sendLogs(QString dbJSON, QString jsLogs, double callbackId);
|
||||
Q_INVOKABLE void exportLogs(double callbackId);
|
||||
Q_INVOKABLE void addPeer(QString enode, double callbackId);
|
||||
|
|
|
@ -128,19 +128,6 @@ RCT_EXPORT_METHOD(initKeystore) {
|
|||
});
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
#pragma mark - SendDataNotification method
|
||||
//////////////////////////////////////////////////////////////////// sendDataNotification
|
||||
RCT_EXPORT_METHOD(sendDataNotification:(NSString *)dataPayloadJSON
|
||||
tokensJSON:(NSString *)tokensJSON
|
||||
callback:(RCTResponseSenderBlock)callback) {
|
||||
NSString* result = StatusgoSendDataNotification(dataPayloadJSON, tokensJSON);
|
||||
callback(@[result]);
|
||||
#if DEBUG
|
||||
NSLog(@"SendDataNotification() method called");
|
||||
#endif
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
#pragma mark - SendLogs method
|
||||
//////////////////////////////////////////////////////////////////// sendLogs
|
||||
|
|
|
@ -19,7 +19,6 @@ https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat/1.0.2/appco
|
|||
https://dl.google.com/dl/android/maven2/androidx/arch/core/core-common/2.0.0/core-common-2.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/arch/core/core-runtime/2.0.0/core-runtime-2.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/asynclayoutinflater/asynclayoutinflater/1.0.0/asynclayoutinflater-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.0.0/browser-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/collection/collection/1.0.0/collection-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/coordinatorlayout/coordinatorlayout/1.0.0/coordinatorlayout-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/core/core/1.0.1/core-1.0.1
|
||||
|
@ -47,8 +46,6 @@ https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-viewmodel/2
|
|||
https://dl.google.com/dl/android/maven2/androidx/loader/loader/1.0.0/loader-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/localbroadcastmanager/localbroadcastmanager/1.0.0/localbroadcastmanager-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/media/media/1.0.0/media-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/multidex/multidex-instrumentation/2.0.0/multidex-instrumentation-2.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/multidex/multidex/2.0.0/multidex-2.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/multidex/multidex/2.0.1/multidex-2.0.1
|
||||
https://dl.google.com/dl/android/maven2/androidx/print/print/1.0.0/print-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/recyclerview/recyclerview/1.0.0/recyclerview-1.0.0
|
||||
|
@ -59,40 +56,33 @@ https://dl.google.com/dl/android/maven2/androidx/vectordrawable/vectordrawable/1
|
|||
https://dl.google.com/dl/android/maven2/androidx/versionedparcelable/versionedparcelable/1.0.0/versionedparcelable-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/androidx/viewpager/viewpager/1.0.0/viewpager-1.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.0.1/baseLibrary-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.1.4/baseLibrary-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.2.1/baseLibrary-3.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.3.1/baseLibrary-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary/3.4.1/baseLibrary-3.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/databinding/compilerCommon/3.0.1/compilerCommon-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/databinding/compilerCommon/3.1.4/compilerCommon-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/28.0.0/appcompat-v7-28.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.2.1/crash-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.3.1/crash-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.4.1/crash-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.0.1/protos-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.1.4/protos-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.2.1/protos-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.3.1/protos-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/protos/26.4.1/protos-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.0.1/shared-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.1.4/shared-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.2.1/shared-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.3.1/shared-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/shared/26.4.1/shared-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.0.1/tracker-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.1.4/tracker-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.2.1/tracker-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.3.1/tracker-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/tracker/26.4.1/tracker-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.0.1/annotations-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.1.4/annotations-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.2.1/annotations-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.3.1/annotations-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/annotations/26.4.1/annotations-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2-proto/0.1.0/aapt2-proto-0.1.0
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2-proto/0.3.1/aapt2-proto-0.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.4.1-5326820/aapt2-3.4.1-5326820
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.0.1/apksig-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.1.4/apksig-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.2.1/apksig-3.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.3.1/apksig-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/3.4.1/apksig-3.4.1
|
||||
|
@ -100,33 +90,26 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/3.2.1/ap
|
|||
https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/3.3.1/apkzlib-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/apkzlib/3.4.1/apkzlib-3.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.0.1/builder-model-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.1.4/builder-model-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.2.1/builder-model-3.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.3.1/builder-model-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-model/3.4.1/builder-model-3.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.0.1/builder-test-api-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.1.4/builder-test-api-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.2.1/builder-test-api-3.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.3.1/builder-test-api-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder-test-api/3.4.1/builder-test-api-3.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.0.1/builder-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.1.4/builder-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.2.1/builder-3.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.3.1/builder-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/builder/3.4.1/builder-3.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.1.0-alpha01/bundletool-0.1.0-alpha01
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.5.0/bundletool-0.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.6.0/bundletool-0.6.0
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/bundletool/0.7.2/bundletool-0.7.2
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.0.1/gradle-api-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.1.4/gradle-api-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.2.1/gradle-api-3.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.3.1/gradle-api-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-api/3.4.1/gradle-api-3.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-core/3.0.1/gradle-core-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle-core/3.1.4/gradle-core-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.1/gradle-3.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.4/gradle-3.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.3.1/gradle-3.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.4.1/gradle-3.4.1
|
||||
|
@ -137,23 +120,19 @@ https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifie
|
|||
https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta02/jetifier-processor-1.0.0-beta02
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta04/jetifier-processor-1.0.0-beta04
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.0.1/manifest-merger-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.1.4/manifest-merger-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.2.1/manifest-merger-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.3.1/manifest-merger-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/manifest-merger/26.4.1/manifest-merger-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/build/transform-api/2.0.0-deprecated-use-gradle-api/transform-api-2.0.0-deprecated-use-gradle-api
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.0.1/common-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.1.4/common-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.2.1/common-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.3.1/common-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/common/26.4.1/common-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.0.1/ddmlib-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.1.4/ddmlib-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.2.1/ddmlib-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.3.1/ddmlib-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/ddms/ddmlib/26.4.1/ddmlib-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.0.1/dvlib-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.1.4/dvlib-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.2.1/dvlib-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.3.1/dvlib-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/dvlib/26.4.1/dvlib-26.4.1
|
||||
|
@ -163,7 +142,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/external/com-intellij/
|
|||
https://dl.google.com/dl/android/maven2/com/android/tools/external/org-jetbrains/uast/26.0.1/uast-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/external/org-jetbrains/uast/26.4.1/uast-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.0.1/layoutlib-api-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.1.4/layoutlib-api-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.2.1/layoutlib-api-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.3.1/layoutlib-api-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/layoutlib/layoutlib-api/26.4.1/layoutlib-api-26.4.1
|
||||
|
@ -171,7 +149,6 @@ https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-api/26.0.1/l
|
|||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-api/26.4.1/lint-api-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/26.0.1/lint-checks-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/26.4.1/lint-checks-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.1.4/lint-gradle-api-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.2.1/lint-gradle-api-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.3.1/lint-gradle-api-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle-api/26.4.1/lint-gradle-api-26.4.1
|
||||
|
@ -179,164 +156,96 @@ https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-gradle/26.4.
|
|||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint/26.0.1/lint-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint/26.4.1/lint-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.0.1/repository-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.1.4/repository-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.2.1/repository-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.3.1/repository-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/repository/26.4.1/repository-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.0.1/sdk-common-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.1.4/sdk-common-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.2.1/sdk-common-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.3.1/sdk-common-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdk-common/26.4.1/sdk-common-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.0.1/sdklib-26.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.1.4/sdklib-26.1.4
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.2.1/sdklib-26.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.3.1/sdklib-26.3.1
|
||||
https://dl.google.com/dl/android/maven2/com/android/tools/sdklib/26.4.1/sdklib-26.4.1
|
||||
https://dl.google.com/dl/android/maven2/com/crashlytics/sdk/android/answers/1.4.7/answers-1.4.7
|
||||
https://dl.google.com/dl/android/maven2/com/crashlytics/sdk/android/beta/1.2.10/beta-1.2.10
|
||||
https://dl.google.com/dl/android/maven2/com/crashlytics/sdk/android/crashlytics-core/2.7.0/crashlytics-core-2.7.0
|
||||
https://dl.google.com/dl/android/maven2/com/crashlytics/sdk/android/crashlytics/2.10.1/crashlytics-2.10.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-base/17.2.0/play-services-ads-base-17.2.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-identifier/16.0.0/play-services-ads-identifier-16.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-lite/17.2.0/play-services-ads-lite-17.2.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads/17.2.0/play-services-ads-17.2.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-appinvite/17.0.0/play-services-appinvite-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-auth-base/16.0.0/play-services-auth-base-16.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-base/16.0.1/play-services-base-16.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-base/16.1.0/play-services-base-16.1.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-base/17.0.0/play-services-base-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/16.1.0/play-services-basement-16.1.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/16.2.0/play-services-basement-16.2.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/17.0.0/play-services-basement-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-clearcut/16.0.0/play-services-clearcut-16.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-flags/16.0.1/play-services-flags-16.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-gass/17.2.0/play-services-gass-17.2.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-gcm/17.0.0/play-services-gcm-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-iid/17.0.0/play-services-iid-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-measurement-api/16.5.0/play-services-measurement-api-16.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-measurement-base/16.5.0/play-services-measurement-base-16.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-measurement-impl/16.5.0/play-services-measurement-impl-16.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-measurement-sdk-api/16.5.0/play-services-measurement-sdk-api-16.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-measurement-sdk/16.5.0/play-services-measurement-sdk-16.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-measurement/16.5.0/play-services-measurement-16.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-phenotype/16.0.0/play-services-phenotype-16.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-stats/16.0.1/play-services-stats-16.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-stats/17.0.0/play-services-stats-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-tasks/16.0.1/play-services-tasks-16.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-tasks/17.0.0/play-services-tasks-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-vision-common/17.0.2/play-services-vision-common-17.0.2
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-vision-image-label/17.0.2/play-services-vision-image-label-17.0.2
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-vision/17.0.2/play-services-vision-17.0.2
|
||||
https://dl.google.com/dl/android/maven2/com/google/android/gms/strict-version-matcher-plugin/1.1.0/strict-version-matcher-plugin-1.1.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-abt/17.1.1/firebase-abt-17.1.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-ads/17.2.1/firebase-ads-17.2.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-analytics/16.5.0/firebase-analytics-16.5.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-auth-interop/17.0.0/firebase-auth-interop-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-auth/17.0.0/firebase-auth-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-common/16.0.3/firebase-common-16.0.3
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-common/17.0.0/firebase-common-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-common/17.1.0/firebase-common-17.1.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-config/17.0.0/firebase-config-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-core/16.0.9/firebase-core-16.0.9
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-database-collection/16.0.1/firebase-database-collection-16.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-database/17.0.0/firebase-database-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-dynamic-links/17.0.0/firebase-dynamic-links-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-firestore/19.0.2/firebase-firestore-19.0.2
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-functions/17.0.0/firebase-functions-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-iid-interop/16.0.1/firebase-iid-interop-16.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-iid/17.0.3/firebase-iid-17.0.3
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-iid/18.0.0/firebase-iid-18.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-invites/17.0.0/firebase-invites-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-measurement-connector/17.0.1/firebase-measurement-connector-17.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messaging/18.0.0/firebase-messaging-18.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-ml-common/17.0.0/firebase-ml-common-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-ml-vision-face-model/17.0.2/firebase-ml-vision-face-model-17.0.2
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-ml-vision/19.0.3/firebase-ml-vision-19.0.3
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-perf/17.0.2/firebase-perf-17.0.2
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-storage/17.0.0/firebase-storage-17.0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/firebase/protolite-well-known-types/16.0.1/protolite-well-known-types-16.0.1
|
||||
https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.2.0/google-services-4.2.0
|
||||
https://dl.google.com/dl/android/maven2/io/fabric/sdk/android/fabric/1.4.8/fabric-1.4.8
|
||||
https://jcenter.bintray.com/com/adobe/xmp/xmpcore/5.1.3/xmpcore-5.1.3
|
||||
https://jcenter.bintray.com/com/afollestad/material-dialogs/commons/0.9.6.0/commons-0.9.6.0
|
||||
https://jcenter.bintray.com/com/afollestad/material-dialogs/core/0.9.6.0/core-0.9.6.0
|
||||
https://jcenter.bintray.com/com/android/databinding/baseLibrary/1.0-rc5/baseLibrary-1.0-rc5
|
||||
https://jcenter.bintray.com/com/android/databinding/baseLibrary/2.2.0/baseLibrary-2.2.0
|
||||
https://jcenter.bintray.com/com/android/databinding/baseLibrary/2.2.3/baseLibrary-2.2.3
|
||||
https://jcenter.bintray.com/com/android/databinding/compilerCommon/1.0-rc5/compilerCommon-1.0-rc5
|
||||
https://jcenter.bintray.com/com/android/databinding/compilerCommon/2.2.0/compilerCommon-2.2.0
|
||||
https://jcenter.bintray.com/com/android/databinding/compilerCommon/2.2.3/compilerCommon-2.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/analytics-library/protos/25.2.0/protos-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/analytics-library/protos/25.2.3/protos-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/analytics-library/shared/25.2.0/shared-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/analytics-library/shared/25.2.3/shared-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/analytics-library/tracker/25.2.0/tracker-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/analytics-library/tracker/25.2.3/tracker-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/annotations/24.1.3/annotations-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/annotations/24.3.0/annotations-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/annotations/24.3.1/annotations-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/annotations/24.5.0/annotations-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/annotations/25.2.0/annotations-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/annotations/25.2.3/annotations-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-model/1.1.3/builder-model-1.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-model/1.3.0/builder-model-1.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-model/1.3.1/builder-model-1.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-model/1.5.0/builder-model-1.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-model/2.2.0/builder-model-2.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-model/2.2.3/builder-model-2.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-test-api/1.1.3/builder-test-api-1.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-test-api/1.3.0/builder-test-api-1.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-test-api/1.3.1/builder-test-api-1.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-test-api/1.5.0/builder-test-api-1.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-test-api/2.2.0/builder-test-api-2.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder-test-api/2.2.3/builder-test-api-2.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder/1.1.3/builder-1.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder/1.3.0/builder-1.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder/1.3.1/builder-1.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder/1.5.0/builder-1.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder/2.2.0/builder-2.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/builder/2.2.3/builder-2.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-api/2.2.0/gradle-api-2.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-api/2.2.3/gradle-api-2.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-core/1.1.3/gradle-core-1.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-core/1.3.0/gradle-core-1.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-core/1.3.1/gradle-core-1.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-core/1.5.0/gradle-core-1.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-core/2.2.0/gradle-core-2.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle-core/2.2.3/gradle-core-2.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle/1.1.3/gradle-1.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle/1.3.0/gradle-1.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle/1.3.1/gradle-1.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle/1.5.0/gradle-1.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.0/gradle-2.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.3/gradle-2.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/manifest-merger/24.1.3/manifest-merger-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/manifest-merger/24.3.0/manifest-merger-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/manifest-merger/24.3.1/manifest-merger-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/build/manifest-merger/24.5.0/manifest-merger-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/manifest-merger/25.2.0/manifest-merger-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/build/manifest-merger/25.2.3/manifest-merger-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/build/transform-api/1.5.0/transform-api-1.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/common/24.1.3/common-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/common/24.3.0/common-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/common/24.3.1/common-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/common/24.5.0/common-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/common/25.2.0/common-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/common/25.2.3/common-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/24.1.3/ddmlib-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/24.3.0/ddmlib-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/24.3.1/ddmlib-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/24.5.0/ddmlib-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/25.2.0/ddmlib-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/ddms/ddmlib/25.2.3/ddmlib-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/dvlib/24.1.3/dvlib-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/dvlib/24.3.0/dvlib-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/dvlib/24.3.1/dvlib-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/dvlib/24.5.0/dvlib-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/dvlib/25.2.0/dvlib-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/dvlib/25.2.3/dvlib-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/external/com-intellij/uast/145.597.3/uast-145.597.3
|
||||
https://jcenter.bintray.com/com/android/tools/external/com-intellij/uast/145.597.4/uast-145.597.4
|
||||
https://jcenter.bintray.com/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/jack/jack-api/0.11.0/jack-api-0.11.0
|
||||
|
@ -347,39 +256,32 @@ https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/24.1.3/lay
|
|||
https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/24.3.0/layoutlib-api-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/24.3.1/layoutlib-api-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/24.5.0/layoutlib-api-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/25.2.0/layoutlib-api-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/layoutlib/layoutlib-api/25.2.3/layoutlib-api-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-api/24.1.3/lint-api-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-api/24.3.0/lint-api-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-api/24.3.1/lint-api-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-api/24.5.0/lint-api-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-api/25.2.0/lint-api-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-api/25.2.3/lint-api-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-checks/24.1.3/lint-checks-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-checks/24.3.0/lint-checks-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-checks/24.3.1/lint-checks-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-checks/24.5.0/lint-checks-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-checks/25.2.0/lint-checks-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint-checks/25.2.3/lint-checks-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint/24.1.3/lint-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint/24.3.0/lint-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint/24.3.1/lint-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint/24.5.0/lint-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint/25.2.0/lint-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/lint/lint/25.2.3/lint-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/repository/25.2.0/repository-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/repository/25.2.3/repository-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/sdk-common/24.1.3/sdk-common-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/sdk-common/24.3.0/sdk-common-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/sdk-common/24.3.1/sdk-common-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/sdk-common/24.5.0/sdk-common-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/sdk-common/25.2.0/sdk-common-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/sdk-common/25.2.3/sdk-common-25.2.3
|
||||
https://jcenter.bintray.com/com/android/tools/sdklib/24.1.3/sdklib-24.1.3
|
||||
https://jcenter.bintray.com/com/android/tools/sdklib/24.3.0/sdklib-24.3.0
|
||||
https://jcenter.bintray.com/com/android/tools/sdklib/24.3.1/sdklib-24.3.1
|
||||
https://jcenter.bintray.com/com/android/tools/sdklib/24.5.0/sdklib-24.5.0
|
||||
https://jcenter.bintray.com/com/android/tools/sdklib/25.2.0/sdklib-25.2.0
|
||||
https://jcenter.bintray.com/com/android/tools/sdklib/25.2.3/sdklib-25.2.3
|
||||
https://jcenter.bintray.com/com/diffplug/durian/durian-collect/1.2.0/durian-collect-1.2.0
|
||||
https://jcenter.bintray.com/com/diffplug/durian/durian-core/1.2.0/durian-core-1.2.0
|
||||
|
@ -401,34 +303,26 @@ https://jcenter.bintray.com/com/facebook/fresco/nativeimagefilters/2.0.0/nativei
|
|||
https://jcenter.bintray.com/com/facebook/fresco/nativeimagetranscoder/2.0.0/nativeimagetranscoder-2.0.0
|
||||
https://jcenter.bintray.com/com/facebook/infer/annotation/infer-annotation/0.11.2/infer-annotation-0.11.2
|
||||
https://jcenter.bintray.com/com/facebook/soloader/soloader/0.6.0/soloader-0.6.0
|
||||
https://jcenter.bintray.com/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4
|
||||
https://jcenter.bintray.com/com/google/auto/value/auto-value-annotations/1.6.3/auto-value-annotations-1.6.3
|
||||
https://jcenter.bintray.com/com/google/auto/value/auto-value/1.5.2/auto-value-1.5.2
|
||||
https://jcenter.bintray.com/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9
|
||||
https://jcenter.bintray.com/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2
|
||||
https://jcenter.bintray.com/com/google/code/gson/gson/2.2.4/gson-2.2.4
|
||||
https://jcenter.bintray.com/com/google/code/gson/gson/2.3/gson-2.3
|
||||
https://jcenter.bintray.com/com/google/code/gson/gson/2.7/gson-2.7
|
||||
https://jcenter.bintray.com/com/google/code/gson/gson/2.8.0/gson-2.8.0
|
||||
https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18
|
||||
https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.1.2/error_prone_annotations-2.1.2
|
||||
https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3
|
||||
https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0
|
||||
https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.3.2/error_prone_annotations-2.3.2
|
||||
https://jcenter.bintray.com/com/google/guava/guava/17.0/guava-17.0
|
||||
https://jcenter.bintray.com/com/google/guava/guava/18.0/guava-18.0
|
||||
https://jcenter.bintray.com/com/google/guava/guava/22.0/guava-22.0
|
||||
https://jcenter.bintray.com/com/google/guava/guava/23.0/guava-23.0
|
||||
https://jcenter.bintray.com/com/google/guava/guava/26.0-android/guava-26.0-android
|
||||
https://jcenter.bintray.com/com/google/guava/guava/26.0-jre/guava-26.0-jre
|
||||
https://jcenter.bintray.com/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava
|
||||
https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1
|
||||
https://jcenter.bintray.com/com/google/jimfs/jimfs/1.1/jimfs-1.1
|
||||
https://jcenter.bintray.com/com/google/protobuf/protobuf-java-util/3.4.0/protobuf-java-util-3.4.0
|
||||
https://jcenter.bintray.com/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0
|
||||
https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.0.0/protobuf-java-3.0.0
|
||||
https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.4.0/protobuf-java-3.4.0
|
||||
https://jcenter.bintray.com/com/google/protobuf/protobuf-lite/3.0.1/protobuf-lite-3.0.1
|
||||
https://jcenter.bintray.com/com/google/zxing/core/3.3.3/core-3.3.3
|
||||
https://jcenter.bintray.com/com/googlecode/concurrent-trees/concurrent-trees/2.6.1/concurrent-trees-2.6.1
|
||||
https://jcenter.bintray.com/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6
|
||||
|
@ -439,7 +333,6 @@ https://jcenter.bintray.com/com/jcraft/jsch/0.1.54/jsch-0.1.54
|
|||
https://jcenter.bintray.com/com/parse/bolts/bolts-tasks/1.4.0/bolts-tasks-1.4.0
|
||||
https://jcenter.bintray.com/com/squareup/javapoet/1.8.0/javapoet-1.8.0
|
||||
https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0
|
||||
https://jcenter.bintray.com/com/squareup/okhttp/okhttp/2.7.5/okhttp-2.7.5
|
||||
https://jcenter.bintray.com/com/squareup/okhttp3/okhttp-urlconnection/3.12.1/okhttp-urlconnection-3.12.1
|
||||
https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/3.12.1/okhttp-3.12.1
|
||||
https://jcenter.bintray.com/com/squareup/okio/okio/1.15.0/okio-1.15.0
|
||||
|
@ -457,20 +350,10 @@ https://jcenter.bintray.com/commons-io/commons-io/2.4/commons-io-2.4
|
|||
https://jcenter.bintray.com/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1
|
||||
https://jcenter.bintray.com/commons-logging/commons-logging/1.2/commons-logging-1.2
|
||||
https://jcenter.bintray.com/de/undercouch/gradle-download-task/3.1.2/gradle-download-task-3.1.2
|
||||
https://jcenter.bintray.com/io/grpc/grpc-android/1.21.0/grpc-android-1.21.0
|
||||
https://jcenter.bintray.com/io/grpc/grpc-api/1.21.0/grpc-api-1.21.0
|
||||
https://jcenter.bintray.com/io/grpc/grpc-context/1.21.0/grpc-context-1.21.0
|
||||
https://jcenter.bintray.com/io/grpc/grpc-core/1.21.0/grpc-core-1.21.0
|
||||
https://jcenter.bintray.com/io/grpc/grpc-okhttp/1.21.0/grpc-okhttp-1.21.0
|
||||
https://jcenter.bintray.com/io/grpc/grpc-protobuf-lite/1.21.0/grpc-protobuf-lite-1.21.0
|
||||
https://jcenter.bintray.com/io/grpc/grpc-stub/1.21.0/grpc-stub-1.21.0
|
||||
https://jcenter.bintray.com/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0
|
||||
https://jcenter.bintray.com/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0
|
||||
https://jcenter.bintray.com/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0
|
||||
https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1
|
||||
https://jcenter.bintray.com/javax/xml/bind/jaxb-api/2.2.12-b140109.1041/jaxb-api-2.2.12-b140109.1041
|
||||
https://jcenter.bintray.com/junit/junit/4.12/junit-4.12
|
||||
https://jcenter.bintray.com/me/leolin/ShortcutBadger/1.1.22/ShortcutBadger-1.1.22
|
||||
https://jcenter.bintray.com/me/zhanghai/android/materialprogressbar/library/1.4.2/library-1.4.2
|
||||
https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-4.9
|
||||
https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0
|
||||
|
@ -507,13 +390,11 @@ https://jcenter.bintray.com/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk15on-
|
|||
https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48
|
||||
https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56
|
||||
https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.60/bcprov-jdk15on-1.60
|
||||
https://jcenter.bintray.com/org/checkerframework/checker-compat-qual/2.5.2/checker-compat-qual-2.5.2
|
||||
https://jcenter.bintray.com/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2
|
||||
https://jcenter.bintray.com/org/codehaus/groovy/groovy-all/2.4.15/groovy-all-2.4.15
|
||||
https://jcenter.bintray.com/org/codehaus/groovy/groovy-xml/2.4.7/groovy-xml-2.4.7
|
||||
https://jcenter.bintray.com/org/codehaus/groovy/groovy/2.4.7/groovy-2.4.7
|
||||
https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14
|
||||
https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17
|
||||
https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2
|
||||
https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4
|
||||
https://jcenter.bintray.com/org/eclipse/jdt/core/compiler/ecj/4.5.1/ecj-4.5.1
|
||||
|
@ -556,17 +437,13 @@ https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.31/kotli
|
|||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.71/kotlin-stdlib-jdk8-1.2.71
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.20/kotlin-stdlib-jdk8-1.3.20
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.31/kotlin-stdlib-jdk8-1.3.31
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jre7/1.2.0/kotlin-stdlib-jre7-1.2.0
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jre8/1.2.0/kotlin-stdlib-jre8-1.2.0
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/kotlin-stdlib-1.2.0
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.71/kotlin-stdlib-1.2.71
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.11/kotlin-stdlib-1.3.11
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.20/kotlin-stdlib-1.3.20
|
||||
https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.31/kotlin-stdlib-1.3.31
|
||||
https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824
|
||||
https://jcenter.bintray.com/org/jvnet/staxex/stax-ex/1.7.7/stax-ex-1.7.7
|
||||
https://jcenter.bintray.com/org/nanohttpd/nanohttpd/2.3.1/nanohttpd-2.3.1
|
||||
https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3
|
||||
https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.0.4/asm-analysis-5.0.4
|
||||
https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.1/asm-analysis-5.1
|
||||
|
@ -594,7 +471,7 @@ https://maven.java.net/content/repositories/releases/org/glassfish/build/gfnexus
|
|||
https://maven.java.net/content/repositories/releases/org/glassfish/hk2/hk2-parent/2.1.14/hk2-parent-2.1.14
|
||||
https://maven.java.net/content/repositories/releases/org/glassfish/hk2/hk2-public/2.1.14/hk2-public-2.1.14
|
||||
https://maven.java.net/content/repositories/releases/org/glassfish/hk2/osgiversion-maven-plugin/2.1.14/osgiversion-maven-plugin-2.1.14
|
||||
https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.13-SNAPSHOT/junit-4.13-20190621.062355-185
|
||||
https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.13-SNAPSHOT/junit-4.13-20191026.122450-195
|
||||
https://plugins.gradle.org/m2/com/diffplug/gradle/spotless/com.diffplug.gradle.spotless.gradle.plugin/3.23.0/com.diffplug.gradle.spotless.gradle.plugin-3.23.0
|
||||
https://plugins.gradle.org/m2/com/diffplug/spotless/spotless-plugin-gradle/3.23.0/spotless-plugin-gradle-3.23.0
|
||||
https://repo.maven.apache.org/maven2/antlr/antlr/2.7.2/antlr-2.7.2
|
||||
|
@ -666,17 +543,16 @@ https://repo.maven.apache.org/maven2/com/google/auto/auto-common/0.3/auto-common
|
|||
https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/2/auto-parent-2
|
||||
https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/3/auto-parent-3
|
||||
https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/6/auto-parent-6
|
||||
https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/7/auto-parent-7
|
||||
https://repo.maven.apache.org/maven2/com/google/auto/service/auto-service/1.0-rc2/auto-service-1.0-rc2
|
||||
https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annotations/1.6.2/auto-value-annotations-1.6.2
|
||||
https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.6.2/auto-value-parent-1.6.2
|
||||
https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.6.3/auto-value-parent-1.6.3
|
||||
https://repo.maven.apache.org/maven2/com/google/code/findbugs/annotations/3.0.0/annotations-3.0.0
|
||||
https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1
|
||||
https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0
|
||||
https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1
|
||||
https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.7/gson-parent-2.7
|
||||
https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.8.0/gson-parent-2.8.0
|
||||
https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.7/gson-2.7
|
||||
https://repo.maven.apache.org/maven2/com/google/code/maven-replacer-plugin/replacer/1.5.3/replacer-1.5.3
|
||||
https://repo.maven.apache.org/maven2/com/google/collections/google-collections/1.0-rc1/google-collections-1.0-rc1
|
||||
https://repo.maven.apache.org/maven2/com/google/collections/google-collections/1.0/google-collections-1.0
|
||||
|
@ -684,11 +560,9 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotatio
|
|||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.12/error_prone_parent-2.0.12
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.1.2/error_prone_parent-2.1.2
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.1.3/error_prone_parent-2.1.3
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.3.2/error_prone_parent-2.3.2
|
||||
https://repo.maven.apache.org/maven2/com/google/google/1/google-1
|
||||
https://repo.maven.apache.org/maven2/com/google/google/5/google-5
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-jdk5/17.0/guava-jdk5-17.0
|
||||
|
@ -704,11 +578,9 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/21.0/guava-pa
|
|||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/22.0/guava-parent-22.0
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/23.0/guava-parent-23.0
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/25.1-android/guava-parent-25.1-android
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/26.0-android/guava-parent-26.0-android
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/26.0-jre/guava-parent-26.0-jre
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-testlib/18.0/guava-testlib-18.0
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-testlib/23.0/guava-testlib-23.0
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-testlib/26.0-android/guava-testlib-26.0-android
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/10.0.1/guava-10.0.1
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/14.0.1/guava-14.0.1
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/16.0.1/guava-16.0.1
|
||||
|
@ -750,32 +622,15 @@ https://repo.maven.apache.org/maven2/com/googlecode/jmockit/jmockit/1.6/jmockit-
|
|||
https://repo.maven.apache.org/maven2/com/googlecode/maven-download-plugin/download-maven-plugin/1.2.0/download-maven-plugin-1.2.0
|
||||
https://repo.maven.apache.org/maven2/com/ibm/icu/icu4j/51.2/icu4j-51.2
|
||||
https://repo.maven.apache.org/maven2/com/intellij/annotations/9.0.4/annotations-9.0.4
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy.connector-factory/0.0.6/jsch.agentproxy.connector-factory-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy.core/0.0.6/jsch.agentproxy.core-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy.jsch/0.0.6/jsch.agentproxy.jsch-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy.pageant/0.0.6/jsch.agentproxy.pageant-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy.sshagent/0.0.6/jsch.agentproxy.sshagent-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy.usocket-jna/0.0.6/jsch.agentproxy.usocket-jna-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy.usocket-nc/0.0.6/jsch.agentproxy.usocket-nc-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch.agentproxy/0.0.6/jsch.agentproxy-0.0.6
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch/0.1.49/jsch-0.1.49
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jsch/0.1.50/jsch-0.1.50
|
||||
https://repo.maven.apache.org/maven2/com/jcraft/jzlib/1.0.7/jzlib-1.0.7
|
||||
https://repo.maven.apache.org/maven2/com/simpligility/maven/plugins/android-maven-plugin/4.5.0/android-maven-plugin-4.5.0
|
||||
https://repo.maven.apache.org/maven2/com/simpligility/maven/progressive-organization-pom/6.0.0/progressive-organization-pom-6.0.0
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp/okhttp/2.5.0/okhttp-2.5.0
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp/parent/2.5.0/parent-2.5.0
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp/parent/2.7.5/parent-2.7.5
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/mockwebserver/3.12.1/mockwebserver-3.12.1
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-testing-support/3.12.1/okhttp-testing-support-3.12.1
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-tls/3.12.1/okhttp-tls-3.12.1
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.1/parent-3.12.1
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.13.0/okio-parent-1.13.0
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.15.0/okio-parent-1.15.0
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.6.0/okio-parent-1.6.0
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.13.0/okio-1.13.0
|
||||
https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.6.0/okio-1.6.0
|
||||
https://repo.maven.apache.org/maven2/com/sun/activation/all/1.2.0/all-1.2.0
|
||||
https://repo.maven.apache.org/maven2/com/sun/istack/istack-commons/2.21/istack-commons-2.21
|
||||
https://repo.maven.apache.org/maven2/com/sun/jersey/contribs/jersey-apache-client4/1.12/jersey-apache-client4-1.12
|
||||
|
@ -846,7 +701,6 @@ https://repo.maven.apache.org/maven2/commons-validator/commons-validator/1.3.1/c
|
|||
https://repo.maven.apache.org/maven2/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1
|
||||
https://repo.maven.apache.org/maven2/dom4j/dom4j/1.1/dom4j-1.1
|
||||
https://repo.maven.apache.org/maven2/doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4
|
||||
https://repo.maven.apache.org/maven2/io/grpc/grpc-context/1.19.0/grpc-context-1.19.0
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-all/4.0.35.Final/netty-all-4.0.35.Final
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-parent/4.0.35.Final/netty-parent-4.0.35.Final
|
||||
https://repo.maven.apache.org/maven2/javax/activation/activation/1.1/activation-1.1
|
||||
|
@ -887,8 +741,6 @@ https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.8.5/byte-
|
|||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.6.5/byte-buddy-1.6.5
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.8.10/byte-buddy-1.8.10
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.8.5/byte-buddy-1.8.5
|
||||
https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/3.4.0/jna-3.4.0
|
||||
https://repo.maven.apache.org/maven2/net/java/dev/jna/platform/3.4.0/platform-3.4.0
|
||||
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/1/jvnet-parent-1
|
||||
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/3/jvnet-parent-3
|
||||
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/4/jvnet-parent-4
|
||||
|
@ -930,7 +782,6 @@ https://repo.maven.apache.org/maven2/org/apache/apache/4/apache-4
|
|||
https://repo.maven.apache.org/maven2/org/apache/apache/5/apache-5
|
||||
https://repo.maven.apache.org/maven2/org/apache/apache/6/apache-6
|
||||
https://repo.maven.apache.org/maven2/org/apache/apache/7/apache-7
|
||||
https://repo.maven.apache.org/maven2/org/apache/apache/8/apache-8
|
||||
https://repo.maven.apache.org/maven2/org/apache/apache/9/apache-9
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-build-plugin/1.1/commons-build-plugin-1.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-build-plugin/1.10/commons-build-plugin-1.10
|
||||
|
@ -984,16 +835,12 @@ https://repo.maven.apache.org/maven2/org/apache/felix/org.apache.felix.bundlerep
|
|||
https://repo.maven.apache.org/maven2/org/apache/felix/org.apache.felix.utils/1.6.0/org.apache.felix.utils-1.6.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.1.3/httpclient-4.1.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.2.5/httpclient-4.2.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.3.5/httpclient-4.3.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.1.1/httpcomponents-client-4.1.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.1.3/httpcomponents-client-4.1.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.1/httpcomponents-client-4.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.2.2/httpcomponents-client-4.2.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.2.5/httpcomponents-client-4.2.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.2.6/httpcomponents-client-4.2.6
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.3.5/httpcomponents-client-4.3.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-client/4.3.6/httpcomponents-client-4.3.6
|
||||
|
@ -1002,8 +849,6 @@ https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-cl
|
|||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.1.4/httpcomponents-core-4.1.4
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.1/httpcomponents-core-4.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.2.2/httpcomponents-core-4.2.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.2.4/httpcomponents-core-4.2.4
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.2.5/httpcomponents-core-4.2.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.3.2/httpcomponents-core-4.3.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-core/4.3.3/httpcomponents-core-4.3.3
|
||||
|
@ -1013,18 +858,14 @@ https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-co
|
|||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponents-parent/10/httpcomponents-parent-10
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.1.4/httpcore-4.1.4
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.2.2/httpcore-4.2.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.2.4/httpcore-4.2.4
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpmime/4.2.5/httpmime-4.2.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/maven-notice-plugin/0.0.2/maven-notice-plugin-0.0.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/4.0/project-4.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/4.1.1/project-4.1.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/4.1/project-4.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/5/project-5
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/6/project-6
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/project/7/project-7
|
||||
https://repo.maven.apache.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/jackrabbit/jackrabbit-parent/2.5.2/jackrabbit-parent-2.5.2
|
||||
|
@ -1142,7 +983,6 @@ https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/13/maven-pare
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/15/maven-parent-15
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/17/maven-parent-17
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/18/maven-parent-18
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/19/maven-parent-19
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/20/maven-parent-20
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/21/maven-parent-21
|
||||
|
@ -1258,11 +1098,8 @@ https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plu
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.5/maven-assembly-plugin-2.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/3.1.1/maven-assembly-plugin-3.1.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-changes-plugin/2.11/maven-changes-plugin-2.11
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-checkstyle-plugin/2.10/maven-checkstyle-plugin-2.10
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-checkstyle-plugin/2.11/maven-checkstyle-plugin-2.11
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-checkstyle-plugin/2.13/maven-checkstyle-plugin-2.13
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-checkstyle-plugin/2.16/maven-checkstyle-plugin-2.16
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-checkstyle-plugin/2.17/maven-checkstyle-plugin-2.17
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-checkstyle-plugin/2.9.1/maven-checkstyle-plugin-2.9.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-checkstyle-plugin/3.0.0/maven-checkstyle-plugin-3.0.0
|
||||
|
@ -1323,7 +1160,6 @@ https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plug
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/3.0.0-M1/maven-install-plugin-3.0.0-M1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-invoker-plugin/1.8/maven-invoker-plugin-1.8
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-invoker-plugin/3.0.1/maven-invoker-plugin-3.0.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/2.1/maven-jar-plugin-2.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/2.3.1/maven-jar-plugin-2.3.1
|
||||
|
@ -1377,7 +1213,6 @@ https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plug
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.0/maven-release-plugin-2.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.1/maven-release-plugin-2.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.4.2/maven-release-plugin-2.4.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.5.1/maven-release-plugin-2.5.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.5.2/maven-release-plugin-2.5.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.5.3/maven-release-plugin-2.5.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.5/maven-release-plugin-2.5
|
||||
|
@ -1426,11 +1261,9 @@ https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plu
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.20.1/maven-surefire-plugin-2.20.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.20/maven-surefire-plugin-2.20
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.21.0/maven-surefire-plugin-2.21.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.22.0/maven-surefire-plugin-2.22.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.3/maven-surefire-plugin-2.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.4.3/maven-surefire-plugin-2.4.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.5/maven-surefire-plugin-2.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.7.2/maven-surefire-plugin-2.7.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.9/maven-surefire-plugin-2.9
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/3.0.0-M3/maven-surefire-plugin-3.0.0-M3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-report-plugin/2.20/maven-surefire-report-plugin-2.20
|
||||
|
@ -1438,7 +1271,6 @@ https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-war-plugin/3
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/release/maven-release/2.0/maven-release-2.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/release/maven-release/2.1/maven-release-2.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/release/maven-release/2.4.2/maven-release-2.4.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/release/maven-release/2.5.1/maven-release-2.5.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/release/maven-release/2.5.2/maven-release-2.5.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/release/maven-release/2.5.3/maven-release-2.5.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/release/maven-release/2.5/maven-release-2.5
|
||||
|
@ -1536,11 +1368,9 @@ https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.19.1/s
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.20.1/surefire-2.20.1
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.20/surefire-2.20
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.21.0/surefire-2.21.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.22.0/surefire-2.22.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.3/surefire-2.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.4.3/surefire-2.4.3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.5/surefire-2.5
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.7.2/surefire-2.7.2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/2.9/surefire-2.9
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire/3.0.0-M3/surefire-3.0.0-M3
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-shared/2.7/wagon-http-shared-2.7
|
||||
|
@ -1555,10 +1385,8 @@ https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-providers/1.0-
|
|||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-providers/2.0/wagon-providers-2.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-providers/2.7/wagon-providers-2.7
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh-common/2.0/wagon-ssh-common-2.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh-common/2.7/wagon-ssh-common-2.7
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh-external/1.0-alpha-5/wagon-ssh-external-1.0-alpha-5
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.0/wagon-ssh-2.0
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.7/wagon-ssh-2.7
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-webdav-jackrabbit/2.7/wagon-webdav-jackrabbit-2.7
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2
|
||||
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6
|
||||
|
@ -1610,6 +1438,7 @@ https://repo.maven.apache.org/maven2/org/codehaus/jackson/jackson-xc/1.9.2/jacks
|
|||
https://repo.maven.apache.org/maven2/org/codehaus/jsr166-mirror/jsr166y/1.7.0/jsr166y-1.7.0
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.10/animal-sniffer-annotations-1.10
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.15/animal-sniffer-annotations-1.15
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-maven-plugin/1.10/animal-sniffer-maven-plugin-1.10
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-maven-plugin/1.11/animal-sniffer-maven-plugin-1.11
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-maven-plugin/1.13/animal-sniffer-maven-plugin-1.13
|
||||
|
@ -1647,7 +1476,6 @@ https://repo.maven.apache.org/maven2/org/codehaus/mojo/cobertura-maven-plugin/2.
|
|||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/findbugs-maven-plugin/2.5.1/findbugs-maven-plugin-2.5.1
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/findbugs-maven-plugin/2.5.2/findbugs-maven-plugin-2.5.2
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/findbugs-maven-plugin/2.5.3/findbugs-maven-plugin-2.5.3
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/license-maven-plugin/1.7/license-maven-plugin-1.7
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/23/mojo-parent-23
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/24/mojo-parent-24
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/28/mojo-parent-28
|
||||
|
@ -1830,25 +1658,19 @@ https://repo.maven.apache.org/maven2/org/immutables/tools/maven-shade-plugin/4/m
|
|||
https://repo.maven.apache.org/maven2/org/infinitest/continuous-testing-toolkit/1.0/continuous-testing-toolkit-1.0
|
||||
https://repo.maven.apache.org/maven2/org/iq80/snappy/snappy/0.4/snappy-0.4
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/jacoco-maven-plugin/0.7.2.201409121644/jacoco-maven-plugin-0.7.2.201409121644
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/jacoco-maven-plugin/0.7.4.201502262128/jacoco-maven-plugin-0.7.4.201502262128
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/jacoco-maven-plugin/0.7.9/jacoco-maven-plugin-0.7.9
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.build/0.7.2.201409121644/org.jacoco.build-0.7.2.201409121644
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.build/0.7.4.201502262128/org.jacoco.build-0.7.4.201502262128
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.build/0.7.5.201505241946/org.jacoco.build-0.7.5.201505241946
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.build/0.7.9/org.jacoco.build-0.7.9
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.core/0.7.9/org.jacoco.core-0.7.9
|
||||
https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.report/0.7.9/org.jacoco.report-0.7.9
|
||||
https://repo.maven.apache.org/maven2/org/javassist/javassist/3.20.0-GA/javassist-3.20.0-GA
|
||||
https://repo.maven.apache.org/maven2/org/jboss/weld/weld-api-bom/1.0/weld-api-bom-1.0
|
||||
https://repo.maven.apache.org/maven2/org/jboss/weld/weld-api-parent/1.0/weld-api-parent-1.0
|
||||
https://repo.maven.apache.org/maven2/org/jboss/weld/weld-parent/6/weld-parent-6
|
||||
https://repo.maven.apache.org/maven2/org/jdom/jdom/1.1/jdom-1.1
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.61/kotlin-stdlib-common-1.2.61
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.0/kotlin-stdlib-common-1.3.0
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.61/kotlin-stdlib-jdk7-1.2.61
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.61/kotlin-stdlib-jdk8-1.2.61
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/kotlin-stdlib-1.2.0
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.20/kotlin-stdlib-1.2.20
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.61/kotlin-stdlib-1.2.61
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.0/kotlin-stdlib-1.3.0
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-annotations-common/1.2.71/kotlin-test-annotations-common-1.2.71
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.11/kotlin-test-annotations-common-1.3.11
|
||||
|
@ -1859,13 +1681,11 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-common/1.3
|
|||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-common/1.3.20/kotlin-test-common-1.3.20
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-common/1.3.31/kotlin-test-common-1.3.31
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.1.3-2/kotlin-test-junit-1.1.3-2
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.2.0/kotlin-test-junit-1.2.0
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.2.71/kotlin-test-junit-1.2.71
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.3.11/kotlin-test-junit-1.3.11
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.3.20/kotlin-test-junit-1.3.20
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.3.31/kotlin-test-junit-1.3.31
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test/1.1.3-2/kotlin-test-1.1.3-2
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test/1.2.0/kotlin-test-1.2.0
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test/1.2.71/kotlin-test-1.2.71
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test/1.3.11/kotlin-test-1.3.11
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-test/1.3.20/kotlin-test-1.3.20
|
||||
|
@ -1896,7 +1716,6 @@ https://repo.maven.apache.org/maven2/org/littleshoot/littleproxy/1.1.0-beta2/lit
|
|||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/1.10.16/mockito-core-1.10.16
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/1.10.19/mockito-core-1.10.19
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/1.9.5/mockito-core-1.9.5
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/2.18.3/mockito-core-2.18.3
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/2.19.0/mockito-core-2.19.0
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/2.7.1/mockito-core-2.7.1
|
||||
|
@ -1908,7 +1727,6 @@ https://repo.maven.apache.org/maven2/org/mortbay/jetty/project/6.1.26/project-6.
|
|||
https://repo.maven.apache.org/maven2/org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211
|
||||
https://repo.maven.apache.org/maven2/org/multiverse/multiverse-core/0.7.0/multiverse-core-0.7.0
|
||||
https://repo.maven.apache.org/maven2/org/multiverse/multiverse/0.7.0/multiverse-0.7.0
|
||||
https://repo.maven.apache.org/maven2/org/nanohttpd/nanohttpd-project/2.3.1/nanohttpd-project-2.3.1
|
||||
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/1.2/objenesis-parent-1.2
|
||||
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/1.3/objenesis-parent-1.3
|
||||
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/2.1/objenesis-parent-2.1
|
||||
|
@ -1933,14 +1751,12 @@ https://repo.maven.apache.org/maven2/org/osgi/org.osgi.core/4.1.0/org.osgi.core-
|
|||
https://repo.maven.apache.org/maven2/org/osgi/org.osgi.core/4.2.0/org.osgi.core-4.2.0
|
||||
https://repo.maven.apache.org/maven2/org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1
|
||||
https://repo.maven.apache.org/maven2/org/osgi/org.osgi.core/6.0.0/org.osgi.core-6.0.0
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/4.0/asm-parent-4.0
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/5.0.1/asm-parent-5.0.1
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/5.0.3/asm-parent-5.0.3
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/5.0.4/asm-parent-5.0.4
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/5.1/asm-parent-5.1
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/5.2/asm-parent-5.2
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm-parent/6.0/asm-parent-6.0
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/4.0/asm-4.0
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/5.0.2/asm-5.0.2
|
||||
|
@ -2072,7 +1888,6 @@ https://repo.maven.apache.org/maven2/org/sonatype/spice/zapper/spice-zapper/1.1/
|
|||
https://repo.maven.apache.org/maven2/org/sonatype/spice/zapper/spice-zapper/1.2/spice-zapper-1.2
|
||||
https://repo.maven.apache.org/maven2/org/sonatype/spice/zapper/spice-zapper/1.3/spice-zapper-1.3
|
||||
https://repo.maven.apache.org/maven2/org/testng/testng/6.8.13/testng-6.8.13
|
||||
https://repo.maven.apache.org/maven2/org/tinyjee/dim/doxia-include-macro/1.1/doxia-include-macro-1.1
|
||||
https://repo.maven.apache.org/maven2/org/tukaani/xz/1.2/xz-1.2
|
||||
https://repo.maven.apache.org/maven2/org/tukaani/xz/1.5/xz-1.5
|
||||
https://repo.maven.apache.org/maven2/org/tukaani/xz/1.8/xz-1.8
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -16,7 +16,6 @@
|
|||
(def desktop-menu (js/require "react-native-desktop-menu"))
|
||||
(def desktop-config (js/require "react-native-desktop-config"))
|
||||
(def desktop-shortcuts (js/require "react-native-desktop-shortcuts"))
|
||||
(def react-native-firebase #js {})
|
||||
(def touchid #js {})
|
||||
(def camera #js {:RNCamera #js {:constants #js {:Aspect "Portrait"}}})
|
||||
(def status-keycard #js {:default #js {}})
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
(def dismiss-keyboard (js/require "dismissKeyboard"))
|
||||
(def image-crop-picker (js/require "react-native-image-crop-picker"))
|
||||
(def image-resizer (js/require "react-native-image-resizer"))
|
||||
(def react-native-firebase (js/require "react-native-firebase"))
|
||||
(def snoopy (js/require "rn-snoopy"))
|
||||
(def snoopy-filter (js/require "rn-snoopy/stream/filter"))
|
||||
(def snoopy-bars (js/require "rn-snoopy/stream/bars"))
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
[status-im.ethereum.core :as ethereum]
|
||||
[status-im.mailserver.core :as mailserver]
|
||||
[status-im.native-module.core :as status]
|
||||
[status-im.notifications.core :as notifications]
|
||||
[status-im.transport.message.group-chat :as message.group-chat]
|
||||
[status-im.transport.message.protocol :as protocol]
|
||||
[status-im.transport.message.transit :as transit]
|
||||
|
@ -352,16 +351,6 @@
|
|||
:last-clock-value (:clock-value message)})
|
||||
(send chat-id message wrapped-record))))
|
||||
|
||||
(fx/defn send-push-notification
|
||||
[cofx chat-id message-id fcm-tokens status]
|
||||
(log/debug "#6772 - send-push-notification" message-id fcm-tokens)
|
||||
(when (and (seq fcm-tokens) (= status :sent))
|
||||
(let [payload {:from (multiaccounts.model/current-public-key cofx)
|
||||
:to chat-id
|
||||
:id message-id}]
|
||||
{:send-notification {:data-payload (notifications/encode-notification-payload payload)
|
||||
:tokens fcm-tokens}})))
|
||||
|
||||
(fx/defn update-message-status
|
||||
[{:keys [db] :as cofx} chat-id message-id status]
|
||||
(fx/merge cofx
|
||||
|
@ -443,16 +432,3 @@
|
|||
:chat-received-message/add-fx
|
||||
(fn [messages]
|
||||
(re-frame/dispatch [:message/add messages])))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:send-notification
|
||||
(fn [{:keys [data-payload tokens]}]
|
||||
"Sends a notification to another device. data-payload is a Clojure map of strings to strings"
|
||||
(let [data-payload-json (types/clj->json data-payload)
|
||||
tokens-json (types/clj->json tokens)]
|
||||
(log/debug "send-notification data-payload-json:" data-payload-json "tokens-json:" tokens-json)
|
||||
;; NOTE: react-native-firebase doesn't have a good implementation of sendMessage
|
||||
;; (supporting e.g. priority or content_available properties),
|
||||
;; therefore we must use an implementation in status-go.
|
||||
(status/send-data-notification {:data-payload data-payload-json :tokens tokens-json}
|
||||
#(log/debug "send-data-notification cb result: " %)))))
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
[status-im.multiaccounts.model :as multiaccounts.model]
|
||||
[status-im.transport.filters.core :as transport.filters]
|
||||
[status-im.contact.db :as contact.db]
|
||||
[status-im.contact.device-info :as device-info]
|
||||
[status-im.ethereum.core :as ethereum]
|
||||
[status-im.data-store.contacts :as contacts-store]
|
||||
[status-im.mailserver.core :as mailserver]
|
||||
|
@ -43,13 +42,10 @@
|
|||
|
||||
(defn- own-info
|
||||
[db]
|
||||
(let [{:keys [name preferred-name photo-path address]} (:multiaccount db)
|
||||
fcm-token (get-in db [:notifications :fcm-token])]
|
||||
(let [{:keys [name preferred-name photo-path address]} (:multiaccount db)]
|
||||
{:name (or preferred-name name)
|
||||
:profile-image photo-path
|
||||
:address address
|
||||
:device-info (device-info/all {:db db})
|
||||
:fcm-token fcm-token}))
|
||||
:address address}))
|
||||
|
||||
(fx/defn upsert-contact
|
||||
[{:keys [db] :as cofx}
|
||||
|
@ -105,7 +101,7 @@
|
|||
[{{:contacts/keys [contacts] :as db} :db :as cofx}
|
||||
public-key
|
||||
timestamp
|
||||
{:keys [name profile-image address fcm-token device-info] :as m}]
|
||||
{:keys [name profile-image address] :as m}]
|
||||
;; We need to convert to timestamp ms as before we were using now in ms to
|
||||
;; set last updated
|
||||
;; Using whisper timestamp mostly works but breaks in a few scenarios:
|
||||
|
@ -121,7 +117,7 @@
|
|||
(let [contact (get contacts public-key)
|
||||
|
||||
;; Backward compatibility with <= 0.9.21, as they don't send
|
||||
;; fcm-token & address in contact updates
|
||||
;; address in contact updates
|
||||
contact-props
|
||||
(cond-> {:public-key public-key
|
||||
:photo-path profile-image
|
||||
|
@ -129,14 +125,9 @@
|
|||
:address (or address
|
||||
(:address contact)
|
||||
(ethereum/public-key->address public-key))
|
||||
:device-info (device-info/merge-info
|
||||
timestamp
|
||||
(:device-info contact)
|
||||
device-info)
|
||||
:last-updated timestamp-ms
|
||||
:system-tags (conj (get contact :system-tags #{})
|
||||
:contact/request-received)}
|
||||
fcm-token (assoc :fcm-token fcm-token))]
|
||||
:contact/request-received)})]
|
||||
(upsert-contact cofx contact-props)))))
|
||||
|
||||
(fx/defn initialize-contacts [cofx]
|
||||
|
@ -182,4 +173,3 @@
|
|||
{:events [:contacts/ens-names-verified]}
|
||||
[{:keys [db]} names]
|
||||
{:db (update db :contacts/contacts add-ens-names names)})
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
;;Contact
|
||||
|
||||
(spec/def :contact/address (spec/nilable :global/address))
|
||||
(spec/def :contact/fcm-token (spec/nilable string?))
|
||||
(spec/def :contact/last-online (spec/nilable int?))
|
||||
(spec/def :contact/last-updated (spec/nilable int?))
|
||||
(spec/def :contact/name (spec/nilable string?))
|
||||
|
@ -31,8 +30,7 @@
|
|||
(spec/def :contact/contact (spec/keys :req-un [:contact/address
|
||||
:contact/public-key
|
||||
:contact/system-tags]
|
||||
:opt-un [:contact/fcm-token
|
||||
:contact/name
|
||||
:opt-un [:contact/name
|
||||
:contact/photo-path
|
||||
:contact/last-online
|
||||
:contact/last-updated
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
(ns status-im.contact.device-info
|
||||
(:require [status-im.utils.config :as config]))
|
||||
|
||||
(defn all [{:keys [db]}]
|
||||
(filter
|
||||
:fcm-token
|
||||
(conj
|
||||
(->> (:pairing/installations db)
|
||||
(vals)
|
||||
(filter :enabled?)
|
||||
(filter :fcm-token)
|
||||
(take config/max-installations)
|
||||
(map #(hash-map :id (:installation-id %)
|
||||
:fcm-token (:fcm-token %))))
|
||||
{:id (get-in db [:multiaccount :installation-id])
|
||||
:fcm-token (get-in db [:notifications :fcm-token])})))
|
||||
|
||||
(defn merge-info [timestamp previous-devices new-devices]
|
||||
(reduce (fn [acc {:keys [id] :as new-device}]
|
||||
(if (:fcm-token new-device)
|
||||
(assoc acc
|
||||
id
|
||||
(assoc new-device :timestamp timestamp))
|
||||
acc))
|
||||
previous-devices
|
||||
new-devices))
|
|
@ -3,7 +3,6 @@
|
|||
[status-im.utils.error-handler :as error-handler]
|
||||
[status-im.utils.platform :as platform]
|
||||
[status-im.ui.components.react :as react]
|
||||
[status-im.notifications.background :as background-messaging]
|
||||
[reagent.core :as reagent]
|
||||
status-im.transport.impl.receive
|
||||
status-im.transport.impl.send
|
||||
|
@ -23,6 +22,4 @@
|
|||
(utils.logs/init-logs)
|
||||
(error-handler/register-exception-handler!)
|
||||
(re-frame/dispatch [:init/app-started])
|
||||
(.registerComponent react/app-registry "StatusIm" #(reagent/reactify-component app-root))
|
||||
(when platform/android?
|
||||
(.registerHeadlessTask react/app-registry "RNFirebaseBackgroundMessage" background-messaging/message-handler-fn)))
|
||||
(.registerComponent react/app-registry "StatusIm" #(reagent/reactify-component app-root)))
|
||||
|
|
|
@ -6,24 +6,8 @@
|
|||
[taoensso.timbre :as log]
|
||||
[status-im.utils.types :as types]))
|
||||
|
||||
(defn deserialize-device-info [contact]
|
||||
(update contact :deviceInfo (fn [device-info]
|
||||
(reduce (fn [acc info]
|
||||
(assoc acc
|
||||
(:installationId info)
|
||||
(clojure.set/rename-keys info {:fcmToken :fcm-token :installationId :id})))
|
||||
{}
|
||||
device-info))))
|
||||
|
||||
(defn serialize-device-info [contact]
|
||||
(update contact :device-info (fn [device-info]
|
||||
(map
|
||||
#(clojure.set/rename-keys % {:fcm-token :fcmToken :id :installationId})
|
||||
(vals device-info)))))
|
||||
|
||||
(defn <-rpc [contact]
|
||||
(-> contact
|
||||
deserialize-device-info
|
||||
(update :tributeToTalk types/deserialize)
|
||||
(update :systemTags
|
||||
#(reduce (fn [acc s]
|
||||
|
@ -31,7 +15,6 @@
|
|||
#{}
|
||||
%)) (clojure.set/rename-keys {:id :public-key
|
||||
:photoPath :photo-path
|
||||
:deviceInfo :device-info
|
||||
:tributeToTalk :tribute-to-talk
|
||||
:ensVerifiedAt :ens-verified-at
|
||||
:ensVerified :ens-verified
|
||||
|
@ -40,14 +23,12 @@
|
|||
|
||||
(defn ->rpc [contact]
|
||||
(-> contact
|
||||
serialize-device-info
|
||||
(update :tribute-to-talk types/serialize)
|
||||
(update :system-tags #(mapv str %))
|
||||
(clojure.set/rename-keys {:public-key :id
|
||||
:ens-verified :ensVerified
|
||||
:ens-verified-at :ensVerifiedAt
|
||||
:photo-path :photoPath
|
||||
:device-info :deviceInfo
|
||||
:tribute-to-talk :tributeToTalk
|
||||
:system-tags :systemTags
|
||||
:last-updated :lastUpdated})))
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
status-im.subs
|
||||
[status-im.ui.screens.views :as views]
|
||||
[status-im.ui.components.react :as react]
|
||||
[status-im.notifications.core :as notifications]
|
||||
[status-im.core :as core]
|
||||
[status-im.utils.snoopy :as snoopy]
|
||||
[status-im.ui.components.desktop.shortcuts :as shortcuts]
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
[status-im.mailserver.constants :as mailserver.constants]
|
||||
[status-im.mailserver.topics :as mailserver.topics]
|
||||
[status-im.node.core :as node]
|
||||
[status-im.notifications.core :as notifications]
|
||||
[status-im.pairing.core :as pairing]
|
||||
[status-im.privacy-policy.core :as privacy-policy]
|
||||
[status-im.protocol.core :as protocol]
|
||||
|
@ -660,23 +659,6 @@
|
|||
(log/debug :event-str event-str)
|
||||
(signals/process cofx event-str)))
|
||||
|
||||
;; notifications module
|
||||
|
||||
(handlers/register-handler-fx
|
||||
:notifications/notification-open-event-received
|
||||
(fn [cofx [_ decoded-payload ctx]]
|
||||
(notifications/handle-push-notification-open cofx decoded-payload ctx)))
|
||||
|
||||
(handlers/register-handler-fx
|
||||
:notifications.callback/get-fcm-token-success
|
||||
(fn [{:keys [db]} [_ fcm-token]]
|
||||
{:db (assoc-in db [:notifications :fcm-token] fcm-token)}))
|
||||
|
||||
(handlers/register-handler-fx
|
||||
:notifications.callback/on-message
|
||||
(fn [cofx [_ decoded-payload opts]]
|
||||
(notifications/handle-on-message cofx decoded-payload opts)))
|
||||
|
||||
;; hardwallet module
|
||||
|
||||
(handlers/register-handler-fx
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
[status-im.multiaccounts.login.core :as multiaccounts.login]
|
||||
[status-im.native-module.core :as status]
|
||||
[status-im.network.net-info :as network]
|
||||
[status-im.notifications.core :as notifications]
|
||||
[status-im.react-native.js-dependencies :as rn-dependencies]
|
||||
[status-im.ui.screens.db :refer [app-db]]
|
||||
[status-im.ui.screens.navigation :as navigation]
|
||||
|
@ -22,34 +21,21 @@
|
|||
(fx/defn initialize-app-db
|
||||
"Initialize db to initial state"
|
||||
[{{:keys [view-id hardwallet initial-props desktop/desktop
|
||||
supported-biometric-auth push-notifications/stored network/type]} :db}]
|
||||
supported-biometric-auth network/type]} :db}]
|
||||
{:db (assoc app-db
|
||||
:initial-props initial-props
|
||||
:desktop/desktop (merge desktop (:desktop/desktop app-db))
|
||||
:network/type type
|
||||
:hardwallet (dissoc hardwallet :secrets)
|
||||
:supported-biometric-auth supported-biometric-auth
|
||||
:view-id view-id
|
||||
:push-notifications/stored stored)})
|
||||
:view-id view-id)})
|
||||
|
||||
(fx/defn initialize-views
|
||||
[cofx]
|
||||
(let [{{:multiaccounts/keys [multiaccounts] :as db} :db} cofx]
|
||||
(if (empty? multiaccounts)
|
||||
(navigation/navigate-to-cofx cofx :intro nil)
|
||||
(let [multiaccount-with-notification
|
||||
(when-not platform/desktop?
|
||||
(notifications/lookup-contact-pubkey-from-hash
|
||||
cofx
|
||||
(first (keys (:push-notifications/stored db)))))
|
||||
selection-fn
|
||||
(if (not-empty multiaccount-with-notification)
|
||||
#(filter (fn [multiaccount]
|
||||
(= multiaccount-with-notification
|
||||
(:public-key multiaccount)))
|
||||
%)
|
||||
#(sort-by :last-sign-in > %))
|
||||
{:keys [address public-key photo-path name]} (first (selection-fn (vals multiaccounts)))]
|
||||
(let [{:keys [address public-key photo-path name]} (first (#(sort-by :last-sign-in > %) (vals multiaccounts)))]
|
||||
(multiaccounts.login/open-login cofx address photo-path name public-key)))))
|
||||
|
||||
(fx/defn initialize-multiaccounts
|
||||
|
@ -74,7 +60,6 @@
|
|||
::restore-native-settings nil
|
||||
::open-multiaccounts #(re-frame/dispatch [::initialize-multiaccounts %])
|
||||
:ui/listen-to-window-dimensions-change nil
|
||||
:notifications/init nil
|
||||
::network/listen-to-network-info nil
|
||||
:hardwallet/register-card-events nil
|
||||
:hardwallet/check-nfc-support nil
|
||||
|
@ -94,4 +79,4 @@
|
|||
(re-frame/reg-fx
|
||||
::init-keystore
|
||||
(fn []
|
||||
(status/init-keystore)))
|
||||
(status/init-keystore)))
|
||||
|
|
|
@ -24,8 +24,7 @@
|
|||
:choose-key 2
|
||||
:select-key-storage 3
|
||||
:create-code 4
|
||||
:confirm-code 5
|
||||
:enable-notifications 6})
|
||||
:confirm-code 5})
|
||||
|
||||
(defn decrement-step [step]
|
||||
(let [inverted (map-invert step-kw-to-num)]
|
||||
|
@ -84,22 +83,22 @@
|
|||
{:events [:intro-wizard/navigate-back]}
|
||||
[{:keys [db] :as cofx} skip-alert?]
|
||||
(let [step (get-in db [:intro-wizard :step])]
|
||||
;; Cannot go back after account has been created
|
||||
;; and we're on "Enable notifications" step
|
||||
(when-not (= :enable-notifications step)
|
||||
(if (and (= step :choose-key) (not skip-alert?))
|
||||
(utils/show-question
|
||||
(i18n/label :t/are-you-sure-to-cancel)
|
||||
(i18n/label :t/you-will-start-from-scratch)
|
||||
#(re-frame/dispatch [:intro-wizard/navigate-back true]))
|
||||
(fx/merge cofx
|
||||
dec-step
|
||||
navigation/navigate-back)))))
|
||||
(if (and (= step :choose-key) (not skip-alert?))
|
||||
(utils/show-question
|
||||
(i18n/label :t/are-you-sure-to-cancel)
|
||||
(i18n/label :t/you-will-start-from-scratch)
|
||||
#(re-frame/dispatch [:intro-wizard/navigate-back true]))
|
||||
(fx/merge cofx
|
||||
dec-step
|
||||
navigation/navigate-back))))
|
||||
|
||||
(fx/defn exit-wizard [{:keys [db] :as cofx}]
|
||||
(fx/defn exit-wizard
|
||||
[{:keys [db] :as cofx}]
|
||||
(fx/merge cofx
|
||||
{:db (dissoc db :intro-wizard)}
|
||||
(navigation/navigate-to-cofx :home nil)))
|
||||
(navigation/navigate-reset {:index 0
|
||||
:key :chat-stack
|
||||
:actions [{:routeName :home}]})))
|
||||
|
||||
(fx/defn init-key-generation
|
||||
[{:keys [db] :as cofx}]
|
||||
|
@ -131,13 +130,9 @@
|
|||
(cond (confirm-failure? db)
|
||||
(on-confirm-failure cofx)
|
||||
|
||||
(or (= step :enable-notifications)
|
||||
(and (not first-time-setup?) (= step :confirm-code)
|
||||
(:multiaccounts/login db)))
|
||||
(fx/merge cofx
|
||||
(when (and (= step :enable-notifications) (not skip?))
|
||||
{:notifications/request-notifications-permissions nil})
|
||||
exit-wizard)
|
||||
(and (= step :confirm-code)
|
||||
(:multiaccounts/login db))
|
||||
(exit-wizard cofx)
|
||||
|
||||
(= step :generate-key)
|
||||
(init-key-generation cofx)
|
||||
|
@ -160,11 +155,7 @@
|
|||
:step next-step)}
|
||||
(when (= step :create-code)
|
||||
store-key-code)
|
||||
(when (= next-step :enable-notifications)
|
||||
(navigation/navigate-reset {:index 0
|
||||
:actions [{:routeName :create-multiaccount-enable-notifications}]}))
|
||||
(when (not= next-step :enable-notifications)
|
||||
(navigation/navigate-to-cofx (->> next-step name (str "create-multiaccount-") keyword) nil)))))))
|
||||
(navigation/navigate-to-cofx (->> next-step name (str "create-multiaccount-") keyword) nil))))))
|
||||
|
||||
(defn prepare-accounts-data
|
||||
[multiaccount]
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
[status-im.fleet.core :as fleet]
|
||||
[status-im.i18n :as i18n]
|
||||
[status-im.native-module.core :as status]
|
||||
[status-im.notifications.core :as notifications]
|
||||
[status-im.protocol.core :as protocol]
|
||||
[status-im.stickers.core :as stickers]
|
||||
[status-im.ui.screens.mobile-network-settings.events :as mobile-network]
|
||||
|
@ -131,15 +130,14 @@
|
|||
|
||||
(fx/defn get-config-callback
|
||||
{:events [::get-config-callback]}
|
||||
[{:keys [db] :as cofx} config stored-pns]
|
||||
[{:keys [db] :as cofx} config]
|
||||
(let [[{:keys [address] :as multiaccount} current-network networks] (deserialize-config config)
|
||||
network-id (str (get-in networks [current-network :config :NetworkId]))]
|
||||
(fx/merge cofx
|
||||
{:db (assoc db
|
||||
:networks/current-network current-network
|
||||
:networks/networks networks
|
||||
:multiaccount multiaccount)
|
||||
:notifications/request-notifications-permissions nil}
|
||||
:multiaccount multiaccount)}
|
||||
;; NOTE: initializing mailserver depends on user mailserver
|
||||
;; preference which is why we wait for config callback
|
||||
(protocol/initialize-protocol {:default-mailserver true})
|
||||
|
@ -151,14 +149,11 @@
|
|||
(mobile-network/on-network-status-change)
|
||||
(chaos-mode/check-chaos-mode)
|
||||
(when-not platform/desktop?
|
||||
(initialize-wallet))
|
||||
(when stored-pns
|
||||
(notifications/process-stored-event address stored-pns)))))
|
||||
(initialize-wallet)))))
|
||||
|
||||
(fx/defn login-only-events
|
||||
[{:keys [db] :as cofx} address password save-password?]
|
||||
(let [stored-pns (:push-notifications/stored db)
|
||||
auth-method (:auth-method db)
|
||||
(let [auth-method (:auth-method db)
|
||||
new-auth-method (if save-password?
|
||||
(when-not (or (= "biometric" auth-method) (= "password" auth-method))
|
||||
(if (= auth-method "biometric-prepare") "biometric" "password"))
|
||||
|
@ -178,7 +173,7 @@
|
|||
:on-success #(re-frame/dispatch [::protocol/initialize-protocol {:mailservers (or % [])}])}
|
||||
{:method "settings_getConfigs"
|
||||
:params [["multiaccount" "current-network" "networks"]]
|
||||
:on-success #(re-frame/dispatch [::get-config-callback % stored-pns])}]}
|
||||
:on-success #(re-frame/dispatch [::get-config-callback %])}]}
|
||||
(when save-password?
|
||||
(keychain/save-user-password address password))
|
||||
(when new-auth-method
|
||||
|
@ -243,8 +238,7 @@
|
|||
:multiaccount))
|
||||
::json-rpc/call
|
||||
[{:method "web3_clientVersion"
|
||||
:on-success #(re-frame/dispatch [::initialize-web3-client-version %])}]
|
||||
:notifications/get-fcm-token nil}
|
||||
:on-success #(re-frame/dispatch [::initialize-web3-client-version %])}]}
|
||||
;;FIXME
|
||||
(when nodes
|
||||
(fleet/set-nodes :eth.contract nodes))
|
||||
|
@ -318,4 +312,4 @@
|
|||
(fx/merge cofx
|
||||
{:db (assoc-in db [:multiaccounts/login :save-password?] true)}
|
||||
(biometric/show-message bioauth-message bioauth-code)
|
||||
(open-login-callback nil)))))
|
||||
(open-login-callback nil)))))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
(ns status-im.multiaccounts.update.core
|
||||
(:require [status-im.contact.db :as contact.db]
|
||||
[status-im.contact.device-info :as device-info]
|
||||
|
||||
[status-im.ethereum.json-rpc :as json-rpc]
|
||||
[status-im.transport.message.contact :as message.contact]
|
||||
[status-im.transport.message.protocol :as protocol]
|
||||
|
@ -10,9 +10,8 @@
|
|||
|
||||
(fx/defn multiaccount-update-message [{:keys [db] :as cofx}]
|
||||
(let [multiaccount (:multiaccount db)
|
||||
fcm-token (get-in db [:notifications :fcm-token])
|
||||
{:keys [name preferred-name photo-path address]} multiaccount]
|
||||
(message.contact/ContactUpdate. (or preferred-name name) photo-path address fcm-token (device-info/all cofx))))
|
||||
(message.contact/ContactUpdate. (or preferred-name name) photo-path address nil nil)))
|
||||
|
||||
(fx/defn send-multiaccount-update [cofx]
|
||||
(protocol/send
|
||||
|
|
|
@ -187,10 +187,6 @@
|
|||
[data account hashed-password callback]
|
||||
(.signTypedData (status) data account hashed-password callback))
|
||||
|
||||
(defn send-data-notification
|
||||
[{:keys [data-payload tokens] :as m} on-result]
|
||||
(.sendDataNotification (status) data-payload tokens on-result))
|
||||
|
||||
(defn send-logs [dbJson js-logs callback]
|
||||
(.sendLogs (status) dbJson js-logs callback))
|
||||
|
||||
|
@ -271,4 +267,3 @@
|
|||
"Generate a icon based on a string, synchronously"
|
||||
[seed]
|
||||
(.identicon (status) seed))
|
||||
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
(ns status-im.notifications.background
|
||||
(:require [goog.object :as object]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.react-native.js-dependencies :as rn]
|
||||
[status-im.notifications.core :as notifications]
|
||||
[status-im.i18n :as i18n]
|
||||
[cljs.core.async :as async]
|
||||
[taoensso.timbre :as log]
|
||||
[status-im.utils.platform :as platform]))
|
||||
|
||||
(when-not platform/desktop?
|
||||
(def firebase (object/get rn/react-native-firebase "default")))
|
||||
|
||||
(defn message-handler-fn []
|
||||
;; message-js is firebase.messaging.RemoteMessage: https://github.com/invertase/react-native-firebase-docs/blob/master/docs/messaging/reference/RemoteMessage.md
|
||||
(fn [message-js]
|
||||
(js/Promise.
|
||||
(fn [on-success on-error]
|
||||
(try
|
||||
(when message-js
|
||||
(log/debug "message-handler-fn called" (js/JSON.stringify message-js))
|
||||
(let [decoded-payload (notifications/decode-notification-payload message-js)]
|
||||
(when decoded-payload
|
||||
(log/debug "dispatching :notifications.callback/on-message to display background message" decoded-payload)
|
||||
(re-frame/dispatch [:notifications.callback/on-message decoded-payload {:force true}]))))
|
||||
(on-success)
|
||||
(catch :default e
|
||||
(log/warn "failed to handle background message" e)
|
||||
(on-error e)))))))
|
|
@ -1,382 +0,0 @@
|
|||
(ns status-im.notifications.core
|
||||
(:require [goog.object :as object]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.react-native.js-dependencies :as rn]
|
||||
[taoensso.timbre :as log]
|
||||
[status-im.i18n :as i18n]
|
||||
[status-im.multiaccounts.core :as multiaccounts]
|
||||
[status-im.multiaccounts.model :as multiaccounts.model]
|
||||
[status-im.contact.db :as contact.db]
|
||||
[status-im.chat.models :as chat-model]
|
||||
[status-im.contact.db :as contact.db]
|
||||
[status-im.ethereum.core :as ethereum]
|
||||
[status-im.i18n :as i18n]
|
||||
[status-im.react-native.js-dependencies :as rn]
|
||||
[status-im.utils.fx :as fx]
|
||||
[status-im.utils.platform :as platform]
|
||||
[status-im.utils.utils :as utils]
|
||||
[taoensso.timbre :as log]))
|
||||
|
||||
;; Work in progress namespace responsible for push notifications and interacting
|
||||
;; with Firebase Cloud Messaging.
|
||||
|
||||
(def ^:private pn-message-id-hash-length 10)
|
||||
(def ^:private pn-pubkey-hash-length 10)
|
||||
(def ^:private pn-pubkey-length 132)
|
||||
(def ^:private pull-recent-messages-window (* 15 60))
|
||||
|
||||
(when-not platform/desktop?
|
||||
|
||||
(def firebase (object/get rn/react-native-firebase "default")))
|
||||
|
||||
;; NOTE: Only need to explicitly request permissions on iOS.
|
||||
(defn request-permissions []
|
||||
(when-not platform/desktop?
|
||||
(-> (.requestPermission (.messaging firebase))
|
||||
(.then
|
||||
(fn [_]
|
||||
(log/debug "notifications-granted"))
|
||||
(fn [_]
|
||||
(log/debug "notifications-denied"))))))
|
||||
|
||||
(defn valid-notification-payload?
|
||||
[{:keys [from to]}]
|
||||
(and from to
|
||||
(or
|
||||
;; is it full pubkey?
|
||||
(and (= (.-length from) pn-pubkey-length)
|
||||
(= (.-length to) pn-pubkey-length))
|
||||
;; partially deanonymized
|
||||
(and (= (.-length from) pn-pubkey-hash-length)
|
||||
(= (.-length to) pn-pubkey-length))
|
||||
;; or is it an anonymized pubkey hash (v2 payload)?
|
||||
(and (= (.-length from) pn-pubkey-hash-length)
|
||||
(= (.-length to) pn-pubkey-hash-length)))))
|
||||
|
||||
(defn anonymize-pubkey
|
||||
[pubkey]
|
||||
"Anonymize a public key, if needed, by hashing it and taking the first 4 bytes"
|
||||
(if (= (count pubkey) pn-pubkey-hash-length)
|
||||
pubkey
|
||||
(apply str (take pn-pubkey-hash-length (ethereum/sha3 pubkey)))))
|
||||
|
||||
(defn encode-notification-payload
|
||||
[{:keys [from to id] :as payload}]
|
||||
(if (valid-notification-payload? payload)
|
||||
{:msg-v2 (js/JSON.stringify #js {:from (anonymize-pubkey from)
|
||||
:to (anonymize-pubkey to)
|
||||
:id (apply str (take pn-message-id-hash-length id))})}
|
||||
(throw (str "Invalid push notification payload" payload))))
|
||||
|
||||
(when platform/desktop?
|
||||
(defn handle-initial-push-notification [] ())) ;; no-op
|
||||
|
||||
(when-not platform/desktop?
|
||||
|
||||
(def channel-id "status-im")
|
||||
(def channel-name "Status")
|
||||
(def sound-name "message.wav")
|
||||
(def group-id "im.status.ethereum.MESSAGE")
|
||||
(def icon "ic_stat_status_notification")
|
||||
|
||||
(defn- hash->contact [hash-or-pubkey multiaccounts]
|
||||
(let [hash (anonymize-pubkey hash-or-pubkey)]
|
||||
(->> multiaccounts
|
||||
(filter #(= (anonymize-pubkey (:public-key %)) hash))
|
||||
first)))
|
||||
|
||||
(defn- hash->pubkey [hash multiaccounts]
|
||||
(:public-key (hash->contact hash multiaccounts)))
|
||||
|
||||
(defn lookup-contact-pubkey-from-hash
|
||||
[{:keys [db] :as cofx} contact-pubkey-or-hash]
|
||||
"Tries to deanonymize a given contact pubkey hash by looking up the
|
||||
full pubkey (if db is unlocked) in :multiaccount and, if not found,
|
||||
in :contacts/contacts.
|
||||
Returns original value if not a hash (e.g. already a public key)."
|
||||
(if (and contact-pubkey-or-hash
|
||||
(= (count contact-pubkey-or-hash) pn-pubkey-hash-length))
|
||||
(if-let [multiaccount-pubkey (hash->pubkey contact-pubkey-or-hash
|
||||
[(:multiaccount db)])]
|
||||
multiaccount-pubkey
|
||||
(if (multiaccounts.model/logged-in? cofx)
|
||||
;; TODO: for simplicity we're doing a linear lookup of the contacts,
|
||||
;; but we might want to build a map of hashed pubkeys to pubkeys
|
||||
;; for this purpose
|
||||
(hash->pubkey contact-pubkey-or-hash
|
||||
(contact.db/get-active-contacts (:contacts/contacts db)))
|
||||
(do
|
||||
(log/warn "failed to lookup contact from hash, not logged in")
|
||||
contact-pubkey-or-hash)))
|
||||
contact-pubkey-or-hash))
|
||||
|
||||
(defn parse-notification-v1-payload [msg-json]
|
||||
(let [msg (js/JSON.parse msg-json)]
|
||||
{:from (object/get msg "from")
|
||||
:to (object/get msg "to")}))
|
||||
|
||||
(defn parse-notification-v2-payload [msg-v2-json]
|
||||
(let [msg (js/JSON.parse msg-v2-json)]
|
||||
{:from (object/get msg "from")
|
||||
:to (object/get msg "to")
|
||||
:id (object/get msg "id")}))
|
||||
|
||||
(defn decode-notification-payload [message-js]
|
||||
;; message-js.-data is Notification.data():
|
||||
;; https://github.com/invertase/react-native-firebase/blob/adcbeac3d11585dd63922ef178ff6fd886d5aa9b/src/modules/notifications/Notification.js#L79
|
||||
(let [data-js (.. message-js -data)
|
||||
msg-v2-json (object/get data-js "msg-v2")]
|
||||
(try
|
||||
(let [payload (if msg-v2-json
|
||||
(parse-notification-v2-payload msg-v2-json)
|
||||
(parse-notification-v1-payload (object/get data-js "msg")))]
|
||||
(if (valid-notification-payload? payload)
|
||||
payload
|
||||
(log/warn "failed to retrieve notification payload from"
|
||||
(js/JSON.stringify data-js))))
|
||||
(catch :default e
|
||||
(log/debug "failed to parse" (js/JSON.stringify data-js)
|
||||
"exception:" e)))))
|
||||
|
||||
(defn rehydrate-payload
|
||||
[cofx {:keys [from to id] :as decoded-payload}]
|
||||
"Takes a payload with hashed pubkeys and returns a payload with the real
|
||||
(matched) pubkeys"
|
||||
{:from (lookup-contact-pubkey-from-hash cofx from)
|
||||
:to (lookup-contact-pubkey-from-hash cofx to)
|
||||
;; TODO: Rehydrate message id
|
||||
:id id})
|
||||
|
||||
(defn- get-contact-name [{:keys [db] :as cofx} from]
|
||||
(if (multiaccounts.model/logged-in? cofx)
|
||||
(:name (hash->contact from (-> db :contacts/contacts vals)))
|
||||
(anonymize-pubkey from)))
|
||||
|
||||
(defn- build-notification [{:keys [title body decoded-payload]}]
|
||||
(let [native-notification
|
||||
(clj->js
|
||||
(merge
|
||||
{:title title
|
||||
:body body
|
||||
:data (clj->js (encode-notification-payload decoded-payload))
|
||||
:sound sound-name}
|
||||
(when-let [msg-id (:id decoded-payload)]
|
||||
;; We must prefix the notification ID, otherwise it will
|
||||
;; cause a crash in iOS
|
||||
{:notificationId (str "hash:" msg-id)})))]
|
||||
(firebase.notifications.Notification.
|
||||
native-notification (.notifications firebase))))
|
||||
|
||||
(defn display-notification [{:keys [title body] :as params}]
|
||||
(let [notification (build-notification params)]
|
||||
(when platform/android?
|
||||
(.. notification
|
||||
(-android.setChannelId channel-id)
|
||||
(-android.setAutoCancel true)
|
||||
(-android.setPriority firebase.notifications.Android.Priority.High)
|
||||
(-android.setCategory firebase.notifications.Android.Category.Message)
|
||||
(-android.setGroup group-id)
|
||||
(-android.setSmallIcon icon)))
|
||||
(.. firebase
|
||||
notifications
|
||||
(displayNotification notification)
|
||||
(then #(log/debug "Display Notification" title body))
|
||||
(catch (fn [error]
|
||||
(log/debug "Display Notification error" title body error))))))
|
||||
|
||||
(defn get-fcm-token []
|
||||
(-> (.getToken (.messaging firebase))
|
||||
(.then (fn [x]
|
||||
(log/debug "get-fcm-token:" x)
|
||||
(re-frame/dispatch
|
||||
[:notifications.callback/get-fcm-token-success x])))))
|
||||
|
||||
(defn create-notification-channel []
|
||||
(let [channel (firebase.notifications.Android.Channel.
|
||||
channel-id
|
||||
channel-name
|
||||
firebase.notifications.Android.Importance.High)]
|
||||
(.setSound channel sound-name)
|
||||
(.setShowBadge channel true)
|
||||
(.enableVibration channel true)
|
||||
(.. firebase
|
||||
notifications
|
||||
-android
|
||||
(createChannel channel)
|
||||
(then #(log/debug "Notification channel created:" channel-id)
|
||||
#(log/error "Notification channel creation error:" channel-id %)))))
|
||||
|
||||
(defn- show-notification?
|
||||
"Ignore push notifications from unknown contacts or removed chats"
|
||||
[{:keys [db] :as cofx} {:keys [from] :as rehydrated-payload}]
|
||||
(and (valid-notification-payload? rehydrated-payload)
|
||||
(multiaccounts.model/logged-in? cofx)
|
||||
(some #(= (:public-key %) from)
|
||||
(contact.db/get-active-contacts (:contacts/contacts db)))
|
||||
(some #(= (:chat-id %) from)
|
||||
(vals (:chats db)))))
|
||||
|
||||
(fx/defn handle-on-message
|
||||
[{:keys [db now] :as cofx} decoded-payload {:keys [force]}]
|
||||
(let [view-id (:view-id db)
|
||||
current-chat-id (:current-chat-id db)
|
||||
app-state (:app-state db)
|
||||
rehydrated-payload (rehydrate-payload cofx decoded-payload)
|
||||
from (:from rehydrated-payload)]
|
||||
(log/debug "handle-on-message" "app-state:" app-state
|
||||
"view-id:" view-id "current-chat-id:" current-chat-id
|
||||
"from:" from "force:" force)
|
||||
(merge
|
||||
(when (and (= (count from) pn-pubkey-length)
|
||||
(show-notification? cofx rehydrated-payload))
|
||||
{:dispatch [:mailserver/fetch-history from (- (quot now 1000) pull-recent-messages-window)]})
|
||||
(when (or force
|
||||
(and
|
||||
(not= app-state "active")
|
||||
(show-notification? cofx rehydrated-payload)))
|
||||
{:db
|
||||
(assoc-in db [:push-notifications/stored (:to rehydrated-payload)]
|
||||
(js/JSON.stringify (clj->js rehydrated-payload)))
|
||||
:notifications/display-notification
|
||||
{:title (get-contact-name cofx from)
|
||||
:body (i18n/label :notifications-new-message-body)
|
||||
:decoded-payload rehydrated-payload}}))))
|
||||
|
||||
(fx/defn handle-push-notification-open
|
||||
[{:keys [db] :as cofx} decoded-payload {:keys [stored?] :as ctx}]
|
||||
(let [current-public-key (multiaccounts.model/current-public-key cofx)
|
||||
nav-opts (when stored? {:navigation-reset? true})
|
||||
rehydrated-payload (rehydrate-payload cofx decoded-payload)
|
||||
from (:from rehydrated-payload)
|
||||
to (:to rehydrated-payload)]
|
||||
(log/debug "handle-push-notification-open"
|
||||
"current-public-key:" current-public-key
|
||||
"rehydrated-payload:" rehydrated-payload "stored?:" stored?)
|
||||
(if (= to current-public-key)
|
||||
(fx/merge cofx
|
||||
{:db (update db :push-notifications/stored dissoc to)}
|
||||
(chat-model/navigate-to-chat from nav-opts))
|
||||
{:db (assoc-in db [:push-notifications/stored to]
|
||||
(js/JSON.stringify (clj->js rehydrated-payload)))})))
|
||||
|
||||
;; https://github.com/invertase/react-native-firebase/blob/adcbeac3d11585dd63922ef178ff6fd886d5aa9b/src/modules/notifications/Notification.js#L13
|
||||
(defn handle-notification-open-event [event]
|
||||
(log/debug "handle-notification-open-event" event)
|
||||
(let [decoded-payload (decode-notification-payload (.. event -notification))]
|
||||
(when decoded-payload
|
||||
(re-frame/dispatch
|
||||
[:notifications/notification-open-event-received decoded-payload nil]))))
|
||||
|
||||
(defn handle-initial-push-notification []
|
||||
"This method handles pending push notifications.
|
||||
It is only needed to handle PNs from legacy clients
|
||||
(which use firebase.notifications API)"
|
||||
(log/debug "Handle initial push notifications")
|
||||
(.. firebase
|
||||
notifications
|
||||
getInitialNotification
|
||||
(then (fn [event]
|
||||
(log/debug "getInitialNotification" event)
|
||||
(when event
|
||||
(handle-notification-open-event event))))))
|
||||
|
||||
(defn setup-token-refresh-callback []
|
||||
(.onTokenRefresh
|
||||
(.messaging firebase)
|
||||
(fn [x]
|
||||
(log/debug "onTokenRefresh:" x)
|
||||
(re-frame/dispatch [:notifications.callback/get-fcm-token-success x]))))
|
||||
|
||||
(defn setup-on-notification-callback []
|
||||
"Calling onNotification is only needed so that we're able to receive PNs"
|
||||
"while in foreground from older clients who are still relying"
|
||||
"on the notifications API. Once that is no longer a consideration"
|
||||
"we can remove this method"
|
||||
(log/debug "calling onNotification")
|
||||
(.onNotification
|
||||
(.notifications firebase)
|
||||
(fn [message-js]
|
||||
(log/debug "handle-on-notification-callback called")
|
||||
(let [decoded-payload (decode-notification-payload message-js)]
|
||||
(log/debug "handle-on-notification-callback payload:" decoded-payload)
|
||||
(when decoded-payload
|
||||
(re-frame/dispatch
|
||||
[:notifications.callback/on-message decoded-payload]))))))
|
||||
|
||||
(defn setup-on-message-callback []
|
||||
(log/debug "calling onMessage")
|
||||
(.onMessage
|
||||
(.messaging firebase)
|
||||
(fn [message-js]
|
||||
(log/debug "handle-on-message-callback called")
|
||||
(let [decoded-payload (decode-notification-payload message-js)]
|
||||
(log/debug "handle-on-message-callback decoded-payload:"
|
||||
decoded-payload)
|
||||
(when decoded-payload
|
||||
(re-frame/dispatch
|
||||
[:notifications.callback/on-message decoded-payload]))))))
|
||||
|
||||
(defn setup-on-notification-opened-callback []
|
||||
(log/debug "setup-on-notification-opened-callback")
|
||||
(.. firebase
|
||||
notifications
|
||||
(onNotificationOpened handle-notification-open-event)))
|
||||
|
||||
(defn init []
|
||||
(log/debug "Init notifications")
|
||||
(setup-token-refresh-callback)
|
||||
(setup-on-message-callback)
|
||||
(setup-on-notification-callback)
|
||||
(setup-on-notification-opened-callback)
|
||||
(when platform/android?
|
||||
(create-notification-channel))
|
||||
(handle-initial-push-notification)))
|
||||
|
||||
(fx/defn process-stored-event
|
||||
[{:keys [db] :as cofx} address stored-pns]
|
||||
(when-not platform/desktop?
|
||||
(if (multiaccounts.model/logged-in? cofx)
|
||||
(let [current-multiaccount (:multiaccount db)
|
||||
current-address (:address current-multiaccount)
|
||||
current-multiaccount-pubkey (:public-key current-multiaccount)
|
||||
stored-pn-val-json (or (get stored-pns current-multiaccount-pubkey)
|
||||
(get stored-pns (anonymize-pubkey current-multiaccount-pubkey)))
|
||||
stored-pn-payload (if (= (first stored-pn-val-json) \{)
|
||||
(js->clj (js/JSON.parse stored-pn-val-json) :keywordize-keys true)
|
||||
{:from stored-pn-val-json
|
||||
:to current-multiaccount-pubkey})
|
||||
from (lookup-contact-pubkey-from-hash cofx (:from stored-pn-payload))
|
||||
to (lookup-contact-pubkey-from-hash cofx (:to stored-pn-payload))]
|
||||
(when (and from
|
||||
(not (contact.db/blocked? db from))
|
||||
(= address current-address))
|
||||
(log/debug "process-stored-event" "address" address "from" from "to" to)
|
||||
(handle-push-notification-open cofx
|
||||
stored-pn-payload
|
||||
{:stored? true})))
|
||||
(log/error "process-stored-event called without user being logged in!"))))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:notifications/display-notification
|
||||
display-notification)
|
||||
|
||||
(re-frame/reg-fx
|
||||
:notifications/init
|
||||
(fn []
|
||||
(cond
|
||||
platform/android?
|
||||
(init)
|
||||
|
||||
platform/ios?
|
||||
(utils/set-timeout init 100))))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:notifications/get-fcm-token
|
||||
(fn [_]
|
||||
(when platform/mobile?
|
||||
(get-fcm-token))))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:notifications/request-notifications-permissions
|
||||
(fn [_]
|
||||
(request-permissions)))
|
|
@ -4,7 +4,6 @@
|
|||
[status-im.chat.models :as models.chat]
|
||||
[status-im.contact.core :as contact]
|
||||
[status-im.contact.db :as contact.db]
|
||||
[status-im.contact.device-info :as device-info]
|
||||
[status-im.ethereum.json-rpc :as json-rpc]
|
||||
[status-im.i18n :as i18n]
|
||||
[status-im.multiaccounts.model :as multiaccounts.model]
|
||||
|
@ -66,11 +65,10 @@
|
|||
(sort (partial compare-installation our-installation-id) installations))
|
||||
|
||||
(defn pair-installation [cofx]
|
||||
(let [fcm-token (get-in cofx [:db :notifications :fcm-token])
|
||||
installation-id (get-in cofx [:db :multiaccount :installation-id])
|
||||
(let [installation-id (get-in cofx [:db :multiaccount :installation-id])
|
||||
installation-name (get-in cofx [:db :pairing/installations installation-id :name])
|
||||
device-type utils.platform/os]
|
||||
(protocol/send (transport.pairing/PairInstallation. installation-id device-type installation-name fcm-token) nil cofx)))
|
||||
(protocol/send (transport.pairing/PairInstallation. installation-id device-type installation-name nil) nil cofx)))
|
||||
|
||||
(fx/defn confirm-message-processed
|
||||
[cofx confirmation]
|
||||
|
@ -88,11 +86,8 @@
|
|||
[old-contact new-contact] (sort-by :last-updated [remote local])]
|
||||
(-> local
|
||||
(merge new-contact)
|
||||
(assoc :device-info (device-info/merge-info (:last-updated new-contact)
|
||||
(:device-info old-contact)
|
||||
(vals (:device-info new-contact)))
|
||||
;; we only take system tags from the newest contact version
|
||||
:system-tags (:system-tags new-contact)))))
|
||||
(assoc ;; we only take system tags from the newest contact version
|
||||
:system-tags (:system-tags new-contact)))))
|
||||
|
||||
(def merge-contacts (partial merge-with merge-contact))
|
||||
|
||||
|
@ -124,11 +119,9 @@
|
|||
(fx/defn set-name
|
||||
"Set the name of the device"
|
||||
[{:keys [db] :as cofx} installation-name]
|
||||
(let [fcm-token (get-in cofx [:db :notifications :fcm-token])
|
||||
our-installation-id (get-in db [:multiaccount :installation-id])]
|
||||
(let [our-installation-id (get-in db [:multiaccount :installation-id])]
|
||||
{:pairing/set-installation-metadata [[our-installation-id {:name installation-name
|
||||
:deviceType utils.platform/os
|
||||
:fcmToken fcm-token}]]}))
|
||||
:deviceType utils.platform/os}]]}))
|
||||
|
||||
(fx/defn init [cofx]
|
||||
{:pairing/get-our-installations nil})
|
||||
|
@ -350,15 +343,12 @@
|
|||
(confirm-message-processed cofx confirmation))))
|
||||
|
||||
(defn handle-pair-installation
|
||||
[{:keys [db] :as cofx} {:keys [name
|
||||
fcm-token
|
||||
installation-id
|
||||
[{:keys [db] :as cofx} {:keys [name installation-id
|
||||
device-type]} timestamp sender]
|
||||
(if (and (= sender (multiaccounts.model/current-public-key cofx))
|
||||
(not= (get-in db [:multiaccount :installation-id]) installation-id))
|
||||
{:pairing/set-installation-metadata [[installation-id {:name name
|
||||
:deviceType device-type
|
||||
:fcmToken fcm-token}]]}
|
||||
:deviceType device-type}]]}
|
||||
(confirm-message-processed cofx (:metadata cofx))))
|
||||
|
||||
(fx/defn update-installation [{:keys [db]} installation-id metadata]
|
||||
|
@ -366,8 +356,7 @@
|
|||
assoc
|
||||
:installation-id installation-id
|
||||
:name (:name metadata)
|
||||
:device-type (:deviceType metadata)
|
||||
:fcmToken (:fcmToken metadata))})
|
||||
:device-type (:deviceType metadata))})
|
||||
|
||||
(fx/defn load-installations [{:keys [db]} installations]
|
||||
{:db (assoc db :pairing/installations (reduce
|
||||
|
@ -377,7 +366,6 @@
|
|||
:name (:name metadata)
|
||||
:timestamp (:timestamp metadata)
|
||||
:device-type (:deviceType metadata)
|
||||
:fcm-token (:fcmToken metadata)
|
||||
:enabled? enabled}))
|
||||
{}
|
||||
installations))})
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
:opt-un [:contact/system-tags
|
||||
:contact/last-updated
|
||||
:contact/last-online
|
||||
:contact/fcm-token
|
||||
:pairing/pending?
|
||||
:contact/tags]))
|
||||
(spec/def :pairing/contacts (spec/nilable (spec/map-of :global/not-empty-string :pairing/contact)))
|
||||
|
@ -77,9 +76,9 @@
|
|||
:message/message-seen :message/message-seen
|
||||
:message/group-membership-update :message/group-membership-update))
|
||||
|
||||
(spec/def :message/contact-request (spec/keys :req-un [:contact/name ::profile-image :contact/address :contact/fcm-token]))
|
||||
(spec/def :message/contact-update (spec/keys :req-un [:contact/name ::profile-image :contact/address :contact/fcm-token]))
|
||||
(spec/def :message/contact-request-confirmed (spec/keys :req-un [:contact/name ::profile-image :contact/address :contact/fcm-token]))
|
||||
(spec/def :message/contact-request (spec/keys :req-un [:contact/name ::profile-image :contact/address]))
|
||||
(spec/def :message/contact-update (spec/keys :req-un [:contact/name ::profile-image :contact/address]))
|
||||
(spec/def :message/contact-request-confirmed (spec/keys :req-un [:contact/name ::profile-image :contact/address]))
|
||||
(spec/def :message/new-contact-key (spec/keys :req-un [::sym-key ::topic ::message]))
|
||||
|
||||
(spec/def :message/message-seen (spec/keys :req-un [:message/ids]))
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
(:require [goog.object :as o]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.chat.models.message :as models.message]
|
||||
[status-im.contact.device-info :as device-info]
|
||||
[status-im.ethereum.json-rpc :as json-rpc]
|
||||
[status-im.ethereum.core :as ethereum]
|
||||
[status-im.transport.message.contact :as contact]
|
||||
|
@ -132,21 +131,7 @@
|
|||
(remove-hash cofx envelope-hash))
|
||||
|
||||
(when-let [{:keys [from]} (get-in db [:chats chat-id :messages message-id])]
|
||||
(let [{:keys [fcm-token]} (get-in db [:contacts/contacts chat-id])
|
||||
;; We pick the last max-installations devices
|
||||
fcm-tokens
|
||||
(as-> (get-in db [:contacts/contacts chat-id :device-info]) $
|
||||
(vals $)
|
||||
(sort-by :timestamp $)
|
||||
(reverse $)
|
||||
(map :fcm-token $)
|
||||
(into #{} $)
|
||||
(conj $ fcm-token)
|
||||
(filter identity $)
|
||||
(take (inc config/max-installations) $))]
|
||||
(fx/merge cofx
|
||||
(check-confirmations status chat-id message-id)
|
||||
(models.message/send-push-notification chat-id message-id fcm-tokens status)))))))
|
||||
(check-confirmations cofx status chat-id message-id)))))
|
||||
|
||||
(fx/defn update-envelopes-status
|
||||
[{:keys [db] :as cofx} envelope-hashes status]
|
||||
|
@ -170,13 +155,10 @@
|
|||
#(or % {:pending-confirmations messages-count})))})
|
||||
|
||||
(defn- own-info [db]
|
||||
(let [{:keys [name photo-path address]} (:multiaccount db)
|
||||
fcm-token (get-in db [:notifications :fcm-token])]
|
||||
(let [{:keys [name photo-path address]} (:multiaccount db)]
|
||||
{:name name
|
||||
:profile-image photo-path
|
||||
:address address
|
||||
:device-info (device-info/all {:db db})
|
||||
:fcm-token fcm-token}))
|
||||
:address address}))
|
||||
|
||||
(fx/defn resend-contact-request [cofx own-info chat-id {:keys [sym-key topic]}]
|
||||
(protocol/send (contact/map->ContactRequest own-info)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
[taoensso.timbre :as log]))
|
||||
|
||||
(defrecord PairInstallation
|
||||
[installation-id device-type name fcm-token]
|
||||
[installation-id device-type name _]
|
||||
protocol/StatusMessage
|
||||
(validate [this]
|
||||
(if (spec/valid? :message/pair-installation this)
|
||||
|
|
|
@ -25,20 +25,20 @@
|
|||
(deftype ContactRequestHandler []
|
||||
Object
|
||||
(tag [this v] "c2")
|
||||
(rep [this {:keys [name profile-image address fcm-token device-info]}]
|
||||
#js [name profile-image address fcm-token device-info]))
|
||||
(rep [this {:keys [name profile-image address]}]
|
||||
#js [name profile-image address nil nil]))
|
||||
|
||||
(deftype ContactRequestConfirmedHandler []
|
||||
Object
|
||||
(tag [this v] "c3")
|
||||
(rep [this {:keys [name profile-image address fcm-token device-info]}]
|
||||
#js [name profile-image address fcm-token device-info]))
|
||||
(rep [this {:keys [name profile-image address]}]
|
||||
#js [name profile-image address nil nil]))
|
||||
|
||||
(deftype ContactUpdateHandler []
|
||||
Object
|
||||
(tag [this v] "c6")
|
||||
(rep [this {:keys [name profile-image address fcm-token device-info]}]
|
||||
#js [name profile-image address fcm-token device-info]))
|
||||
(rep [this {:keys [name profile-image address]}]
|
||||
#js [name profile-image address nil nil]))
|
||||
|
||||
;; It's necessary to support old clients understanding only older, verbose command content (`release/0.9.25` and older)
|
||||
(defn- new->legacy-command-data [{:keys [command-path params] :as content}]
|
||||
|
@ -86,8 +86,8 @@
|
|||
(deftype PairInstallationHandler []
|
||||
Object
|
||||
(tag [this v] "p2")
|
||||
(rep [this {:keys [name installation-id device-type fcm-token]}]
|
||||
#js [installation-id device-type name fcm-token]))
|
||||
(rep [this {:keys [name installation-id device-type]}]
|
||||
#js [installation-id device-type name nil]))
|
||||
|
||||
(def writer (transit/writer :json
|
||||
{:handlers
|
||||
|
@ -132,24 +132,24 @@
|
|||
;; Here we only need to call the record with the arguments parsed from the clojure datastructures
|
||||
(def reader (transit/reader :json
|
||||
{:handlers
|
||||
{"c2" (fn [[name profile-image address fcm-token device-info]]
|
||||
(contact/ContactRequest. name profile-image address fcm-token device-info))
|
||||
"c3" (fn [[name profile-image address fcm-token device-info]]
|
||||
(contact/ContactRequestConfirmed. name profile-image address fcm-token device-info))
|
||||
{"c2" (fn [[name profile-image address _ _]]
|
||||
(contact/ContactRequest. name profile-image address nil nil))
|
||||
"c3" (fn [[name profile-image address _ _]]
|
||||
(contact/ContactRequestConfirmed. name profile-image address nil nil))
|
||||
"c4" (fn [[legacy-content content-type message-type clock-value timestamp content]]
|
||||
(let [[new-content new-content-type] (legacy->new-message-data (or content legacy-content) content-type)]
|
||||
(protocol/Message. new-content new-content-type message-type clock-value timestamp)))
|
||||
"c7" (fn [[content content-type message-type clock-value timestamp]]
|
||||
(protocol/Message. content content-type message-type clock-value timestamp))
|
||||
"c5" (fn [])
|
||||
"c6" (fn [[name profile-image address fcm-token device-info]]
|
||||
(contact/ContactUpdate. name profile-image address fcm-token device-info))
|
||||
"c6" (fn [[name profile-image address _ _]]
|
||||
(contact/ContactUpdate. name profile-image address nil nil))
|
||||
"g5" (fn [[chat-id membership-updates message]]
|
||||
(group-chat/GroupMembershipUpdate. chat-id membership-updates message))
|
||||
"p1" (fn [[contacts account chat]]
|
||||
(pairing/SyncInstallation. contacts account chat))
|
||||
"p2" (fn [[installation-id device-type name fcm-token]]
|
||||
(pairing/PairInstallation. installation-id device-type name fcm-token))}}))
|
||||
"p2" (fn [[installation-id device-type name _]]
|
||||
(pairing/PairInstallation. installation-id device-type name nil))}}))
|
||||
|
||||
(defn serialize
|
||||
"Serializes a record implementing the StatusMessage protocol using the custom writers"
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
:peers-count 0
|
||||
:node-info {}
|
||||
:peers-summary []
|
||||
:notifications {}
|
||||
:my-profile/editing? false
|
||||
:transport/filters {}
|
||||
:transport/message-envelopes {}
|
||||
|
@ -53,7 +52,6 @@
|
|||
:initial-props {}
|
||||
:desktop/desktop {:tab-view-id :home}
|
||||
:dimensions/window (dimensions/window)
|
||||
:push-notifications/stored {}
|
||||
:registry {}
|
||||
:stickers/packs-owned #{}
|
||||
:stickers/packs-pending #{}
|
||||
|
@ -167,9 +165,6 @@
|
|||
;; DIMENSIONS
|
||||
(spec/def :dimensions/window map?)
|
||||
|
||||
;; PUSH NOTIFICATIONS
|
||||
(spec/def :push-notifications/stored (spec/nilable map?))
|
||||
|
||||
(spec/def ::hardwallet (spec/nilable map?))
|
||||
|
||||
(spec/def :stickers/packs (spec/nilable map?))
|
||||
|
@ -215,7 +210,6 @@
|
|||
:networks/manage
|
||||
:bootnodes/manage
|
||||
:universal-links/url
|
||||
:push-notifications/stored
|
||||
:browser/browsers
|
||||
:browser/options
|
||||
:new/open-dapp
|
||||
|
@ -318,7 +312,6 @@
|
|||
:wallet/wallet
|
||||
:prices/prices
|
||||
:prices/prices-loading?
|
||||
:notifications/notifications
|
||||
::supported-biometric-auth
|
||||
::collectible
|
||||
::collectibles
|
||||
|
|
|
@ -244,11 +244,6 @@
|
|||
(i18n/label :t/processing)]]
|
||||
[password-container confirm-failure? view-width]))
|
||||
|
||||
(defn enable-notifications []
|
||||
[vector-icons/icon :main-icons/bell {:container-style {:align-items :center
|
||||
:justify-content :center}
|
||||
:width 66 :height 64}])
|
||||
|
||||
(defn bottom-bar [{:keys [step weak-password? encrypt-with-password?
|
||||
forward-action
|
||||
next-button-disabled?
|
||||
|
@ -264,11 +259,11 @@
|
|||
[react/view {:min-height 46 :max-height 46 :align-self :stretch}
|
||||
[react/activity-indicator {:animating true
|
||||
:size :large}]]
|
||||
(#{:generate-key :recovery-success :enable-notifications} step)
|
||||
(#{:generate-key :recovery-success} step)
|
||||
(let [label-kw (case step
|
||||
:generate-key :generate-a-key
|
||||
:recovery-success :re-encrypt-key
|
||||
:enable-notifications :intro-wizard-title6)]
|
||||
:intro-wizard-title6)]
|
||||
[react/view {:min-height 46 :max-height 46}
|
||||
[components.common/button {:button-style styles/bottom-button
|
||||
:on-press #(re-frame/dispatch
|
||||
|
@ -292,12 +287,6 @@
|
|||
(and (= step :create-code) weak-password?)
|
||||
(and (= step :enter-phrase) next-button-disabled?))
|
||||
:forward? true}]]])
|
||||
(when (= :enable-notifications step)
|
||||
[components.common/button {:button-style (assoc styles/bottom-button :margin-top 20)
|
||||
:label (i18n/label :t/maybe-later)
|
||||
:accessibility-label :skip-notifications-button
|
||||
:on-press #(re-frame/dispatch [forward-action {:skip? true}])
|
||||
:background? false}])
|
||||
|
||||
(when (or (= :generate-key step) (and processing? (= :recovery-success step)))
|
||||
[react/text {:style (assoc styles/wizard-text :margin-top 20)}
|
||||
|
@ -541,20 +530,6 @@
|
|||
:forward-action (:forward-action wizard-state)}
|
||||
wizard-state)]]]))
|
||||
|
||||
(defn wizard-enable-notifications []
|
||||
[react/view {:style {:flex 1}}
|
||||
[toolbar/toolbar
|
||||
{:style {:border-bottom-width 0
|
||||
:margin-top 16}}
|
||||
nil
|
||||
nil]
|
||||
[react/view {:style {:flex 1
|
||||
:justify-content :space-between}}
|
||||
[top-bar {:step :enable-notifications}]
|
||||
[enable-notifications]
|
||||
[bottom-bar {:step :enable-notifications
|
||||
:forward-action :intro-wizard/step-forward-pressed}]]])
|
||||
|
||||
(defview wizard-enter-phrase []
|
||||
(letsubs [wizard-state [:intro-wizard/enter-phrase]]
|
||||
[react/keyboard-avoiding-view {:style {:flex 1}}
|
||||
|
@ -588,4 +563,3 @@
|
|||
[bottom-bar {:step :recovery-success
|
||||
:forward-action :multiaccounts.recover/re-encrypt-pressed
|
||||
:processing? processing?}]]]))
|
||||
|
||||
|
|
|
@ -150,14 +150,15 @@
|
|||
[(when show-backup-seed?
|
||||
[components.common/counter {:size 22} 1]) :chevron]
|
||||
:on-press #(re-frame/dispatch [:navigate-to :privacy-and-security])}
|
||||
{:icon :main-icons/notification
|
||||
:title :t/notifications
|
||||
:accessibility-label :notifications-button
|
||||
;; TODO commented out for now, uncomment when notifications-settings view
|
||||
;; is populated. Then remove :on-press below
|
||||
;; :on-press #(re-frame/dispatch [:navigate-to :notifications-settings])
|
||||
:on-press #(.openURL react/linking "app-settings://notification/status-im")
|
||||
:accessories [:chevron]}
|
||||
;; TODO commented out for now because it will be enabled for android notifications
|
||||
#_{:icon :main-icons/notification
|
||||
:title :t/notifications
|
||||
:accessibility-label :notifications-button
|
||||
;; TODO commented out for now, uncomment when notifications-settings view
|
||||
;; is populated. Then remove :on-press below
|
||||
;; :on-press #(re-frame/dispatch [:navigate-to :notifications-settings])
|
||||
:on-press #(.openURL react/linking "app-settings://notification/status-im")
|
||||
:accessories [:chevron]}
|
||||
{:icon :main-icons/mobile
|
||||
:title :t/sync-settings
|
||||
:accessibility-label :sync-settings-button
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
:create-multiaccount-select-key-storage
|
||||
:create-multiaccount-create-code
|
||||
:create-multiaccount-confirm-code
|
||||
:create-multiaccount-enable-notifications
|
||||
:recover-multiaccount-enter-phrase
|
||||
:recover-multiaccount-select-storage
|
||||
:recover-multiaccount-enter-password
|
||||
|
@ -63,7 +62,6 @@
|
|||
:create-multiaccount-select-key-storage
|
||||
:create-multiaccount-create-code
|
||||
:create-multiaccount-confirm-code
|
||||
:create-multiaccount-enable-notifications
|
||||
:recover-multiaccount-enter-phrase
|
||||
:recover-multiaccount-select-storage
|
||||
:recover-multiaccount-enter-password
|
||||
|
@ -83,8 +81,8 @@
|
|||
:hardwallet-setup
|
||||
:hardwallet-success]))
|
||||
:config (if
|
||||
;; add view-id here if you'd like that view to be
|
||||
;; first view when app is started
|
||||
;; add view-id here if you'd like that view to be
|
||||
;; first view when app is started
|
||||
(#{:login :progress :multiaccounts :enter-pin-login :keycard-login-pin} view-id)
|
||||
{:initialRouteName view-id}
|
||||
{:initialRouteName :login})})
|
||||
|
|
|
@ -79,7 +79,6 @@
|
|||
:create-multiaccount-select-key-storage intro/wizard-select-key-storage
|
||||
:create-multiaccount-create-code intro/wizard-create-code
|
||||
:create-multiaccount-confirm-code intro/wizard-confirm-code
|
||||
:create-multiaccount-enable-notifications intro/wizard-enable-notifications
|
||||
:recover-multiaccount-enter-phrase intro/wizard-enter-phrase
|
||||
:recover-multiaccount-success intro/wizard-recovery-success
|
||||
:recover-multiaccount-select-storage intro/wizard-select-key-storage
|
||||
|
|
|
@ -27,9 +27,6 @@
|
|||
(def webview #js {:WebView #js {}})
|
||||
(def status-keycard #js {:default #js {}})
|
||||
|
||||
(defrecord Notification [])
|
||||
(def react-native-firebase #js {:default #js {:notifications #js {:Notification Notification}}})
|
||||
|
||||
(def desktop-linking #js {:addEventListener (fn [])})
|
||||
(def desktop-shortcuts #js {:addEventListener (fn [])})
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
{:last-updated 0,
|
||||
:address "eca8218b5ebeb2c47ba94c1b6e0a779d78fff7bc",
|
||||
:name "User B",
|
||||
:fcm-token nil,
|
||||
:photo-path "photo1",
|
||||
:last-online 0,
|
||||
:public-key
|
||||
|
@ -47,7 +46,6 @@
|
|||
:public-key "0x048a2f8b80c60f89a91b4c1316e56f75b087f446e7b8701ceca06a40142d8efe1f5aa36bd0fee9e248060a8d5207b43ae98bef4617c18c71e66f920f324869c09f"}
|
||||
{:last-updated 0
|
||||
:name "User B"
|
||||
:fcm-token nil
|
||||
:photo-path "photo1"
|
||||
:address "eca8218b5ebeb2c47ba94c1b6e0a779d78fff7bc"
|
||||
:last-online 0
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
(ns status-im.test.contacts.device-info
|
||||
(:require [cljs.test :refer-macros [deftest is testing]]
|
||||
[status-im.contact.device-info :as device-info]))
|
||||
|
||||
(def device-list
|
||||
{"2" {:installation-id "2"
|
||||
:fcm-token "token-2"
|
||||
:enabled? true}
|
||||
"3" {:installation-id "3"
|
||||
:fcm-token "token-3"
|
||||
:enabled? false}
|
||||
"4" {:installation-id "4"
|
||||
:enabled? true}
|
||||
"5" {:installation-id "5"
|
||||
:fcm-token "token-5"
|
||||
:enabled? true}})
|
||||
|
||||
(deftest device-info-all
|
||||
(testing "no devices"
|
||||
(is (= [{:id "1"
|
||||
:fcm-token "token-1"}]
|
||||
(device-info/all {:db {:multiaccount {:installation-id "1"}
|
||||
:notifications {:fcm-token "token-1"}}})))
|
||||
|
||||
(testing "some devices"
|
||||
(is (= [{:id "1"
|
||||
:fcm-token "token-1"}
|
||||
{:id "2"
|
||||
:fcm-token "token-2"}
|
||||
{:id "5"
|
||||
:fcm-token "token-5"}]
|
||||
(device-info/all {:db {:multiaccount {:installation-id "1"}
|
||||
:pairing/installations device-list
|
||||
:notifications {:fcm-token "token-1"}}}))))))
|
|
@ -8,12 +8,6 @@
|
|||
:name "name"
|
||||
:photo-path "photo-path"
|
||||
:tribute-to-talk "tribute-to-talk"
|
||||
:device-info {"1" {:id "1"
|
||||
:timestamp 1
|
||||
:fcm-token "1"}
|
||||
"2" {:id "2"
|
||||
:timestamp 2
|
||||
:fcm-token 3}}
|
||||
:last-updated 1
|
||||
:system-tags #{:a :b}}
|
||||
expected-contact {:id "pk"
|
||||
|
@ -21,12 +15,7 @@
|
|||
:name "name"
|
||||
:photoPath "photo-path"
|
||||
:tributeToTalk "[\"~#'\",\"tribute-to-talk\"]"
|
||||
:deviceInfo [{:installationId "1"
|
||||
:timestamp 1
|
||||
:fcmToken "1"}
|
||||
{:installationId "2"
|
||||
:timestamp 2
|
||||
:fcmToken 3}]
|
||||
|
||||
:lastUpdated 1
|
||||
:systemTags #{":a" ":b"}}]
|
||||
(testing "->rpc"
|
||||
|
@ -40,29 +29,15 @@
|
|||
:address "address"
|
||||
:name "name"
|
||||
:photoPath "photo-path"
|
||||
:tributeToTalk "[\"~#'\",\"tribute-to-talk\"]"
|
||||
|
||||
:deviceInfo [{:installationId "1"
|
||||
:timestamp 1
|
||||
:fcmToken "1"}
|
||||
{:installationId "2"
|
||||
:timestamp 2
|
||||
:fcmToken 3}]
|
||||
:lastUpdated 1
|
||||
:tributeToTalk "[\"~#'\",\"tribute-to-talk\"]" :lastUpdated 1
|
||||
:systemTags [":a" ":b"]}
|
||||
expected-contact {:public-key "pk"
|
||||
:address "address"
|
||||
:name "name"
|
||||
:photo-path "photo-path"
|
||||
:tribute-to-talk "tribute-to-talk"
|
||||
:device-info {"1" {:id "1"
|
||||
:timestamp 1
|
||||
:fcm-token "1"}
|
||||
"2" {:id "2"
|
||||
:timestamp 2
|
||||
:fcm-token 3}}
|
||||
|
||||
:last-updated 1
|
||||
:system-tags #{:a :b}}]
|
||||
(testing "<-rpc"
|
||||
(is (= expected-contact (c/<-rpc contact))))))
|
||||
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
1
|
||||
{:name "name"
|
||||
:profile-image "image"
|
||||
:address "address"
|
||||
:device-info [{:id "1"
|
||||
:fcm-token "token-1"}]
|
||||
:fcm-token "token"})
|
||||
:address "address"})
|
||||
contact (get-in actual [:db :contacts/contacts public-key])]
|
||||
(testing "it adds a new contact"
|
||||
(is (= {:public-key public-key
|
||||
|
@ -28,10 +25,6 @@
|
|||
:name "name"
|
||||
:last-updated 1000
|
||||
:system-tags #{:contact/request-received}
|
||||
:device-info {"1" {:id "1"
|
||||
:timestamp 1
|
||||
:fcm-token "token-1"}}
|
||||
:fcm-token "token"
|
||||
:address "address"}
|
||||
contact)))))
|
||||
(testing "the contact is already in contacts"
|
||||
|
@ -42,42 +35,21 @@
|
|||
:photo-path "old-image"
|
||||
:name "old-name"
|
||||
:last-updated 0
|
||||
:device-info {"1" {:id "1"
|
||||
:timestamp 0
|
||||
:fcm-token "token-1"}
|
||||
"2" {:id "2"
|
||||
:timestamp 0
|
||||
:fcm-token "token-2"}}
|
||||
:system-tags #{:contact/added}
|
||||
:fcm-token "old-token"
|
||||
:address "old-address"}}}}
|
||||
public-key
|
||||
1
|
||||
{:name "new-name"
|
||||
:profile-image "new-image"
|
||||
:device-info [{:id "2"
|
||||
:fcm-token "token-2"}
|
||||
{:id "3"
|
||||
:fcm-token "token-3"}]
|
||||
:address "new-address"
|
||||
:fcm-token "new-token"})
|
||||
:address "new-address"})
|
||||
contact (get-in actual [:db :contacts/contacts public-key])]
|
||||
(testing "it updates the contact and adds contact/request-received to system tags"
|
||||
(is (= {:public-key public-key
|
||||
:photo-path "new-image"
|
||||
:name "new-name"
|
||||
:last-updated 1000
|
||||
:device-info {"1" {:id "1"
|
||||
:fcm-token "token-1"
|
||||
:timestamp 0}
|
||||
"2" {:id "2"
|
||||
:fcm-token "token-2"
|
||||
:timestamp 1}
|
||||
"3" {:id "3"
|
||||
:fcm-token "token-3"
|
||||
:timestamp 1}}
|
||||
|
||||
:system-tags #{:contact/added :contact/request-received}
|
||||
:fcm-token "new-token"
|
||||
:address "new-address"}
|
||||
contact)))))
|
||||
(testing "timestamp is equal to last-updated"
|
||||
|
@ -88,14 +60,12 @@
|
|||
:name "old-name"
|
||||
:last-updated 1000
|
||||
:system-tags #{:contact/added}
|
||||
:fcm-token "old-token"
|
||||
:address "old-address"}}}}
|
||||
public-key
|
||||
1
|
||||
{:name "new-name"
|
||||
:profile-image "new-image"
|
||||
:address "new-address"
|
||||
:fcm-token "new-token"})
|
||||
:address "new-address"})
|
||||
contact (get-in actual [:db :contacts/contacts public-key])]
|
||||
(testing "it does nothing"
|
||||
(is (nil? actual)))))
|
||||
|
@ -107,14 +77,12 @@
|
|||
:name "old-name"
|
||||
:last-updated 1000
|
||||
:system-tags #{:contact/added :contact/request-received}
|
||||
:fcm-token "old-token"
|
||||
:address "old-address"}}}}
|
||||
public-key
|
||||
0
|
||||
{:name "new-name"
|
||||
:profile-image "new-image"
|
||||
:address "new-address"
|
||||
:fcm-token "new-token"})
|
||||
:address "new-address"})
|
||||
contact (get-in actual [:db :contacts/contacts public-key])]
|
||||
(testing "it does nothing"
|
||||
(is (nil? actual))))))
|
||||
|
@ -123,8 +91,7 @@
|
|||
{:db {:contacts/contacts
|
||||
{public-key {:public-key public-key
|
||||
:photo-path "old-image"
|
||||
:device-info {"1" {:id "1"
|
||||
:fcm-token "token-1"}}
|
||||
|
||||
:name "old-name"
|
||||
:last-updated 0
|
||||
:system-tags #{:contact/added}}}}}
|
||||
|
@ -137,8 +104,7 @@
|
|||
(is (= {:public-key public-key
|
||||
:photo-path "new-image"
|
||||
:name "new-name"
|
||||
:device-info {"1" {:id "1"
|
||||
:fcm-token "token-1"}}
|
||||
|
||||
:last-updated 1000
|
||||
:system-tags #{:contact/added :contact/request-received}
|
||||
:address address} contact)))))
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
(ns status-im.test.notifications.core
|
||||
(:require [cljs.test :refer-macros [deftest is testing]]
|
||||
[status-im.notifications.core :as notifications]))
|
||||
|
||||
(deftest test-handle-push-notification-open
|
||||
(testing "user's signing in having opened PN while signed out"
|
||||
(is (= {:db {:multiaccount {:public-key "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}
|
||||
:push-notifications/stored {}}
|
||||
:dispatch [:navigate-to-chat "0x045db1fdb16c4721ddf32e892c5156d9c7a7445482b84ccd41131eb7970f9d623629d86763c5c2a542ae372815125c27eb73535d583d3285bdbfa16ba37f42e2de" {:navigation-reset? true}]}
|
||||
(notifications/handle-push-notification-open {:db {:push-notifications/stored {}
|
||||
:multiaccount {:public-key "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}}}
|
||||
[:push-notification-opened {:from "0x045db1fdb16c4721ddf32e892c5156d9c7a7445482b84ccd41131eb7970f9d623629d86763c5c2a542ae372815125c27eb73535d583d3285bdbfa16ba37f42e2de"
|
||||
:to "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"
|
||||
:stored? true}]))))
|
||||
(testing "user's signed in"
|
||||
(is (= {:db {:multiaccount {:public-key "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}
|
||||
:push-notifications/stored {}}
|
||||
:dispatch [:navigate-to-chat "0x045db1fdb16c4721ddf32e892c5156d9c7a7445482b84ccd41131eb7970f9d623629d86763c5c2a542ae372815125c27eb73535d583d3285bdbfa16ba37f42e2de"]}
|
||||
(notifications/handle-push-notification-open {:db {:push-notifications/stored {}
|
||||
:multiaccount {:public-key "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}}}
|
||||
[:push-notification-opened {:from "0x045db1fdb16c4721ddf32e892c5156d9c7a7445482b84ccd41131eb7970f9d623629d86763c5c2a542ae372815125c27eb73535d583d3285bdbfa16ba37f42e2de"
|
||||
:to "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}]))))
|
||||
(testing "user's signed in into another multiaccount"
|
||||
(is (= {}
|
||||
(notifications/handle-push-notification-open {:db {:multiaccount {:public-key "0x04bc8bf4a91ab726bd98f2c54b3036caacaeea527867945ab839e9ad4e62696856d7f7fa485f68304de357e38a1553eac5592706a16fcf71fd821bbd6c796f9ab3"}}}
|
||||
[:push-notification-opened {:from "0x045db1fdb16c4721ddf32e892c5156d9c7a7445482b84ccd41131eb7970f9d623629d86763c5c2a542ae372815125c27eb73535d583d3285bdbfa16ba37f42e2de"
|
||||
:to "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}]))))
|
||||
(testing "user's not signed in"
|
||||
(is (= {:db {:multiaccounts/multiaccounts {"bd36cd64e2621b054a3b7464ff1b3c4c304880e7" {:address "bd36cd64e2621b054a3b7464ff1b3c4c304880e7"
|
||||
:photo-path "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAADAFBMVEX"
|
||||
:name "Bob"
|
||||
:public-key "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}}
|
||||
:multiaccount {:public-key nil}
|
||||
:push-notifications/stored {"0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"
|
||||
"0x045db1fdb16c4721ddf32e892c5156d9c7a7445482b84ccd41131eb7970f9d623629d86763c5c2a542ae372815125c27eb73535d583d3285bdbfa16ba37f42e2de"}}
|
||||
:dispatch [:ui/open-login "bd36cd64e2621b054a3b7464ff1b3c4c304880e7" "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAADAFBMVEX" "Bob"]}
|
||||
(notifications/handle-push-notification-open {:db {:multiaccounts/multiaccounts {"bd36cd64e2621b054a3b7464ff1b3c4c304880e7" {:address "bd36cd64e2621b054a3b7464ff1b3c4c304880e7"
|
||||
:photo-path "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAADAFBMVEX"
|
||||
:name "Bob"
|
||||
:public-key "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}}
|
||||
:multiaccount {:public-key nil}
|
||||
:push-notifications/stored {}}}
|
||||
[:push-notification-opened {:from "0x045db1fdb16c4721ddf32e892c5156d9c7a7445482b84ccd41131eb7970f9d623629d86763c5c2a542ae372815125c27eb73535d583d3285bdbfa16ba37f42e2de"
|
||||
:to "0x04d2e59a7501a7bc5bc8bf973a0ab95d06225e2b0f53d5f6be719d857c579bdc1b809bfbe0e8393343f9a5b63a9a90a1a58329c6d1c286d6929f01aaa5472ca9c2"}])))))
|
|
@ -21,7 +21,7 @@
|
|||
expected {:system-tags #{:contact/added}
|
||||
:this-should-be-kept true
|
||||
:last-updated 2
|
||||
:device-info nil
|
||||
|
||||
:name "name-v2"
|
||||
:photo-path "photo-v2"}]
|
||||
(is (= expected (pairing/merge-contact contact-1 contact-2)))))
|
||||
|
@ -35,7 +35,7 @@
|
|||
:photo-path "photo-v2"}
|
||||
expected {:system-tags #{:contact/added}
|
||||
:last-updated 2
|
||||
:device-info nil
|
||||
|
||||
:name "name-v2"
|
||||
:photo-path "photo-v2"}]
|
||||
(is (= expected (pairing/merge-contact contact-1 contact-2)))))
|
||||
|
@ -47,7 +47,7 @@
|
|||
:photo-path "photo-v2"}
|
||||
expected {:system-tags #{:contact/added}
|
||||
:last-updated 2
|
||||
:device-info nil
|
||||
|
||||
:name "name-v2"
|
||||
:photo-path "photo-v2"}]
|
||||
(is (= expected (pairing/merge-contact contact-1 contact-2)))))
|
||||
|
@ -62,7 +62,7 @@
|
|||
:photo-path "photo-v2"}
|
||||
expected {:system-tags #{}
|
||||
:last-updated 2
|
||||
:device-info nil
|
||||
|
||||
:name "name-v2"
|
||||
:photo-path "photo-v2"}]
|
||||
(is (= expected (pairing/merge-contact contact-1 contact-2)))))
|
||||
|
@ -77,7 +77,7 @@
|
|||
:photo-path "photo-v2"}
|
||||
expected {:system-tags #{:contact/added}
|
||||
:last-updated 2
|
||||
:device-info nil
|
||||
|
||||
:name "name-v2"
|
||||
:photo-path "photo-v2"}]
|
||||
(is (= expected (pairing/merge-contact contact-1 contact-2)))))
|
||||
|
@ -89,42 +89,7 @@
|
|||
:photo-path "photo-v2"}
|
||||
expected {:system-tags #{}
|
||||
:last-updated 2
|
||||
:device-info nil
|
||||
:name "name-v2"
|
||||
:photo-path "photo-v2"}]
|
||||
(is (= expected (pairing/merge-contact contact-1 contact-2)))))
|
||||
(testing "device-info"
|
||||
(let [contact-1 {:system-tags #{:contact/added}
|
||||
:last-updated 1
|
||||
:name "name-v1"
|
||||
:device-info {"1" {:timestamp 1
|
||||
:fcm-token "token-1"
|
||||
:id "1"}
|
||||
"2" {:timestamp 1
|
||||
:fcm-token "token-2"
|
||||
:id "2"}}
|
||||
:photo-path "photo-v1"}
|
||||
contact-2 {:system-tags #{:contact/added}
|
||||
:last-updated 2
|
||||
:name "name-v2"
|
||||
:device-info {"2" {:timestamp 2
|
||||
:fcm-token "token-2"
|
||||
:id "2"}
|
||||
"3" {:timestamp 2
|
||||
:fcm-token "token-3"
|
||||
:id "3"}}
|
||||
:photo-path "photo-v2"}
|
||||
expected {:system-tags #{:contact/added}
|
||||
:last-updated 2
|
||||
:device-info {"1" {:timestamp 1
|
||||
:fcm-token "token-1"
|
||||
:id "1"}
|
||||
"2" {:timestamp 2
|
||||
:fcm-token "token-2"
|
||||
:id "2"}
|
||||
"3" {:timestamp 2
|
||||
:fcm-token "token-3"
|
||||
:id "3"}}
|
||||
|
||||
:name "name-v2"
|
||||
:photo-path "photo-v2"}]
|
||||
(is (= expected (pairing/merge-contact contact-1 contact-2))))))
|
||||
|
@ -179,12 +144,12 @@
|
|||
"contact-2" old-contact-2
|
||||
"contact-4" contact-4
|
||||
"contact-5" remote-contact-5}}
|
||||
expected {"contact-1" (assoc new-contact-1 :device-info nil)
|
||||
"contact-2" (assoc new-contact-2 :device-info nil)
|
||||
expected {"contact-1" new-contact-1
|
||||
"contact-2" new-contact-2
|
||||
"contact-3" contact-3
|
||||
"contact-4" (assoc contact-4
|
||||
:photo-path "generated")
|
||||
"contact-5" (assoc local-contact-5 :device-info nil)}]
|
||||
"contact-5" local-contact-5}]
|
||||
(testing "not coming from us"
|
||||
(is (not (:db (pairing/handle-sync-installation cofx sync-message "not-us")))))
|
||||
(testing "coming from us"
|
||||
|
@ -226,7 +191,6 @@
|
|||
"2" {:has-bundle? false
|
||||
:installation-id "2"}}}}
|
||||
pair-message {:device-type "ios"
|
||||
:fcm-token "fcm-token"
|
||||
:name "name"
|
||||
:installation-id "1"}]
|
||||
(testing "not coming from us"
|
||||
|
@ -234,7 +198,6 @@
|
|||
(testing "coming from us"
|
||||
(is (= [["1"
|
||||
{:name "name"
|
||||
:fcmToken "fcm-token"
|
||||
:deviceType "ios"}]]
|
||||
(:pairing/set-installation-metadata
|
||||
(pairing/handle-pair-installation cofx pair-message 1 "us")))))))
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
[status-im.test.chat.models]
|
||||
[status-im.test.chat.views.photos]
|
||||
[status-im.test.transport.filters.core]
|
||||
[status-im.test.contacts.device-info]
|
||||
[status-im.test.data-store.chats]
|
||||
[status-im.test.data-store.messages]
|
||||
[status-im.test.data-store.contacts]
|
||||
|
@ -92,7 +91,6 @@
|
|||
'status-im.test.chat.views.photos
|
||||
'status-im.test.transport.filters.core
|
||||
'status-im.test.contacts.db
|
||||
'status-im.test.contacts.device-info
|
||||
'status-im.test.data-store.chats
|
||||
'status-im.test.data-store.messages
|
||||
'status-im.test.data-store.contacts
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
:tags #{}
|
||||
:address "2f88d65f3cb52605a54a833ae118fb1363acccd2"
|
||||
:name "Darkviolet Lightgreen Halcyon"
|
||||
:fcm-token "cwigXoAk9R4:APA91bFZOy8vsCj9I9t6PYZXropyYEqAhKaVD2GxrURwvxe_Ay3zLrtJxeirp69se_5EOjS5i4T9xQnoPWrFTLfU9U7AUBdjxZtq5cnlP005bOY05p-psxGsQThMKQMeP5DJC9uxN0Ei"
|
||||
:photo-path "data:image/png;base64iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAADAFBMVEX///+M2KwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdPOdBAAABAHRSTlP//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmfXxgAABnNJREFUeNoBaAaX+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5UBARL8TK8AAAAASUVORK5CYII="
|
||||
:system-tags #{:contact/added}
|
||||
:last-online 0
|
||||
|
@ -13,7 +12,6 @@
|
|||
{:last-updated 1547271764000
|
||||
:address "b267ff8336ac10b3a1986c04a70ff91fb03d0b78"
|
||||
:name "rv"
|
||||
:fcm-token "dpVPtMBLuv8:APA91bEU4YuSz9yrc-vsiSl-IjdLSR5UpHm7yffaFlWQs_fvsTiK18ZcdYUbzA8iUoNuMVRNF_ngU7JdQInwNpXdGtNv_qcAFt0jhXHqf7dWY-kGJUBw9Ma8G_2fa40JLJchGVrzUIen"
|
||||
:photo-path "data:image/png;base64iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAADAFBMVEX////VjNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwYzy6AAABAHRSTlP//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmfXxgAABnNJREFUeNoBaAaX+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAAAAAAEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEAAAAAAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQAAAAABAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAAAAAAEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6IYA4bRtf+EAAAAASUVORK5CYII="
|
||||
:system-tags #{:contact/added}
|
||||
:last-online 0
|
||||
|
|
|
@ -84,13 +84,3 @@
|
|||
(testing "http://get.status.im/blah"
|
||||
(testing "it returns false"
|
||||
(is (not (links/deep-link? "http://get.status.im/blah"))))))
|
||||
|
||||
(deftest process-stored-event
|
||||
(testing "the url is in the database"
|
||||
(testing "it returns the event"
|
||||
(= "some-url"
|
||||
(links/process-stored-event {:db {:universal-links/url "some-url"}}))))
|
||||
(testing "the url is not in the database"
|
||||
(testing "it returns nil"
|
||||
(= nil
|
||||
(links/process-stored-event {:db {}})))))
|
||||
|
|
Loading…
Reference in New Issue