diff --git a/android/app/build.gradle b/android/app/build.gradle
index 042200848..7955c597b 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,5 +1,6 @@
apply plugin: "com.android.application"
apply plugin: "com.facebook.react"
+apply plugin: "com.google.gms.google-services"
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
/**
@@ -115,21 +116,28 @@ android {
}
dependencies {
-// If your app supports Android versions before Ice Cream Sandwich (API level 14)
- implementation 'com.facebook.fresco:animated-base-support:1.3.0'
+ // If your app supports Android versions before Ice Cream Sandwich (API level 14)
+ implementation 'com.facebook.fresco:animated-base-support:1.3.0'
- // For animated GIF support
- implementation 'com.facebook.fresco:animated-gif:2.5.0'
+ // For animated GIF support
+ implementation 'com.facebook.fresco:animated-gif:2.5.0'
- // For WebP support, including animated WebP
- implementation 'com.facebook.fresco:animated-webp:2.5.0'
- implementation 'com.facebook.fresco:webpsupport:2.5.0'
+ // For WebP support, including animated WebP
+ implementation 'com.facebook.fresco:animated-webp:2.5.0'
+ implementation 'com.facebook.fresco:webpsupport:2.5.0'
- // Support new Splash Screen API
- implementation "androidx.core:core-splashscreen:1.0.0"
+ // Support new Splash Screen API
+ implementation "androidx.core:core-splashscreen:1.0.0"
- // Fix duplicate Kotlin JDK 7 & JDK 8
- implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0')
+ // Add OneSignal push notification
+ implementation 'com.onesignal:OneSignal:[5.0.0, 5.99.99]'
+
+ // Add Firebase config
+ implementation platform('com.google.firebase:firebase-bom:32.3.1')
+
+
+ // Fix duplicate Kotlin JDK 7 & JDK 8
+ implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0')
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
diff --git a/android/app/google-services.json b/android/app/google-services.json
new file mode 100644
index 000000000..43f1cd99f
--- /dev/null
+++ b/android/app/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "569870677705",
+ "project_id": "subwallet-app",
+ "storage_bucket": "subwallet-app.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:569870677705:android:cbc031f789e9677e38ff18",
+ "android_client_info": {
+ "package_name": "app.subwallet.mobile"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBePKienltD3ss-ifbPEuoHOQA-OSigkVY"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/android/build.gradle b/android/build.gradle
index 3356faf6d..6374bdff5 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -19,5 +19,6 @@ buildscript {
dependencies {
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
+ classpath 'com.google.gms:google-services:4.3.15'
}
}
diff --git a/ios/OneSignalNotificationServiceExtension/Info.plist b/ios/OneSignalNotificationServiceExtension/Info.plist
new file mode 100644
index 000000000..7d7e9e5d9
--- /dev/null
+++ b/ios/OneSignalNotificationServiceExtension/Info.plist
@@ -0,0 +1,13 @@
+
+
+
+
+ NSExtension
+
+ NSExtensionPointIdentifier
+ com.apple.usernotifications.service
+ NSExtensionPrincipalClass
+ NotificationService
+
+
+
diff --git a/ios/OneSignalNotificationServiceExtension/NotificationService.h b/ios/OneSignalNotificationServiceExtension/NotificationService.h
new file mode 100644
index 000000000..c11ebb8f4
--- /dev/null
+++ b/ios/OneSignalNotificationServiceExtension/NotificationService.h
@@ -0,0 +1,12 @@
+//
+// NotificationService.h
+// OneSignalNotificationServiceExtension
+//
+// Created by Thức Nguyễn Duy on 29/09/2023.
+//
+
+#import
+
+@interface NotificationService : UNNotificationServiceExtension
+
+@end
diff --git a/ios/OneSignalNotificationServiceExtension/NotificationService.m b/ios/OneSignalNotificationServiceExtension/NotificationService.m
new file mode 100644
index 000000000..e24d645c4
--- /dev/null
+++ b/ios/OneSignalNotificationServiceExtension/NotificationService.m
@@ -0,0 +1,40 @@
+#import
+
+#import "NotificationService.h"
+
+@interface NotificationService ()
+
+@property (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver);
+@property (nonatomic, strong) UNNotificationRequest *receivedRequest;
+@property (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;
+
+@end
+
+@implementation NotificationService
+
+- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
+ self.receivedRequest = request;
+ self.contentHandler = contentHandler;
+ self.bestAttemptContent = [request.content mutableCopy];
+
+ /* DEBUGGING: Uncomment the 2 lines below and comment out the one above to ensure this extension is executing
+ Note, this extension only runs when mutable-content is set
+ Setting an attachment or action buttons automatically adds this */
+ // NSLog(@"Running NotificationServiceExtension");
+ // self.bestAttemptContent.body = [@"[Modified] " stringByAppendingString:self.bestAttemptContent.body];
+
+ [OneSignalExtension didReceiveNotificationExtensionRequest:self.receivedRequest
+ withMutableNotificationContent:self.bestAttemptContent
+ withContentHandler:self.contentHandler];
+}
+
+- (void)serviceExtensionTimeWillExpire {
+ // Called just before the extension will be terminated by the system.
+ // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
+
+ [OneSignalExtension serviceExtensionTimeWillExpireRequest:self.receivedRequest withMutableNotificationContent:self.bestAttemptContent];
+
+ self.contentHandler(self.bestAttemptContent);
+}
+
+@end
diff --git a/ios/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements b/ios/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements
new file mode 100644
index 000000000..effa1fe77
--- /dev/null
+++ b/ios/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements
@@ -0,0 +1,10 @@
+
+
+
+
+ com.apple.security.application-groups
+
+ group.app.subwallet.mobile.onesignal
+
+
+
diff --git a/ios/Podfile b/ios/Podfile
index 26e0d2894..84572f84e 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -92,3 +92,6 @@ target 'SubWalletMobile' do
end
end
+target 'OneSignalNotificationServiceExtension' do
+ pod 'OneSignalXCFramework', '>= 5.0.0', '< 6.0'
+end
\ No newline at end of file
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 6f63bcb6b..cb270a9d6 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -7,7 +7,7 @@ PODS:
- dr-pogodin-react-native-fs (2.21.0-alpha.3):
- RCT-Folly (= 2021.07.22.00)
- React-Core
- - dr-pogodin-react-native-static-server (0.8.3):
+ - dr-pogodin-react-native-static-server (0.8.4):
- RCT-Folly (= 2021.07.22.00)
- React-Core
- FBLazyVector (0.72.5)
@@ -97,6 +97,47 @@ PODS:
- MMKV (1.3.1):
- MMKVCore (~> 1.3.1)
- MMKVCore (1.3.1)
+ - OneSignalXCFramework (5.0.2):
+ - OneSignalXCFramework/OneSignalComplete (= 5.0.2)
+ - OneSignalXCFramework/OneSignal (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalExtension
+ - OneSignalXCFramework/OneSignalNotifications
+ - OneSignalXCFramework/OneSignalOSCore
+ - OneSignalXCFramework/OneSignalOutcomes
+ - OneSignalXCFramework/OneSignalUser
+ - OneSignalXCFramework/OneSignalComplete (5.0.2):
+ - OneSignalXCFramework/OneSignal
+ - OneSignalXCFramework/OneSignalInAppMessages
+ - OneSignalXCFramework/OneSignalLocation
+ - OneSignalXCFramework/OneSignalCore (5.0.2)
+ - OneSignalXCFramework/OneSignalExtension (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalOutcomes
+ - OneSignalXCFramework/OneSignalInAppMessages (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalNotifications
+ - OneSignalXCFramework/OneSignalOSCore
+ - OneSignalXCFramework/OneSignalOutcomes
+ - OneSignalXCFramework/OneSignalUser
+ - OneSignalXCFramework/OneSignalLocation (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalNotifications
+ - OneSignalXCFramework/OneSignalOSCore
+ - OneSignalXCFramework/OneSignalUser
+ - OneSignalXCFramework/OneSignalNotifications (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalExtension
+ - OneSignalXCFramework/OneSignalOutcomes
+ - OneSignalXCFramework/OneSignalOSCore (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalOutcomes (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalUser (5.0.2):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalNotifications
+ - OneSignalXCFramework/OneSignalOSCore
+ - OneSignalXCFramework/OneSignalOutcomes
- OpenSSL-Universal (1.1.1100)
- RCT-Folly (2021.07.22.00):
- boost
@@ -406,7 +447,7 @@ PODS:
- React-Core
- react-native-camera/RN (4.2.1):
- React-Core
- - react-native-cameraroll (5.9.0):
+ - react-native-cameraroll (5.10.0):
- React-Core
- react-native-config (1.5.1):
- react-native-config/App (= 1.5.1)
@@ -421,16 +462,15 @@ PODS:
- React-Core
- react-native-netinfo (9.4.1):
- React-Core
+ - react-native-onesignal (5.0.1):
+ - OneSignalXCFramework (= 5.0.2)
+ - React (< 1.0.0, >= 0.13.0)
- react-native-pager-view (6.2.1):
- React-Core
- react-native-safe-area-context (4.7.2):
- React-Core
- - react-native-segmented-control (2.2.2):
- - React-Core
- react-native-sensitive-info (6.0.0-alpha.9):
- React-Core
- - react-native-slider (4.4.3):
- - React-Core
- react-native-splash-screen (3.3.0):
- React-Core
- react-native-version-number (0.3.6):
@@ -564,8 +604,6 @@ PODS:
- React-Core
- RNCMaskedView (0.2.9):
- React-Core
- - RNCPicker (2.5.1):
- - React-Core
- RNDeviceInfo (10.11.0):
- React-Core
- RNFastImage (8.6.3):
@@ -576,7 +614,7 @@ PODS:
- React-Core
- RNInAppBrowser (3.7.0):
- React-Core
- - RNKeychain (8.1.2):
+ - RNLocalize (3.0.2):
- React-Core
- RNPermissions (3.9.2):
- React-Core
@@ -664,6 +702,7 @@ DEPENDENCIES:
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
- libevent (~> 2.1.12)
+ - OneSignalXCFramework (< 6.0, >= 5.0.0)
- OpenSSL-Universal (= 1.1.1100)
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
@@ -689,11 +728,10 @@ DEPENDENCIES:
- react-native-image-picker (from `../node_modules/react-native-image-picker`)
- react-native-mmkv (from `../node_modules/react-native-mmkv`)
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
+ - react-native-onesignal (from `../node_modules/react-native-onesignal`)
- react-native-pager-view (from `../node_modules/react-native-pager-view`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- - "react-native-segmented-control (from `../node_modules/@react-native-community/segmented-control`)"
- react-native-sensitive-info (from `../node_modules/react-native-sensitive-info`)
- - "react-native-slider (from `../node_modules/@react-native-community/slider`)"
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
- react-native-version-number (from `../node_modules/react-native-version-number`)
- react-native-video (from `../node_modules/react-native-video`)
@@ -721,12 +759,11 @@ DEPENDENCIES:
- "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
- "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)"
- "RNCMaskedView (from `../node_modules/@react-native-masked-view/masked-view`)"
- - "RNCPicker (from `../node_modules/@react-native-picker/picker`)"
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
- RNFastImage (from `../node_modules/react-native-fast-image`)
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNInAppBrowser (from `../node_modules/react-native-inappbrowser-reborn`)
- - RNKeychain (from `../node_modules/react-native-keychain`)
+ - RNLocalize (from `../node_modules/react-native-localize`)
- RNPermissions (from `../node_modules/react-native-permissions`)
- RNQrGenerator (from `../node_modules/rn-qr-generator`)
- RNReanimated (from `../node_modules/react-native-reanimated`)
@@ -751,6 +788,7 @@ SPEC REPOS:
- libwebp
- MMKV
- MMKVCore
+ - OneSignalXCFramework
- OpenSSL-Universal
- SDWebImage
- SDWebImageWebPCoder
@@ -822,16 +860,14 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-mmkv"
react-native-netinfo:
:path: "../node_modules/@react-native-community/netinfo"
+ react-native-onesignal:
+ :path: "../node_modules/react-native-onesignal"
react-native-pager-view:
:path: "../node_modules/react-native-pager-view"
react-native-safe-area-context:
:path: "../node_modules/react-native-safe-area-context"
- react-native-segmented-control:
- :path: "../node_modules/@react-native-community/segmented-control"
react-native-sensitive-info:
:path: "../node_modules/react-native-sensitive-info"
- react-native-slider:
- :path: "../node_modules/@react-native-community/slider"
react-native-splash-screen:
:path: "../node_modules/react-native-splash-screen"
react-native-version-number:
@@ -886,8 +922,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-clipboard/clipboard"
RNCMaskedView:
:path: "../node_modules/@react-native-masked-view/masked-view"
- RNCPicker:
- :path: "../node_modules/@react-native-picker/picker"
RNDeviceInfo:
:path: "../node_modules/react-native-device-info"
RNFastImage:
@@ -896,8 +930,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-gesture-handler"
RNInAppBrowser:
:path: "../node_modules/react-native-inappbrowser-reborn"
- RNKeychain:
- :path: "../node_modules/react-native-keychain"
+ RNLocalize:
+ :path: "../node_modules/react-native-localize"
RNPermissions:
:path: "../node_modules/react-native-permissions"
RNQrGenerator:
@@ -919,7 +953,7 @@ SPEC CHECKSUMS:
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
dr-pogodin-react-native-fs: 6dd213e0cefdbd2ac1f2ad3f69f33260e8be627a
- dr-pogodin-react-native-static-server: 7a6d1bdf696cb383bfbb35509730bf546ca5370c
+ dr-pogodin-react-native-static-server: ffb1cc99a59c4af4aa850c8359df6f13a654e971
FBLazyVector: 71803c074f6325f10b5ec891c443b6bbabef0ca7
FBReactNativeSpec: 448e08a759d29a96e15725ae532445bf4343567c
Flipper: 6edb735e6c3e332975d1b17956bcc584eccf5818
@@ -937,6 +971,7 @@ SPEC CHECKSUMS:
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
MMKV: 5a07930c70c70b86cd87761a42c8f3836fb681d7
MMKVCore: e50135dbd33235b6ab390635991bab437ab873c0
+ OneSignalXCFramework: d47a350b15e106a5dc310e3f97867e28dad6589e
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
RCTRequired: df81ab637d35fac9e6eb94611cfd20f0feb05455
@@ -954,17 +989,16 @@ SPEC CHECKSUMS:
React-jsinspector: aef73cbd43b70675f572214d10fa438c89bf11ba
React-logger: 2e4aee3e11b3ec4fa6cfd8004610bbb3b8d6cca4
react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f
- react-native-cameraroll: fad943a324a4d893c249cabe6d0608c807e0e58f
+ react-native-cameraroll: 4701ae7c3dbcd3f5e9e150ca17f250a276154b35
react-native-config: 86038147314e2e6d10ea9972022aa171e6b1d4d8
react-native-document-picker: 69ca2094d8780cfc1e7e613894d15290fdc54bba
react-native-image-picker: 3269f75c251cdcd61ab51b911dd30d6fff8c6169
react-native-mmkv: 9ae7ca3977e8ef48dbf7f066974eb844c20b5fd7
react-native-netinfo: fefd4e98d75cbdd6e85fc530f7111a8afdf2b0c5
+ react-native-onesignal: 2f88c5f8d353ab553f699e760c7995a511aec5f4
react-native-pager-view: d211379f61895b6349bd7e571b44a26d005c2975
react-native-safe-area-context: 7aa8e6d9d0f3100a820efb1a98af68aa747f9284
- react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097
react-native-sensitive-info: d44e909d065f9c0e15734245e5dd6a24b82e3dcd
- react-native-slider: 1cdd6ba29675df21f30544253bf7351d3c2d68c4
react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457
react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f
react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253
@@ -992,12 +1026,11 @@ SPEC CHECKSUMS:
RNCAsyncStorage: c913ede1fa163a71cea118ed4670bbaaa4b511bb
RNCClipboard: d77213bfa269013bf4b857b7a9ca37ee062d8ef1
RNCMaskedView: 949696f25ec596bfc697fc88e6f95cf0c79669b6
- RNCPicker: 529d564911e93598cc399b56cc0769ce3675f8c8
RNDeviceInfo: bf8a32acbcb875f568217285d1793b0e8588c974
RNFastImage: 5c9c9fed9c076e521b3f509fe79e790418a544e8
RNGestureHandler: 38aa38413896620338948fbb5c90579a7b1c3fde
RNInAppBrowser: e36d6935517101ccba0e875bac8ad7b0cb655364
- RNKeychain: a65256b6ca6ba6976132cc4124b238a5b13b3d9c
+ RNLocalize: dbea38dcb344bf80ff18a1757b1becf11f70cae4
RNPermissions: ce332587a7465d6c883c65c619da9caee0c76606
RNQrGenerator: 90461ba3ca88c1d38ef73da50fade35d9648215d
RNReanimated: ab2e96c6d5591c3dfbb38a464f54c8d17fb34a87
@@ -1011,6 +1044,6 @@ SPEC CHECKSUMS:
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb
-PODFILE CHECKSUM: d2e75413a9d4d28b9ab6ee8ae7baea6ba4324a25
+PODFILE CHECKSUM: e0282247de8b37556c70b3e8fcf742b4034ede72
-COCOAPODS: 1.12.1
+COCOAPODS: 1.13.0
diff --git a/ios/SubWalletMobile.xcodeproj/project.pbxproj b/ios/SubWalletMobile.xcodeproj/project.pbxproj
index 6c85a34e2..c855e7aa7 100644
--- a/ios/SubWalletMobile.xcodeproj/project.pbxproj
+++ b/ios/SubWalletMobile.xcodeproj/project.pbxproj
@@ -15,6 +15,9 @@
3577831F29CEA0080036830D /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 3577831E29CEA0080036830D /* fonts */; };
7699B88040F8A987B510C191 /* libPods-SubWalletMobile-SubWalletMobileTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-SubWalletMobile-SubWalletMobileTests.a */; };
81AB9BB82411601600AC10FF /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* SplashScreen.storyboard */; };
+ 99247C542AC6DE7100EF9E22 /* NotificationService.m in Sources */ = {isa = PBXBuildFile; fileRef = 99247C532AC6DE7100EF9E22 /* NotificationService.m */; };
+ 99247C582AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 99247C502AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ B1F990D19A9034C0A7FB0358 /* libPods-OneSignalNotificationServiceExtension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72BEE558F65D0CD1394F16DD /* libPods-OneSignalNotificationServiceExtension.a */; };
F1554EF9286D4F5B00301F08 /* Images-2.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F1554EF8286D4F5B00301F08 /* Images-2.xcassets */; };
F1554EFC286D590F00301F08 /* Images-2.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F1554EF8286D4F5B00301F08 /* Images-2.xcassets */; };
F16BB9D9288A5C7B00F9E935 /* Web.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F16BB9D8288A5C7B00F9E935 /* Web.bundle */; };
@@ -29,8 +32,29 @@
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
remoteInfo = SubWalletMobile;
};
+ 99247C562AC6DE7100EF9E22 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 99247C4F2AC6DE7100EF9E22;
+ remoteInfo = OneSignalNotificationServiceExtension;
+ };
/* End PBXContainerItemProxy section */
+/* Begin PBXCopyFilesBuildPhase section */
+ 99247C592AC6DE7100EF9E22 /* Embed Foundation Extensions */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 13;
+ files = (
+ 99247C582AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension.appex in Embed Foundation Extensions */,
+ );
+ name = "Embed Foundation Extensions";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
/* Begin PBXFileReference section */
00E356EE1AD99517003FC87E /* SubWalletMobileTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SubWalletMobileTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
@@ -45,12 +69,20 @@
355FCA162A72335100B34579 /* RCTMinimizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTMinimizer.h; path = SubWalletMobile/NativeModules/RCTMinimizer/RCTMinimizer.h; sourceTree = ""; };
3577831E29CEA0080036830D /* fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = fonts; sourceTree = ""; };
3B4392A12AC88292D35C810B /* Pods-SubWalletMobile.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SubWalletMobile.debug.xcconfig"; path = "Target Support Files/Pods-SubWalletMobile/Pods-SubWalletMobile.debug.xcconfig"; sourceTree = ""; };
+ 3D1D4BC80276037D435FADE4 /* Pods-OneSignalNotificationServiceExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OneSignalNotificationServiceExtension.release.xcconfig"; path = "Target Support Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension.release.xcconfig"; sourceTree = ""; };
5709B34CF0A7D63546082F79 /* Pods-SubWalletMobile.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SubWalletMobile.release.xcconfig"; path = "Target Support Files/Pods-SubWalletMobile/Pods-SubWalletMobile.release.xcconfig"; sourceTree = ""; };
5B7EB9410499542E8C5724F5 /* Pods-SubWalletMobile-SubWalletMobileTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SubWalletMobile-SubWalletMobileTests.debug.xcconfig"; path = "Target Support Files/Pods-SubWalletMobile-SubWalletMobileTests/Pods-SubWalletMobile-SubWalletMobileTests.debug.xcconfig"; sourceTree = ""; };
5DCACB8F33CDC322A6C60F78 /* libPods-SubWalletMobile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SubWalletMobile.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 72BEE558F65D0CD1394F16DD /* libPods-OneSignalNotificationServiceExtension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-OneSignalNotificationServiceExtension.a"; sourceTree = BUILT_PRODUCTS_DIR; };
81AB9BB72411601600AC10FF /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = SubWalletMobile/SplashScreen.storyboard; sourceTree = ""; };
89C6BE57DB24E9ADA2F236DE /* Pods-SubWalletMobile-SubWalletMobileTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SubWalletMobile-SubWalletMobileTests.release.xcconfig"; path = "Target Support Files/Pods-SubWalletMobile-SubWalletMobileTests/Pods-SubWalletMobile-SubWalletMobileTests.release.xcconfig"; sourceTree = ""; };
+ 9180F8026E3F3132EC661654 /* Pods-OneSignalNotificationServiceExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OneSignalNotificationServiceExtension.debug.xcconfig"; path = "Target Support Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension.debug.xcconfig"; sourceTree = ""; };
990CC4AB2A33104500AB6D8B /* SubWalletMobile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = SubWalletMobile.entitlements; path = SubWalletMobile/SubWalletMobile.entitlements; sourceTree = ""; };
+ 99247C502AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = OneSignalNotificationServiceExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+ 99247C522AC6DE7100EF9E22 /* NotificationService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationService.h; sourceTree = ""; };
+ 99247C532AC6DE7100EF9E22 /* NotificationService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NotificationService.m; sourceTree = ""; };
+ 99247C552AC6DE7100EF9E22 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 99247C5D2AC6E0AF00EF9E22 /* OneSignalNotificationServiceExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OneSignalNotificationServiceExtension.entitlements; sourceTree = ""; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
F1554EF8286D4F5B00301F08 /* Images-2.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = "Images-2.xcassets"; path = "SubWalletMobile/Images-2.xcassets"; sourceTree = ""; };
F16BB9D8288A5C7B00F9E935 /* Web.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Web.bundle; path = ../html/Web.bundle; sourceTree = ""; };
@@ -74,6 +106,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 99247C4D2AC6DE7100EF9E22 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B1F990D19A9034C0A7FB0358 /* libPods-OneSignalNotificationServiceExtension.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -115,6 +155,7 @@
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
5DCACB8F33CDC322A6C60F78 /* libPods-SubWalletMobile.a */,
19F6CBCC0A4E27FBF8BF4A61 /* libPods-SubWalletMobile-SubWalletMobileTests.a */,
+ 72BEE558F65D0CD1394F16DD /* libPods-OneSignalNotificationServiceExtension.a */,
);
name = Frameworks;
sourceTree = "";
@@ -152,6 +193,7 @@
13B07FAE1A68108700A75B9A /* SubWalletMobile */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
00E356EF1AD99517003FC87E /* SubWalletMobileTests */,
+ 99247C512AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
BBD78D7AC51CEA395F1C20DB /* Pods */,
@@ -167,10 +209,22 @@
children = (
13B07F961A680F5B00A75B9A /* SubWalletMobile.app */,
00E356EE1AD99517003FC87E /* SubWalletMobileTests.xctest */,
+ 99247C502AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension.appex */,
);
name = Products;
sourceTree = "";
};
+ 99247C512AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension */ = {
+ isa = PBXGroup;
+ children = (
+ 99247C5D2AC6E0AF00EF9E22 /* OneSignalNotificationServiceExtension.entitlements */,
+ 99247C522AC6DE7100EF9E22 /* NotificationService.h */,
+ 99247C532AC6DE7100EF9E22 /* NotificationService.m */,
+ 99247C552AC6DE7100EF9E22 /* Info.plist */,
+ );
+ path = OneSignalNotificationServiceExtension;
+ sourceTree = "";
+ };
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
@@ -178,6 +232,8 @@
5709B34CF0A7D63546082F79 /* Pods-SubWalletMobile.release.xcconfig */,
5B7EB9410499542E8C5724F5 /* Pods-SubWalletMobile-SubWalletMobileTests.debug.xcconfig */,
89C6BE57DB24E9ADA2F236DE /* Pods-SubWalletMobile-SubWalletMobileTests.release.xcconfig */,
+ 9180F8026E3F3132EC661654 /* Pods-OneSignalNotificationServiceExtension.debug.xcconfig */,
+ 3D1D4BC80276037D435FADE4 /* Pods-OneSignalNotificationServiceExtension.release.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -225,16 +281,36 @@
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
+ 99247C592AC6DE7100EF9E22 /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
+ 99247C572AC6DE7100EF9E22 /* PBXTargetDependency */,
);
name = SubWalletMobile;
productName = SubWalletMobile;
productReference = 13B07F961A680F5B00A75B9A /* SubWalletMobile.app */;
productType = "com.apple.product-type.application";
};
+ 99247C4F2AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 99247C5C2AC6DE7100EF9E22 /* Build configuration list for PBXNativeTarget "OneSignalNotificationServiceExtension" */;
+ buildPhases = (
+ CEA11466352C54E1B9BFFB21 /* [CP] Check Pods Manifest.lock */,
+ 99247C4C2AC6DE7100EF9E22 /* Sources */,
+ 99247C4D2AC6DE7100EF9E22 /* Frameworks */,
+ 99247C4E2AC6DE7100EF9E22 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = OneSignalNotificationServiceExtension;
+ productName = OneSignalNotificationServiceExtension;
+ productReference = 99247C502AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension.appex */;
+ productType = "com.apple.product-type.app-extension";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -250,6 +326,9 @@
13B07F861A680F5B00A75B9A = {
LastSwiftMigration = 1120;
};
+ 99247C4F2AC6DE7100EF9E22 = {
+ CreatedOnToolsVersion = 14.3.1;
+ };
};
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "SubWalletMobile" */;
@@ -267,6 +346,7 @@
targets = (
13B07F861A680F5B00A75B9A /* SubWalletMobile */,
00E356ED1AD99517003FC87E /* SubWalletMobileTests */,
+ 99247C4F2AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension */,
);
};
/* End PBXProject section */
@@ -292,6 +372,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 99247C4E2AC6DE7100EF9E22 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@@ -389,6 +476,28 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SubWalletMobile-SubWalletMobileTests/Pods-SubWalletMobile-SubWalletMobileTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
+ CEA11466352C54E1B9BFFB21 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-OneSignalNotificationServiceExtension-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -463,6 +572,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 99247C4C2AC6DE7100EF9E22 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 99247C542AC6DE7100EF9E22 /* NotificationService.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -471,6 +588,11 @@
target = 13B07F861A680F5B00A75B9A /* SubWalletMobile */;
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
};
+ 99247C572AC6DE7100EF9E22 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 99247C4F2AC6DE7100EF9E22 /* OneSignalNotificationServiceExtension */;
+ targetProxy = 99247C562AC6DE7100EF9E22 /* PBXContainerItemProxy */;
+ };
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
@@ -744,6 +866,84 @@
};
name = Release;
};
+ 99247C5A2AC6DE7100EF9E22 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 9180F8026E3F3132EC661654 /* Pods-OneSignalNotificationServiceExtension.debug.xcconfig */;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements;
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEVELOPMENT_TEAM = ZUZ7T3GQMT;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = OneSignalNotificationServiceExtension;
+ INFOPLIST_KEY_NSHumanReadableCopyright = "";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@executable_path/../../Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = app.subwallet.mobile.OneSignalNotificationServiceExtension;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SKIP_INSTALL = YES;
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 99247C5B2AC6DE7100EF9E22 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 3D1D4BC80276037D435FADE4 /* Pods-OneSignalNotificationServiceExtension.release.xcconfig */;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements;
+ CODE_SIGN_STYLE = Automatic;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEVELOPMENT_TEAM = ZUZ7T3GQMT;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = OneSignalNotificationServiceExtension;
+ INFOPLIST_KEY_NSHumanReadableCopyright = "";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@executable_path/../../Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = app.subwallet.mobile.OneSignalNotificationServiceExtension;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SKIP_INSTALL = YES;
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -774,6 +974,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 99247C5C2AC6DE7100EF9E22 /* Build configuration list for PBXNativeTarget "OneSignalNotificationServiceExtension" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 99247C5A2AC6DE7100EF9E22 /* Debug */,
+ 99247C5B2AC6DE7100EF9E22 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
/* End XCConfigurationList section */
};
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
diff --git a/ios/SubWalletMobile/Info.plist b/ios/SubWalletMobile/Info.plist
index e52712207..d6351d9b5 100644
--- a/ios/SubWalletMobile/Info.plist
+++ b/ios/SubWalletMobile/Info.plist
@@ -70,18 +70,18 @@
+ NSAppleMusicUsageDescription
+ Access Apple Music from library
NSCameraUsageDescription
Camera is used to capture QR code
- NSMicrophoneUsageDescription
- Microphone is used to record audio
NSFaceIDUsageDescription
Enabling Face ID allows you quick and secure access to your account.
NSLocationWhenInUseUsageDescription
Access location from library
+ NSMicrophoneUsageDescription
+ Microphone is used to record audio
NSPhotoLibraryUsageDescription
Access photos from library
- NSAppleMusicUsageDescription
- Access Apple Music from library
UIAppFonts
fonts/PlusJakartaSans-Light.ttf
@@ -94,6 +94,10 @@
fonts/FontAwesome5_Regular.ttf
fonts/FontAwesome5_Solid.ttf
+ UIBackgroundModes
+
+ remote-notification
+
UIFileSharingEnabled
UILaunchStoryboardName
diff --git a/ios/SubWalletMobile/SubWalletMobile.entitlements b/ios/SubWalletMobile/SubWalletMobile.entitlements
index 8de6a49d2..d2c985b4c 100644
--- a/ios/SubWalletMobile/SubWalletMobile.entitlements
+++ b/ios/SubWalletMobile/SubWalletMobile.entitlements
@@ -2,9 +2,15 @@
+ aps-environment
+ development
com.apple.developer.associated-domains
applinks:mobile.subwallet.app
+ com.apple.security.application-groups
+
+ group.app.subwallet.mobile.onesignal
+
diff --git a/package.json b/package.json
index 93a08fab3..d7dc12dc7 100644
--- a/package.json
+++ b/package.json
@@ -26,8 +26,8 @@
},
"dependencies": {
"@coinbase/cbpay-js": "^1.7.0",
- "@dr.pogodin/react-native-fs": ">=2.21.0-alpha.1",
- "@dr.pogodin/react-native-static-server": "0.8.3",
+ "@dr.pogodin/react-native-fs": ">=2.21.0-alpha.3",
+ "@dr.pogodin/react-native-static-server": "0.8.4",
"@fortawesome/fontawesome-svg-core": "^6.2.1",
"@fortawesome/free-brands-svg-icons": "^6.2.1",
"@fortawesome/free-regular-svg-icons": "^6.2.1",
@@ -45,10 +45,7 @@
"@react-native-camera-roll/camera-roll": "^5.2.4",
"@react-native-clipboard/clipboard": "^1.11.1",
"@react-native-community/netinfo": "^9.3.7",
- "@react-native-community/segmented-control": "^2.2.2",
- "@react-native-community/slider": "^4.4.2",
"@react-native-masked-view/masked-view": "^0.2.9",
- "@react-native-picker/picker": "^2.4.8",
"@react-navigation/bottom-tabs": "^6.5.3",
"@react-navigation/drawer": "^6.6.2",
"@react-navigation/material-top-tabs": "^6.6.3",
@@ -60,7 +57,6 @@
"@subwallet/keyring": "^0.1.1",
"@subwallet/react-ui": "^5.1.2-b72",
"@subwallet/ui-keyring": "^0.1.1",
- "boring-avatars": "^1.7.0",
"deprecated-react-native-prop-types": "^4.0.0",
"eslint-plugin-ft-flow": "^2.0.3",
"eventemitter3": "^5.0.0",
@@ -77,12 +73,10 @@
"react-hook-form": "^7.44.3",
"react-i18next": "^12.1.4",
"react-native": "^0.72.4",
- "react-native-animatable": "^1.3.3",
"react-native-bcrypt": "^2.4.0",
"react-native-boring-avatars": "^1.0.1",
"react-native-camera": "^4.2.1",
"react-native-config": "^1.5.1",
- "react-native-confirmation-code-field": "^7.3.1",
"react-native-device-info": "^10.3.0",
"react-native-document-picker": "^8.1.3",
"react-native-dynamic-tab-view": "^1.0.7-0",
@@ -92,15 +86,15 @@
"react-native-gesture-handler": "^2.9.0",
"react-native-image-picker": "^5.0.1",
"react-native-inappbrowser-reborn": "^3.7.0",
- "react-native-keychain": "^8.1.2",
"react-native-linear-gradient": "^2.6.2",
"react-native-localization": "^2.3.1",
+ "react-native-localize": "^3.0.2",
"react-native-mmkv": "^2.10.1",
"react-native-modal": "^13.0.1",
"react-native-navigation-bar-color": "^2.0.2",
+ "react-native-onesignal": "^5.0.1",
"react-native-pager-view": "^6.2.0",
"react-native-permissions": "^3.8.0",
- "react-native-picker-select": "^8.0.4",
"react-native-progress": "^5.0.0",
"react-native-qrcode-scanner": "^1.5.5",
"react-native-qrcode-styled": "^0.2.1",
@@ -139,14 +133,14 @@
"@polkadot/types": "^9.9.4",
"@subwallet/chain-list": "^0.2.16-beta.4",
"@subwallet/extension-base": "^1.1.15-0",
+ "@react-native/eslint-config": "^0.72.2",
+ "@react-native/metro-config": "^0.72.11",
"@tsconfig/react-native": "^3.0.0",
"@types/jest": "^29.2.3",
"@types/react": "^18.0.25",
"@types/react-native": "^0.70.6",
"@types/react-native-bcrypt": "^2.4.2",
"@types/react-native-vector-icons": "^6.4.14",
- "@react-native/eslint-config": "^0.72.2",
- "@react-native/metro-config": "^0.72.11",
"@types/react-native-video": "^5.0.14",
"@types/react-redux": "^7.1.24",
"@types/react-test-renderer": "^18.0.0",
diff --git a/src/AppNew.tsx b/src/AppNew.tsx
index c0bfd9b0c..73be5f7bc 100644
--- a/src/AppNew.tsx
+++ b/src/AppNew.tsx
@@ -30,6 +30,8 @@ import { SafeAreaProvider } from 'react-native-safe-area-context';
import { LockTimeout } from 'stores/types';
import { keyringLock } from './messaging';
import { updateAutoLockTime } from 'stores/MobileSettings';
+import { OneSignal } from 'react-native-onesignal';
+import { createNotificationConfig } from 'utils/pushNotification';
const layerScreenStyle: StyleProp = {
top: 0,
@@ -51,6 +53,7 @@ const gestureRootStyle: StyleProp = {
height: '100%',
zIndex: 9999,
};
+OneSignal.initialize('b743f89b-7c0d-4ab9-a09c-4aa0ee1eedb7');
const autoLockParams: {
hasMasterPassword: boolean;
@@ -110,7 +113,8 @@ export const AppNew = () => {
StatusBar.setBarStyle(isDarkMode ? 'light-content' : 'dark-content');
const { isUseBiometric, timeAutoLock, isPreventLock } = useSelector((state: RootState) => state.mobileSettings);
- const { hasMasterPassword, isLocked } = useSelector((state: RootState) => state.accountState);
+ const language = useSelector((state: RootState) => state.settings.language);
+ const { hasMasterPassword, isLocked, accounts } = useSelector((state: RootState) => state.accountState);
const { lock, unlockApp } = useAppLock();
const dispatch = useDispatch();
const isCryptoReady = useCryptoReady();
@@ -147,16 +151,21 @@ export const AppNew = () => {
}
}, [dispatch, timeAutoLock]);
+ useEffect(() => {
+ OneSignal.User.addTag('is_have_account', accounts.length + '');
+ }, [accounts]);
useEffect(() => {
setTimeout(() => {
SplashScreen.hide();
}, 100);
+ createNotificationConfig(language);
// if (buildNumber === 1) {
// Set default value on the first time install
// const buildNumberInt = parseInt(getBuildNumber(), 10);
// dispatch(setBuildNumber(buildNumberInt));
// }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const isAppReady = isRequiredStoresReady && isCryptoReady && isI18nReady;
diff --git a/src/screens/Settings/Languages.tsx b/src/screens/Settings/Languages.tsx
index da743ac97..f0ba5bbc1 100644
--- a/src/screens/Settings/Languages.tsx
+++ b/src/screens/Settings/Languages.tsx
@@ -12,6 +12,7 @@ import { EmptyList } from 'components/EmptyList';
import { MagnifyingGlass } from 'phosphor-react-native';
import { saveLanguage } from 'messaging/index';
import { LanguageType } from '@subwallet/extension-base/background/KoniTypes';
+import { OneSignal } from 'react-native-onesignal';
const footerAreaStyle: StyleProp = {
marginTop: 8,
@@ -40,6 +41,7 @@ export const Languages = () => {
routes: [{ name: 'Home' }, { name: 'GeneralSettings' }],
});
saveLanguage(selectedLang);
+ OneSignal.User.setLanguage(selectedLang);
}
};
diff --git a/src/utils/pushNotification.ts b/src/utils/pushNotification.ts
new file mode 100644
index 000000000..d0aa6505e
--- /dev/null
+++ b/src/utils/pushNotification.ts
@@ -0,0 +1,10 @@
+import { getTimeZone } from 'react-native-localize';
+import { OneSignal } from 'react-native-onesignal';
+
+const timezone = getTimeZone();
+
+export function createNotificationConfig(language: string) {
+ OneSignal.Notifications.requestPermission(true);
+ OneSignal.User.setLanguage(language);
+ OneSignal.User.addTag('timezone', timezone);
+}
diff --git a/yarn.lock b/yarn.lock
index ec0ba5b1f..bb0307ebc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1376,17 +1376,17 @@
resolved "https://registry.yarnpkg.com/@dr.pogodin/js-utils/-/js-utils-0.0.6.tgz#60f076dd90b87caa7812ad5aecd98bf960a7ad51"
integrity sha512-6DyIS8s+V2d2GKqhW/TOxPugcskKPsKiJt9lFLBEddw012WKGicchPizar9osq+p7ECnNmYMsDUPAC3T+ZkZKw==
-"@dr.pogodin/react-native-fs@>=2.21.0-alpha.1":
+"@dr.pogodin/react-native-fs@>=2.21.0-alpha.3":
version "2.21.0-alpha.3"
resolved "https://registry.yarnpkg.com/@dr.pogodin/react-native-fs/-/react-native-fs-2.21.0-alpha.3.tgz#948be09264e57861cf1d5e6b7dd8a15ef3fe5a44"
integrity sha512-blM6rbLJVK2KmY4CgcOiP755YFWZGFcp6O332oItUALr4dlfMvF4hWactr6whs4REC89Yrbz86YtvQ6f4HQcvA==
dependencies:
buffer "^6.0.3"
-"@dr.pogodin/react-native-static-server@0.8.3":
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/@dr.pogodin/react-native-static-server/-/react-native-static-server-0.8.3.tgz#67af02deff1c8332a9aaf26f5a29483deb88c322"
- integrity sha512-yNtdJh1TbjZ/3E8bLOQbKsbNhEMWA6DeF/gNXOLkFto05ZI4jzCBOR9Ubo7M5K/xaqbosLiOgVPeI17DwYnfrw==
+"@dr.pogodin/react-native-static-server@0.8.4":
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/@dr.pogodin/react-native-static-server/-/react-native-static-server-0.8.4.tgz#62626ce9ec88a3c0ecae28572e6665a305e6fcb4"
+ integrity sha512-utWakYrzsxJiegV0jyA/voQANtohqaAO3IJZ3qd1OY1mAQj2ihvUVr2ak+3bVVbZm4z7KBaKYTtdWWp+yZL5/A==
dependencies:
"@dr.pogodin/js-utils" "^0.0.6"
@@ -3481,9 +3481,9 @@
merge-options "^3.0.4"
"@react-native-camera-roll/camera-roll@^5.2.4":
- version "5.9.0"
- resolved "https://registry.yarnpkg.com/@react-native-camera-roll/camera-roll/-/camera-roll-5.9.0.tgz#e638a7693bcebd41199ee32ae644dafab12ffa16"
- integrity sha512-6dRB0oklozLCbklaLkINoxncLnyG7TfUPiTlqSy2+dvwGLNQv2fYGL+hZPPk6ANoNYnxuE82NbMFgf1v6L/9TA==
+ version "5.10.0"
+ resolved "https://registry.yarnpkg.com/@react-native-camera-roll/camera-roll/-/camera-roll-5.10.0.tgz#98cf5489be6805ac926b1c4d29ac956cf4df45dc"
+ integrity sha512-NZb/zU4S+k1Hx2Y3BdNufrfn8whNsiRjHNxeiGMak8OwDDJikqP5Ej7HXFv8sJSfTGfi1ddH0wdd541MHV/Nbw==
"@react-native-clipboard/clipboard@^1.11.1":
version "1.12.1"
@@ -3659,31 +3659,11 @@
resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-9.4.1.tgz#7b880758adca65fe47ee866cf7b00416b9dcc192"
integrity sha512-dAbY5mfw+6Kas/GJ6QX9AZyY+K+eq9ad4Su6utoph/nxyH3whp5cMSgRNgE2VhGQVRZ/OG0qq3IaD3+wzoqJXw==
-"@react-native-community/segmented-control@^2.2.2":
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/@react-native-community/segmented-control/-/segmented-control-2.2.2.tgz#4014256819ab8f40f6bc3a3929ff14a9d149cf04"
- integrity sha512-14+4HnGVrg3USqMzcHCPCqPmPmaEj0ogQH4pHRFXjoVvJokzidXBcYyXl5yrwFcKGW6zTXI6Fx9Qgt4ydtS6tw==
-
-"@react-native-community/slider@^4.4.2":
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/@react-native-community/slider/-/slider-4.4.3.tgz#9b9dc639b88f5bfda72bd72a9dff55cbf9f777ed"
- integrity sha512-WdjvGtqJfqcCiLwtbzie53Z/H6w6dIfRHhlW832D89ySAdE5DxLAsqRhDOG0eacuAxxEB+T9sGCkVMD0fa3aBg==
-
"@react-native-masked-view/masked-view@^0.2.9":
version "0.2.9"
resolved "https://registry.yarnpkg.com/@react-native-masked-view/masked-view/-/masked-view-0.2.9.tgz#723a7a076d56b8f5f3fda076eaa5b6b82988e854"
integrity sha512-Hs4vKBKj+15VxHZHFtMaFWSBxXoOE5Ea8saoigWhahp8Mepssm0ezU+2pTl7DK9z8Y9s5uOl/aPb4QmBZ3R3Zw==
-"@react-native-picker/picker@^1.8.3":
- version "1.16.8"
- resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-1.16.8.tgz#2126ca54d4a5a3e9ea5e3f39ad1e6643f8e4b3d4"
- integrity sha512-pacdQDX6V6EmjF+HoiIh6u++qx4mTK0WnhgUHRc01B+Qt5eoeUwseBqmqfTSXTx/aHDEd6PiIw7UGvKgFoqgFQ==
-
-"@react-native-picker/picker@^2.4.8":
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.5.1.tgz#dfa13d5b97bfbedf1f7e7c608181a82f1d58b351"
- integrity sha512-/sADUfQsosMRYtrqqL3ZYZSECRygj0fXtpRLqxJfwuMEoqfvfn40756R6B1alzusVvDRZFI0ari0iQid56hA/Q==
-
"@react-native/assets-registry@^0.72.0":
version "0.72.0"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d"
@@ -4001,9 +3981,9 @@
"@open-web3/orml-type-definitions" "1.1.4"
"@sora-substrate/type-definitions@^1.17.7":
- version "1.22.7"
- resolved "https://registry.yarnpkg.com/@sora-substrate/type-definitions/-/type-definitions-1.22.7.tgz#176bf56d372b9cd043c54cae1bae33dcd081a4d9"
- integrity sha512-mcobVa9YFBPCUWyZOKDbS/Xwhqn2F4oRpLDMC7T17UZ71CuOofWW7HoUeQPD6jaIVQdXcFjqZ9Y8OqJ6Sxu1cQ==
+ version "1.22.12"
+ resolved "https://registry.yarnpkg.com/@sora-substrate/type-definitions/-/type-definitions-1.22.12.tgz#d4256de48fb37b0c7067dbae7fd5ddd7a8d3006c"
+ integrity sha512-SKZ0W3N92wb5rlk0Cj2M6OwyaAEDmuVepTtnvme+Ng6R+FqOkAixjlLv8bPh1OC4dLLrd4hTPyFMyv28AUUeVQ==
dependencies:
"@open-web3/orml-type-definitions" "1.1.4"
@@ -4787,9 +4767,9 @@
form-data "^4.0.0"
"@types/node@*", "@types/node@>=13.7.0":
- version "20.7.1"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.1.tgz#06d732ead0bd5ad978ef0ea9cbdeb24dc8717514"
- integrity sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==
+ version "20.7.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.2.tgz#0bdc211f8c2438cfadad26dc8c040a874d478aed"
+ integrity sha512-RcdC3hOBOauLP+r/kRt27NrByYtDjsXyAuSbR87O6xpsvi763WI+5fbSIvYJrXnt9w4RuxhV6eAXfIs7aaf/FQ==
"@types/node@18.15.13":
version "18.15.13"
@@ -4802,9 +4782,9 @@
integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==
"@types/node@^16.11.26":
- version "16.18.54"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.54.tgz#4a63bdcea5b714f546aa27406a1c60621236a132"
- integrity sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==
+ version "16.18.55"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.55.tgz#3d9ac633ed401238c13ccaeed54297bd653412a3"
+ integrity sha512-Y1zz/LIuJek01+hlPNzzXQhmq/Z2BCP96j18MSXC0S0jSu/IG4FFxmBs7W4/lI2vPJ7foVfEB0hUVtnOjnCiTg==
"@types/pbkdf2@^3.0.0":
version "3.1.0"
@@ -5036,9 +5016,9 @@
"@types/yargs-parser" "*"
"@types/yargs@^17.0.8":
- version "17.0.25"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.25.tgz#3edd102803c97356fb4c805b2bbaf7dfc9ab6abc"
- integrity sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==
+ version "17.0.26"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.26.tgz#388e5002a8b284ad7b4599ba89920a6d74d8d79a"
+ integrity sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==
dependencies:
"@types/yargs-parser" "*"
@@ -6575,12 +6555,12 @@ browserify-unibabel@^3.0.0:
integrity sha512-j3MX0k2dC1/DEo9jSUyj7zpv5wLd1+klpFwYlM0E5mr7MX6LblQOWb+jkBEKV2iRszmhJuLHAtNuqranlGnpNQ==
browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9:
- version "4.22.0"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.0.tgz#6adc8116589ccea8a99d0df79c5de2436199abdb"
- integrity sha512-v+Jcv64L2LbfTC6OnRcaxtqJNJuQAVhZKSJfR/6hn7lhnChUXl4amwVviqN1k411BB+3rRoKMitELRn1CojeRA==
+ version "4.22.1"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619"
+ integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==
dependencies:
- caniuse-lite "^1.0.30001539"
- electron-to-chromium "^1.4.530"
+ caniuse-lite "^1.0.30001541"
+ electron-to-chromium "^1.4.535"
node-releases "^2.0.13"
update-browserslist-db "^1.0.13"
@@ -6780,7 +6760,7 @@ camelize@^1.0.0:
resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3"
integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
-caniuse-lite@^1.0.30001346, caniuse-lite@^1.0.30001539:
+caniuse-lite@^1.0.30001346, caniuse-lite@^1.0.30001541:
version "1.0.30001541"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001541.tgz#b1aef0fadd87fb72db4dcb55d220eae17b81cdb1"
integrity sha512-bLOsqxDgTqUBkzxbNlSBt8annkDpQB9NdzdTbO2ooJ+eC/IQcvDspDc058g84ejCelF7vHUx57KIOjEecOHXaw==
@@ -8093,10 +8073,10 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-electron-to-chromium@^1.4.530:
- version "1.4.532"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.532.tgz#44454731e26f2c8c14e88cca0d073f0761784f5e"
- integrity sha512-piIR0QFdIGKmOJTSNg5AwxZRNWQSXlRYycqDB9Srstx4lip8KpcmRxVP6zuFWExWziHYZpJ0acX7TxqX95KBpg==
+electron-to-chromium@^1.4.535:
+ version "1.4.537"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.537.tgz#aac4101db53066be1e49baedd000a26bc754adc9"
+ integrity sha512-W1+g9qs9hviII0HAwOdehGYkr+zt7KKdmCcJcjH0mYg6oL8+ioT3Skjmt7BLoAQqXhjf40AXd+HlR4oAWMlXjA==
electron@^23.1.2:
version "23.3.13"
@@ -9356,9 +9336,9 @@ flow-enums-runtime@^0.0.5:
integrity sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ==
flow-parser@0.*:
- version "0.217.0"
- resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.217.0.tgz#0e6bed214151fa3240dc9fd83ac8a9e050e523c5"
- integrity sha512-hEa5n0dta1RcaDwJDWbnyelw07PK7+Vx0f9kDht28JOt2hXgKdKGaT3wM45euWV2DxOXtzDSTaUgGSD/FPvC2Q==
+ version "0.217.2"
+ resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.217.2.tgz#3a4aade40ea55a863295120a0b0da8a960967ad6"
+ integrity sha512-O+nt/FLXa1hTwtW0O9h36iZjbL84G8e1uByx5dDXMC97AJEbZXwJ4ohfaE8BNWrYFyYX0NGfz1o8AtLQvaaD/Q==
flow-parser@^0.206.0:
version "0.206.0"
@@ -10419,7 +10399,7 @@ interpret@^3.1.1:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4"
integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==
-invariant@*, invariant@2.2.4, invariant@^2.2.4:
+invariant@*, invariant@2.2.4, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -13527,9 +13507,9 @@ postcss@^7.0.36:
source-map "^0.6.1"
postcss@^8.1.7, postcss@^8.4.23, postcss@^8.4.6:
- version "8.4.30"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.30.tgz#0e0648d551a606ef2192a26da4cabafcc09c1aa7"
- integrity sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==
+ version "8.4.31"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
+ integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
dependencies:
nanoid "^3.3.6"
picocolors "^1.0.0"
@@ -14369,7 +14349,7 @@ react-localization@^1.0.17:
dependencies:
localized-strings "^0.2.0"
-react-native-animatable@1.3.3, react-native-animatable@^1.3.3:
+react-native-animatable@1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/react-native-animatable/-/react-native-animatable-1.3.3.tgz#a13a4af8258e3bb14d0a9d839917e9bb9274ec8a"
integrity sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==
@@ -14400,11 +14380,6 @@ react-native-config@^1.5.1:
resolved "https://registry.yarnpkg.com/react-native-config/-/react-native-config-1.5.1.tgz#73c94f511493e9b7ff9350cdf351d203a1b05acc"
integrity sha512-g1xNgt1tV95FCX+iWz6YJonxXkQX0GdD3fB8xQtR1GUBEqweB9zMROW77gi2TygmYmUkBI7LU4pES+zcTyK4HA==
-react-native-confirmation-code-field@^7.3.1:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/react-native-confirmation-code-field/-/react-native-confirmation-code-field-7.3.1.tgz#e705ee5b73d7749cac29da287379fa8690904fe6"
- integrity sha512-5vI6BclB31e4vTYg0HmV/Vy9zI5MQZfHr1EN3kYzvaZq4GMIsyr6lrSmnQW1TtWR7Z8oURrhCpwo+JsWXxCoug==
-
react-native-device-info@^10.3.0:
version "10.11.0"
resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-10.11.0.tgz#2c9f378f1c3c5eb9aafa803d015b84325991a9aa"
@@ -14470,11 +14445,6 @@ react-native-inappbrowser-reborn@^3.7.0:
invariant "^2.2.4"
opencollective-postinstall "^2.0.3"
-react-native-keychain@^8.1.2:
- version "8.1.2"
- resolved "https://registry.yarnpkg.com/react-native-keychain/-/react-native-keychain-8.1.2.tgz#34291ae472878e5124d081211af5ede7d810e64f"
- integrity sha512-bhHEui+yMp3Us41NMoRGtnWEJiBE0g8tw5VFpq4mpmXAx6XJYahuM6K3WN5CsUeUl83hYysSL9oFZNKSTPSvYw==
-
react-native-linear-gradient@^2.6.2:
version "2.8.3"
resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.8.3.tgz#9a116649f86d74747304ee13db325e20b21e564f"
@@ -14487,6 +14457,11 @@ react-native-localization@^2.3.1:
dependencies:
react-localization "^1.0.17"
+react-native-localize@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/react-native-localize/-/react-native-localize-3.0.2.tgz#43fa75c0097dbdb24a54ff320b3c8ad732407365"
+ integrity sha512-/l/oE1LVNgIRRhLbhmfFMHiWV0xhUn0A0iz1ytLVRYywL7FTp8Rx2vkJS/q/RpExDvV7yLw2493XZBYIM1dnLQ==
+
react-native-mmkv@^2.10.1:
version "2.10.2"
resolved "https://registry.yarnpkg.com/react-native-mmkv/-/react-native-mmkv-2.10.2.tgz#73f06bb710388f67bade031e7b8e42a6d2358e40"
@@ -14505,6 +14480,13 @@ react-native-navigation-bar-color@^2.0.2:
resolved "https://registry.yarnpkg.com/react-native-navigation-bar-color/-/react-native-navigation-bar-color-2.0.2.tgz#2e14ca79a656d81d5b4b7433ae43966ef5206444"
integrity sha512-ZmpLWRocyme1au11e5ZuecMS/UCi57nlzgnioi03Q6ERMbeUOqqbWgNBaNB7SsCeqBV6fZPjo3+A64zEIpzw4w==
+react-native-onesignal@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/react-native-onesignal/-/react-native-onesignal-5.0.1.tgz#2297d3756074af8c8e664bc80dccd7d1c6143269"
+ integrity sha512-DB/r/r+nAa+HxLiGtYCx4PEpVhN391p517GEE+GG/hrAW+bV7BkwqPxjrYfircmrfhRTaYs59xgJ3Py0RJdkJQ==
+ dependencies:
+ invariant "^2.2.2"
+
react-native-pager-view@^6.2.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.2.1.tgz#985d21bbb7d7bc012f4c142dedbb98ce4bdea104"
@@ -14520,14 +14502,6 @@ react-native-permissions@^3.8.0:
resolved "https://registry.yarnpkg.com/react-native-permissions/-/react-native-permissions-3.9.2.tgz#729ee7fe9ca437ee8e87f1ecec59acfe89bbb840"
integrity sha512-mBGoRDKi4twYH+UsPomPdi0dLpV6dGLmKzLpIgB5cLK/dzfM8Sr02Kch1xghVwT13ZkyCyd8DpcL4HgBJ4GQQg==
-react-native-picker-select@^8.0.4:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/react-native-picker-select/-/react-native-picker-select-8.1.0.tgz#667a5442f783f4bcfd3f65880c6926155fd2c39c"
- integrity sha512-iLsLv2OEWpXnQMDYJS6du5Cl1HTHy887n60Yp5OOiMny0TDB9w5CfxTUYWtpsvJJrUa/Yrv+1NMQiJy7IA4ETw==
- dependencies:
- "@react-native-picker/picker" "^1.8.3"
- lodash.isequal "^4.5.0"
-
react-native-progress@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/react-native-progress/-/react-native-progress-5.0.0.tgz#f5ac6ceaeee27f184c660b00f29419e82a9d0ab0"