diff --git a/__tests__/About.snapshot.tsx b/__tests__/About.snapshot.tsx index f33491b98..a0209eeb3 100644 --- a/__tests__/About.snapshot.tsx +++ b/__tests__/About.snapshot.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/AddressBook.AbDetail.snapshot.tsx b/__tests__/AddressBook.AbDetail.snapshot.tsx index a99b4e690..18968bc95 100644 --- a/__tests__/AddressBook.AbDetail.snapshot.tsx +++ b/__tests__/AddressBook.AbDetail.snapshot.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/AddressBook.snapshot.tsx b/__tests__/AddressBook.snapshot.tsx index 10608444b..b8ae0eb81 100644 --- a/__tests__/AddressBook.snapshot.tsx +++ b/__tests__/AddressBook.snapshot.tsx @@ -29,7 +29,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/App.snapshot.tsx b/__tests__/App.snapshot.tsx index 0faf321a5..fddf4625c 100644 --- a/__tests__/App.snapshot.tsx +++ b/__tests__/App.snapshot.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-tab-view', () => ({ TabBar: '', })); jest.mock('react-native-option-menu', () => ''); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Components.snapshot.tsx b/__tests__/Components.snapshot.tsx index 96a80e0ee..40c32c8b0 100644 --- a/__tests__/Components.snapshot.tsx +++ b/__tests__/Components.snapshot.tsx @@ -23,7 +23,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-navigation/native', () => ({ ...jest.requireActual('@react-navigation/native'), useTheme: () => (mockTheme), diff --git a/__tests__/Components.unit.tsx b/__tests__/Components.unit.tsx index d3f2e8242..455006d43 100644 --- a/__tests__/Components.unit.tsx +++ b/__tests__/Components.unit.tsx @@ -23,7 +23,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-navigation/native', () => ({ ...jest.requireActual('@react-navigation/native'), useTheme: () => (mockTheme), diff --git a/__tests__/Header.snapshot.tsx b/__tests__/Header.snapshot.tsx index 039212452..552278907 100644 --- a/__tests__/Header.snapshot.tsx +++ b/__tests__/Header.snapshot.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/History.ValueTransferDetail.unit.tsx b/__tests__/History.ValueTransferDetail.unit.tsx index ad5efadc7..ee3b9e5af 100644 --- a/__tests__/History.ValueTransferDetail.unit.tsx +++ b/__tests__/History.ValueTransferDetail.unit.tsx @@ -31,7 +31,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('moment', () => { // Here we are able to mock chain builder pattern const mMoment = { diff --git a/__tests__/History.snapshot.tsx b/__tests__/History.snapshot.tsx index 72c984ff1..beb26c09e 100644 --- a/__tests__/History.snapshot.tsx +++ b/__tests__/History.snapshot.tsx @@ -33,7 +33,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('moment', () => { // Here we are able to mock chain builder pattern const mMoment = { diff --git a/__tests__/ImportUfvk.snapshot.tsx b/__tests__/ImportUfvk.snapshot.tsx index 65adfd78a..2ed405813 100644 --- a/__tests__/ImportUfvk.snapshot.tsx +++ b/__tests__/ImportUfvk.snapshot.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Info.es.unit.tsx b/__tests__/Info.es.unit.tsx index cb5de6ed0..d8c61f986 100644 --- a/__tests__/Info.es.unit.tsx +++ b/__tests__/Info.es.unit.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Info.snapshot.tsx b/__tests__/Info.snapshot.tsx index 7566ac1b6..bfd17bc5b 100644 --- a/__tests__/Info.snapshot.tsx +++ b/__tests__/Info.snapshot.tsx @@ -31,7 +31,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Info.us.unit.tsx b/__tests__/Info.us.unit.tsx index dd3598ed0..bcd21cd9e 100644 --- a/__tests__/Info.us.unit.tsx +++ b/__tests__/Info.us.unit.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Insight.snapshot.tsx b/__tests__/Insight.snapshot.tsx index 2afd90325..6e21ef9b6 100644 --- a/__tests__/Insight.snapshot.tsx +++ b/__tests__/Insight.snapshot.tsx @@ -23,7 +23,7 @@ jest.mock('@fortawesome/react-native-fontawesome', () => ({ FontAwesomeIcon: '', })); jest.mock('react-native-svg-charts'); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/LoadedApp.snapshot.tsx b/__tests__/LoadedApp.snapshot.tsx index 41f115546..4cdebea3c 100644 --- a/__tests__/LoadedApp.snapshot.tsx +++ b/__tests__/LoadedApp.snapshot.tsx @@ -52,7 +52,7 @@ jest.mock('react-native-tab-view', () => ({ TabBar: '', })); jest.mock('react-native-option-menu', () => ''); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { return { addEventListener: jest.fn(), diff --git a/__tests__/LoadingApp.snapshot.tsx b/__tests__/LoadingApp.snapshot.tsx index 62a473404..97597e2ab 100644 --- a/__tests__/LoadingApp.snapshot.tsx +++ b/__tests__/LoadingApp.snapshot.tsx @@ -51,7 +51,7 @@ jest.mock('react-native-tab-view', () => ({ TabBar: '', })); jest.mock('react-native-option-menu', () => ''); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { return { addEventListener: jest.fn(), @@ -76,7 +76,7 @@ jest.mock('react-native', () => { return RN; }); -jest.mock('react-native-simple-biometrics', () => ({ +jest.mock('react-native-easy-biometrics', () => ({ requestBioAuth: jest.fn(() => Promise.resolve(true)), })); jest.mock('react-native-fs', () => ({ diff --git a/__tests__/Memo.snapshot.tsx b/__tests__/Memo.snapshot.tsx index 73ac60157..07debc685 100644 --- a/__tests__/Memo.snapshot.tsx +++ b/__tests__/Memo.snapshot.tsx @@ -28,7 +28,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Messages.snapshot.tsx b/__tests__/Messages.snapshot.tsx index b883f9659..8902eb761 100644 --- a/__tests__/Messages.snapshot.tsx +++ b/__tests__/Messages.snapshot.tsx @@ -33,7 +33,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('moment', () => { // Here we are able to mock chain builder pattern const mMoment = { diff --git a/__tests__/MessagesAddress.snapshot.tsx b/__tests__/MessagesAddress.snapshot.tsx index 63f0f0220..d77a3f813 100644 --- a/__tests__/MessagesAddress.snapshot.tsx +++ b/__tests__/MessagesAddress.snapshot.tsx @@ -33,7 +33,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('moment', () => { // Here we are able to mock chain builder pattern const mMoment = { diff --git a/__tests__/Pools.snapshot.tsx b/__tests__/Pools.snapshot.tsx index 0fa84b83f..d13cc6e9c 100644 --- a/__tests__/Pools.snapshot.tsx +++ b/__tests__/Pools.snapshot.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/PrivKey.snapshot.tsx b/__tests__/PrivKey.snapshot.tsx index 5608319e5..6c80240c5 100644 --- a/__tests__/PrivKey.snapshot.tsx +++ b/__tests__/PrivKey.snapshot.tsx @@ -30,7 +30,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Receive.snapshot.tsx b/__tests__/Receive.snapshot.tsx index ee9f279fd..189d76db4 100644 --- a/__tests__/Receive.snapshot.tsx +++ b/__tests__/Receive.snapshot.tsx @@ -36,7 +36,7 @@ jest.mock('react-native-tab-view', () => ({ TabBar: '', })); jest.mock('react-native-option-menu', () => ''); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Rescan.snapshot.tsx b/__tests__/Rescan.snapshot.tsx index e7dc37da0..d4d78dd03 100644 --- a/__tests__/Rescan.snapshot.tsx +++ b/__tests__/Rescan.snapshot.tsx @@ -31,7 +31,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Seed.snapshot.tsx b/__tests__/Seed.snapshot.tsx index e3ab5aa27..b711a0ff9 100644 --- a/__tests__/Seed.snapshot.tsx +++ b/__tests__/Seed.snapshot.tsx @@ -37,7 +37,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Send.snapshot.tsx b/__tests__/Send.snapshot.tsx index 81d8ae0bf..2101e1d8a 100644 --- a/__tests__/Send.snapshot.tsx +++ b/__tests__/Send.snapshot.tsx @@ -35,7 +35,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('react-native', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/Settings.snapshot.tsx b/__tests__/Settings.snapshot.tsx index c77fbf527..e466854df 100644 --- a/__tests__/Settings.snapshot.tsx +++ b/__tests__/Settings.snapshot.tsx @@ -33,7 +33,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/ShowUfvk.snapshot.tsx b/__tests__/ShowUfvk.snapshot.tsx index ce485d31f..614df915d 100644 --- a/__tests__/ShowUfvk.snapshot.tsx +++ b/__tests__/ShowUfvk.snapshot.tsx @@ -32,7 +32,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/SingleAddress.snapshot.tsx b/__tests__/SingleAddress.snapshot.tsx index 2ad44668a..6b25a2a58 100644 --- a/__tests__/SingleAddress.snapshot.tsx +++ b/__tests__/SingleAddress.snapshot.tsx @@ -19,7 +19,7 @@ jest.useFakeTimers(); jest.mock('@fortawesome/react-native-fontawesome', () => ({ FontAwesomeIcon: '', })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-clipboard/clipboard', () => ({ getString: jest.fn(() => Promise.resolve('mocked clipboard content')), setString: jest.fn(), diff --git a/__tests__/SyncReport.snapshot.tsx b/__tests__/SyncReport.snapshot.tsx index 6057a6a37..6cf350c9a 100644 --- a/__tests__/SyncReport.snapshot.tsx +++ b/__tests__/SyncReport.snapshot.tsx @@ -45,7 +45,7 @@ jest.mock('react-native-localize', () => ({ }; }, })); -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +jest.mock('react-native/src/private/animated/NativeAnimatedHelper'); jest.mock('@react-native-community/netinfo/src/index', () => ({ RNCNetInfo: () => { const RN = jest.requireActual('react-native'); diff --git a/__tests__/__snapshots__/LoadedApp.snapshot.tsx.snap b/__tests__/__snapshots__/LoadedApp.snapshot.tsx.snap index fb38a0aed..e08ec0a53 100644 --- a/__tests__/__snapshots__/LoadedApp.snapshot.tsx.snap +++ b/__tests__/__snapshots__/LoadedApp.snapshot.tsx.snap @@ -1,231 +1,313 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Component LoadedApp - test LoadedApp - snapshot 1`] = ` -
-
- + + + - - - text translated - - - + + + + + + + } + > + text translated - - text translated - - + - text translated - - - text translated - - + text translated + + - text translated - - + text translated + + - text translated - - + text translated + + - text translated - - + text translated + + - text translated - + testID="menu.walletseedufvk" + > + text translated + + + text translated + + + text translated + + + text translated + + - - - - + - Version : - - - text translated - - + Version : + + - text translatedtext translated - - -
-
- - - + > + text translated + + + text translatedtext translated + + -
-
+ + `; diff --git a/android/app/src/main/java/org/ZingoLabs/Zingo/MainApplication.kt b/android/app/src/main/java/org/ZingoLabs/Zingo/MainApplication.kt index 321081584..e42fc5e45 100644 --- a/android/app/src/main/java/org/ZingoLabs/Zingo/MainApplication.kt +++ b/android/app/src/main/java/org/ZingoLabs/Zingo/MainApplication.kt @@ -10,6 +10,7 @@ import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping import com.facebook.soloader.SoLoader import java.lang.ref.WeakReference @@ -38,6 +39,7 @@ class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() + SoLoader.init(this, OpenSourceMergedSoMapping) context = WeakReference(applicationContext) SoLoader.init(this, false) diff --git a/android/build.gradle b/android/build.gradle index f9b1889fc..c4c809380 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,9 +2,9 @@ buildscript { ext { - buildToolsVersion = "34.0.0" + buildToolsVersion = "35.0.0" minSdkVersion = 24 - compileSdkVersion = 34 + compileSdkVersion = 35 targetSdkVersion = 34 ndkVersion = "26.3.11579264" kotlinVersion = "1.9.25" diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 7677fa7c9..30538d8e6 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ #Fri Jan 24 19:05:10 MST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew index 8dfedc953..dc6bdceba 100755 --- a/android/gradlew +++ b/android/gradlew @@ -15,7 +15,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # - # SPDX-License-Identifier: Apache-2.0 # @@ -41,7 +40,8 @@ done SAVED="`pwd`" cd "`dirname \"$PRG\"`/" >/dev/null # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit cd "$SAVED" >/dev/null APP_NAME="Gradle" diff --git a/app/LoadedApp/LoadedApp.tsx b/app/LoadedApp/LoadedApp.tsx index 4c951d315..7ed11c0b4 100644 --- a/app/LoadedApp/LoadedApp.tsx +++ b/app/LoadedApp/LoadedApp.tsx @@ -18,7 +18,7 @@ import { BottomTabBarButtonProps, createBottomTabNavigator } from '@react-naviga import { FontAwesomeIcon } from '@fortawesome/react-native-fontawesome'; import { faDownload, faCog, faRefresh, faPaperPlane, faClockRotateLeft } from '@fortawesome/free-solid-svg-icons'; import { useTheme } from '@react-navigation/native'; -import ReanimatedDrawerLayout, { DrawerType } from 'react-native-gesture-handler/ReanimatedDrawerLayout'; +import DrawerLayout from 'react-native-gesture-handler/DrawerLayout'; import { I18n } from 'i18n-js'; import * as RNLocalize from 'react-native-localize'; import { cloneDeep, isEqual } from 'lodash'; @@ -436,8 +436,6 @@ type LoadedAppClassProps = { type LoadedAppClassState = AppStateLoaded & AppContextLoaded; const TabPressable: React.FC = ({ colors, ...props }) => { - console.log('colors', colors); - return ; }; @@ -1818,7 +1816,11 @@ export class LoadedAppClass extends Component; + return ( + + + + ); }; //console.log('render LoadedAppClass - 3'); @@ -1828,10 +1830,10 @@ export class LoadedAppClass extends Component - (this.drawerRef = ref)} renderNavigationView={() => menu} - drawerType={DrawerType.BACK} + drawerType={'slide'} drawerWidth={Dimensions.get('window').width * 0.7}> ({ tabBarIcon: ({ focused }) => fnTabBarIcon(route, focused), - tabBarIconStyle: { alignItems: 'center', justifyContent: 'center', alignSelf: 'center' }, - tabBarItemStyle: { - justifyContent: 'center', + tabBarIconStyle: { alignSelf: 'center', + marginBottom: 2, }, tabBarLabelPosition: 'below-icon', + tabBarLabelStyle: { + alignSelf: 'center', + fontSize: 14, + }, + tabBarItemStyle: { + height: 55, + }, tabBarActiveTintColor: colors.background, tabBarActiveBackgroundColor: colors.primaryDisabled, tabBarInactiveTintColor: colors.money, + tabBarInactiveBackgroundColor: colors.sideMenuBackground , tabBarStyle: { - borderRadius: 0, - borderTopColor: colors.primaryDisabled, borderTopWidth: 1, + height: 55, }, headerShown: false, tabBarButton: renderTabPressable(colors), @@ -2203,9 +2211,7 @@ export class LoadedAppClass extends Component @@ -2223,7 +2229,7 @@ export class LoadedAppClass extends Component )} - + ); } diff --git a/app/simpleBiometrics.ts b/app/simpleBiometrics.ts index ec03efeee..828315278 100644 --- a/app/simpleBiometrics.ts +++ b/app/simpleBiometrics.ts @@ -1,4 +1,4 @@ -import RNBiometrics from 'react-native-simple-biometrics'; +import RNBiometrics from 'react-native-easy-biometrics'; import { GlobalConst, TranslateType } from './AppState'; import ReactNativeBiometrics from 'react-native-biometrics'; diff --git a/ios/AppDelegate.swift b/ios/AppDelegate.swift index 5d8ae96e8..87417d813 100644 --- a/ios/AppDelegate.swift +++ b/ios/AppDelegate.swift @@ -9,41 +9,46 @@ import Foundation import UIKit import BackgroundTasks import Network +import React_RCTAppDelegate @UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { +class AppDelegate: RCTAppDelegate { private let bcgTaskId = "Zingo_Processing_Task_ID" private let bcgSchedulerTaskId = "Zingo_Processing_Scheduler_Task_ID" private var monitor: NWPathMonitor? private let workerQueue = DispatchQueue(label: "Monitor") private var isConnectedToWifi = false - var window: UIWindow? - private var bridge: RCTBridge! private var bgTask: BGProcessingTask? = nil private var timeStampStrStart: String? = nil - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - let jsCodeLocation: URL - - jsCodeLocation = RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index", fallbackExtension: nil)! - //jsCodeLocation = Bundle.main.url(forResource: "main", withExtension: "jsbundle")! - let rootView = RCTRootView(bundleURL: jsCodeLocation, moduleName: "Zingo", initialProperties: nil, launchOptions: launchOptions) - let rootViewController = UIViewController() - rootViewController.view = rootView - - self.window = UIWindow(frame: UIScreen.main.bounds) - self.window?.rootViewController = rootViewController - self.window?.makeKeyAndVisible() + override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + self.moduleName = "Zingo" + + // You can add your custom initial props in the dictionary below. + // They will be passed down to the ViewController used by React Native. + self.initialProps = [:] if #available(iOS 13.0, *) { NSLog("BGTask registerTasks") self.handleBackgroundTask() } - return true + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + override func sourceURL(for bridge: RCTBridge) -> URL? { + self.bundleURL() + } + + override func bundleURL() -> URL? { + #if DEBUG + RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index") + #else + Bundle.main.url(forResource: "main", withExtension: "jsbundle") + #endif } - func applicationWillEnterForeground(_ application: UIApplication) { + override func applicationWillEnterForeground(_ application: UIApplication) { if #available(iOS 13.0, *) { // cancel existing sync process (if any). NSLog("BGTask foreground") @@ -58,7 +63,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } } - func applicationDidEnterBackground(_ application: UIApplication) { + override func applicationDidEnterBackground(_ application: UIApplication) { if #available(iOS 13.0, *) { // Cancel existing sync process (if any). NSLog("BGTask background") diff --git a/ios/Podfile b/ios/Podfile index 7202cd3ae..d34e30db2 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -34,7 +34,7 @@ target 'ZingoMobile' do :path => config[:reactNativePath], # Hermes is now enabled by default. Disable by setting this flag to false. :hermes_enabled => true, - :fabric_enabled => false, + :fabric_enabled => true, ) target 'ZingoMobileTests' do diff --git a/ios/ZingoMobile.xcodeproj/project.pbxproj b/ios/ZingoMobile.xcodeproj/project.pbxproj index a780346f5..f73481508 100644 --- a/ios/ZingoMobile.xcodeproj/project.pbxproj +++ b/ios/ZingoMobile.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 0E31B526D9F16A7915BA4132 /* libPods-ZingoMobile-ZingoMobileTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E0047AEABCFCDF34CBD1244C /* libPods-ZingoMobile-ZingoMobileTests.a */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 1F0338192C48782D00A3FC49 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0338182C48782D00A3FC49 /* Constants.swift */; }; 1F03381A2C49575900A3FC49 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0338182C48782D00A3FC49 /* Constants.swift */; }; @@ -27,7 +26,8 @@ 1FC1E2172BE443270064963B /* ZingoMobileTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC1E2162BE443270064963B /* ZingoMobileTest.swift */; }; 1FE8E9AC296B85FC004A256B /* BackgroundTasks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FE8E9AB296B85FC004A256B /* BackgroundTasks.framework */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; - 91F8F7B99D09D90E9135C387 /* libPods-ZingoMobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CD48E2F45D070FAA89673F8 /* libPods-ZingoMobile.a */; }; + C873B1FEBAAE6E65C194E99B /* libPods-ZingoMobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EF5E7E3E5FF9F07D11A29D /* libPods-ZingoMobile.a */; }; + F7222DD495B7DFB0FB0DA9A9 /* libPods-ZingoMobile-ZingoMobileTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5ED7B70526EA29D74D36D418 /* libPods-ZingoMobile-ZingoMobileTests.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -43,12 +43,9 @@ /* Begin PBXFileReference section */ 00E356EE1AD99517003FC87E /* ZingoMobileTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ZingoMobileTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 0D9896D9881BBFE26496585D /* Pods-ZingoMobile.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile.debug.xcconfig"; path = "Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile.debug.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Zingo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Zingo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ZingoMobile/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ZingoMobile/Info.plist; sourceTree = ""; }; - 153C8557BF3C046894F65328 /* Pods-ZingoMobile-ZingoMobileTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile-ZingoMobileTests.release.xcconfig"; path = "Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests.release.xcconfig"; sourceTree = ""; }; - 1752229EEB1E891A6654090B /* Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig"; path = "Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig"; sourceTree = ""; }; 1F0338182C48782D00A3FC49 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = ""; }; 1F0893FE2BA4C4380089FD88 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 1F5569252BBCB4D900F2CD6C /* RPCModule-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RPCModule-Bridging-Header.h"; sourceTree = ""; }; @@ -63,10 +60,13 @@ 1FA935B62BE474CD00117DF5 /* ZingoMobileTest-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ZingoMobileTest-Bridging-Header.h"; sourceTree = ""; }; 1FC1E2162BE443270064963B /* ZingoMobileTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZingoMobileTest.swift; sourceTree = ""; }; 1FE8E9AB296B85FC004A256B /* BackgroundTasks.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BackgroundTasks.framework; path = System/Library/Frameworks/BackgroundTasks.framework; sourceTree = SDKROOT; }; - 39C6D93FBB707E7A5F86EB0E /* Pods-ZingoMobile.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile.release.xcconfig"; path = "Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile.release.xcconfig"; sourceTree = ""; }; - 3CD48E2F45D070FAA89673F8 /* libPods-ZingoMobile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ZingoMobile.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 31EF5E7E3E5FF9F07D11A29D /* libPods-ZingoMobile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ZingoMobile.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3435E211DA309036D7174F92 /* Pods-ZingoMobile.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile.debug.xcconfig"; path = "Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile.debug.xcconfig"; sourceTree = ""; }; + 5ED7B70526EA29D74D36D418 /* libPods-ZingoMobile-ZingoMobileTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ZingoMobile-ZingoMobileTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6E25D43D47F9A295BF942342 /* Pods-ZingoMobile.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile.release.xcconfig"; path = "Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile.release.xcconfig"; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ZingoMobile/LaunchScreen.storyboard; sourceTree = ""; }; - E0047AEABCFCDF34CBD1244C /* libPods-ZingoMobile-ZingoMobileTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ZingoMobile-ZingoMobileTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 96273EAC6A4DF7833212B8AB /* Pods-ZingoMobile-ZingoMobileTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile-ZingoMobileTests.release.xcconfig"; path = "Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests.release.xcconfig"; sourceTree = ""; }; + A0BBF849B01C39917A109B05 /* Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig"; path = "Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -77,7 +77,7 @@ files = ( 1FA935B32BE457B100117DF5 /* SystemConfiguration.framework in Frameworks */, 1FA935B22BE4569D00117DF5 /* libuniffi_zingo.a in Frameworks */, - 0E31B526D9F16A7915BA4132 /* libPods-ZingoMobile-ZingoMobileTests.a in Frameworks */, + F7222DD495B7DFB0FB0DA9A9 /* libPods-ZingoMobile-ZingoMobileTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -88,7 +88,7 @@ 1FE8E9AC296B85FC004A256B /* BackgroundTasks.framework in Frameworks */, 1F7D321D2B71D44800D2879C /* SystemConfiguration.framework in Frameworks */, 1F8815602BD31176006490E1 /* libuniffi_zingo.a in Frameworks */, - 91F8F7B99D09D90E9135C387 /* libPods-ZingoMobile.a in Frameworks */, + C873B1FEBAAE6E65C194E99B /* libPods-ZingoMobile.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -136,8 +136,8 @@ 1F7D321C2B71D44800D2879C /* SystemConfiguration.framework */, 1FE8E9AB296B85FC004A256B /* BackgroundTasks.framework */, ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 3CD48E2F45D070FAA89673F8 /* libPods-ZingoMobile.a */, - E0047AEABCFCDF34CBD1244C /* libPods-ZingoMobile-ZingoMobileTests.a */, + 31EF5E7E3E5FF9F07D11A29D /* libPods-ZingoMobile.a */, + 5ED7B70526EA29D74D36D418 /* libPods-ZingoMobile-ZingoMobileTests.a */, ); name = Frameworks; sourceTree = ""; @@ -179,10 +179,10 @@ 8BB7EBE9935B479E64CBB9A8 /* Pods */ = { isa = PBXGroup; children = ( - 0D9896D9881BBFE26496585D /* Pods-ZingoMobile.debug.xcconfig */, - 39C6D93FBB707E7A5F86EB0E /* Pods-ZingoMobile.release.xcconfig */, - 1752229EEB1E891A6654090B /* Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig */, - 153C8557BF3C046894F65328 /* Pods-ZingoMobile-ZingoMobileTests.release.xcconfig */, + 3435E211DA309036D7174F92 /* Pods-ZingoMobile.debug.xcconfig */, + 6E25D43D47F9A295BF942342 /* Pods-ZingoMobile.release.xcconfig */, + A0BBF849B01C39917A109B05 /* Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig */, + 96273EAC6A4DF7833212B8AB /* Pods-ZingoMobile-ZingoMobileTests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -194,12 +194,12 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "ZingoMobileTests" */; buildPhases = ( - DD7B14E346A8CF4A2997D750 /* [CP] Check Pods Manifest.lock */, + 7409D5E9DFAF5D0A1B8BC712 /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, - 51A96719CF62A62F66AA7A69 /* [CP] Embed Pods Frameworks */, - 6AA06244CF71E871BBFE5687 /* [CP] Copy Pods Resources */, + D72F0ABC5A2F09E829D989AF /* [CP] Embed Pods Frameworks */, + 0A470B28E18CC7E900C2D806 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -215,14 +215,14 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ZingoMobile" */; buildPhases = ( - 97185D709FE5441A1FFE3A45 /* [CP] Check Pods Manifest.lock */, + 9D6FABF959CEBD8324BE17AC /* [CP] Check Pods Manifest.lock */, FD10A7F022414F080027D42C /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 2022D291A0B3AD248513EA4F /* [CP] Embed Pods Frameworks */, - DC66DC8FFB173D36AC178368 /* [CP] Copy Pods Resources */, + 0A7B03E1D7F96A8A850F14B1 /* [CP] Embed Pods Frameworks */, + 7517F802079A2A2A1797275F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -306,58 +306,41 @@ shellPath = /bin/sh; shellScript = "set -e\n\nexport NODE_BINARY=$(which node)\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; - 2022D291A0B3AD248513EA4F /* [CP] Embed Pods Frameworks */ = { + 0A470B28E18CC7E900C2D806 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 51A96719CF62A62F66AA7A69 /* [CP] Embed Pods Frameworks */ = { + 0A7B03E1D7F96A8A850F14B1 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 6AA06244CF71E871BBFE5687 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 97185D709FE5441A1FFE3A45 /* [CP] Check Pods Manifest.lock */ = { + 7409D5E9DFAF5D0A1B8BC712 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -372,14 +355,14 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ZingoMobile-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-ZingoMobile-ZingoMobileTests-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; }; - DC66DC8FFB173D36AC178368 /* [CP] Copy Pods Resources */ = { + 7517F802079A2A2A1797275F /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -396,7 +379,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZingoMobile/Pods-ZingoMobile-resources.sh\"\n"; showEnvVarsInLog = 0; }; - DD7B14E346A8CF4A2997D750 /* [CP] Check Pods Manifest.lock */ = { + 9D6FABF959CEBD8324BE17AC /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -411,13 +394,30 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ZingoMobile-ZingoMobileTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-ZingoMobile-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; }; + D72F0ABC5A2F09E829D989AF /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZingoMobile-ZingoMobileTests/Pods-ZingoMobile-ZingoMobileTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; FD10A7F022414F080027D42C /* Start Packager */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -477,7 +477,7 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1752229EEB1E891A6654090B /* Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig */; + baseConfigurationReference = A0BBF849B01C39917A109B05 /* Pods-ZingoMobile-ZingoMobileTests.debug.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; DEVELOPMENT_TEAM = 788KRST4S8; @@ -512,7 +512,7 @@ }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 153C8557BF3C046894F65328 /* Pods-ZingoMobile-ZingoMobileTests.release.xcconfig */; + baseConfigurationReference = 96273EAC6A4DF7833212B8AB /* Pods-ZingoMobile-ZingoMobileTests.release.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; COPY_PHASE_STRIP = NO; @@ -544,7 +544,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0D9896D9881BBFE26496585D /* Pods-ZingoMobile.debug.xcconfig */; + baseConfigurationReference = 3435E211DA309036D7174F92 /* Pods-ZingoMobile.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; @@ -585,7 +585,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 39C6D93FBB707E7A5F86EB0E /* Pods-ZingoMobile.release.xcconfig */; + baseConfigurationReference = 6E25D43D47F9A295BF942342 /* Pods-ZingoMobile.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; diff --git a/package.json b/package.json index b6efaf114..0141fb9ba 100644 --- a/package.json +++ b/package.json @@ -45,9 +45,10 @@ "prop-types": "^15.8.1", "randomcolor": "^0.6.2", "react": "18.3.1", - "react-native": "0.75.5", + "react-native": "0.76.7", "react-native-biometrics": "^3.0.1", "react-native-device-info": "^11.1.0", + "react-native-easy-biometrics": "^2.0.0", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "^2.23.1", "react-native-gifted-charts": "^1.4.56", @@ -62,7 +63,6 @@ "react-native-reanimated": "^3.16.7", "react-native-safe-area-context": "^4.4.1", "react-native-screens": "^4.6.0", - "react-native-simple-biometrics": "^1.5.2", "react-native-snackbar": "^2.6.2", "react-native-svg": "^15.11.1", "react-native-tab-view": "^3.3.0", @@ -74,10 +74,12 @@ "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", "@react-native-community/cli": "15.0.1", - "@react-native/babel-preset": "0.75.5", - "@react-native/eslint-config": "0.75.5", - "@react-native/metro-config": "0.75.5", - "@react-native/typescript-config": "0.75.5", + "@react-native-community/cli-platform-android": "15.0.1", + "@react-native-community/cli-platform-ios": "15.0.1", + "@react-native/babel-preset": "0.76.7", + "@react-native/eslint-config": "0.76.7", + "@react-native/metro-config": "0.76.7", + "@react-native/typescript-config": "0.76.7", "@testing-library/jest-native": "^5.3.3", "@testing-library/react-native": "^11.5.2", "@tsconfig/react-native": "^3.0.5", diff --git a/patches/react-native-simple-biometrics+1.5.3.patch b/patches/react-native-simple-biometrics+1.5.3.patch deleted file mode 100644 index 0422f0ef2..000000000 --- a/patches/react-native-simple-biometrics+1.5.3.patch +++ /dev/null @@ -1,118 +0,0 @@ -diff --git a/node_modules/react-native-simple-biometrics/android/build.gradle b/node_modules/react-native-simple-biometrics/android/build.gradle -index bb42230..a577fd6 100644 ---- a/node_modules/react-native-simple-biometrics/android/build.gradle -+++ b/node_modules/react-native-simple-biometrics/android/build.gradle -@@ -28,6 +28,7 @@ def getExtOrIntegerDefault(name) { - } - - android { -+ namespace "com.reactnativesimplebiometrics" - compileSdkVersion getExtOrIntegerDefault('compileSdkVersion') - - defaultConfig { -diff --git a/node_modules/react-native-simple-biometrics/android/build/generated/source/buildConfig/debug/Zingo/BuildConfig.java b/node_modules/react-native-simple-biometrics/android/build/generated/source/buildConfig/debug/Zingo/BuildConfig.java -new file mode 100644 -index 0000000..906252f ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/generated/source/buildConfig/debug/Zingo/BuildConfig.java -@@ -0,0 +1,12 @@ -+/** -+ * Automatically generated file. DO NOT MODIFY -+ */ -+package Zingo; -+ -+public final class BuildConfig { -+ public static final boolean DEBUG = Boolean.parseBoolean("true"); -+ public static final String LIBRARY_PACKAGE_NAME = "Zingo"; -+ public static final String BUILD_TYPE = "debug"; -+ // Field from default config. -+ public static final boolean IS_NEW_ARCHITECTURE_ENABLED = false; -+} -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/aar_metadata/debug/aar-metadata.properties b/node_modules/react-native-simple-biometrics/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -new file mode 100644 -index 0000000..776557e ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -@@ -0,0 +1,5 @@ -+aarFormatVersion=1.0 -+aarMetadataVersion=1.0 -+minCompileSdk=1 -+minCompileSdkExtension=0 -+minAndroidGradlePluginVersion=1.0.0 -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/node_modules/react-native-simple-biometrics/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json -new file mode 100644 -index 0000000..9e26dfe ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json -@@ -0,0 +1 @@ -+{} -\ No newline at end of file -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -new file mode 100644 -index 0000000..dae2fc4 ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -@@ -0,0 +1 @@ -+#Mon May 27 11:26:54 MDT 2024 -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -new file mode 100644 -index 0000000..2f6d377 ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml -new file mode 100644 -index 0000000..5e51d4b ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/mergeDebugShaders/merger.xml b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/mergeDebugShaders/merger.xml -new file mode 100644 -index 0000000..605f5bc ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/mergeDebugShaders/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/packageDebugAssets/merger.xml b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/packageDebugAssets/merger.xml -new file mode 100644 -index 0000000..056f146 ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/incremental/packageDebugAssets/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/local_only_symbol_list/debug/R-def.txt b/node_modules/react-native-simple-biometrics/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -new file mode 100644 -index 0000000..78ac5b8 ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -@@ -0,0 +1,2 @@ -+R_DEF: Internal format may change without notice -+local -diff --git a/node_modules/react-native-simple-biometrics/android/build/intermediates/navigation_json/debug/navigation.json b/node_modules/react-native-simple-biometrics/android/build/intermediates/navigation_json/debug/navigation.json -new file mode 100644 -index 0000000..0637a08 ---- /dev/null -+++ b/node_modules/react-native-simple-biometrics/android/build/intermediates/navigation_json/debug/navigation.json -@@ -0,0 +1 @@ -+[] -\ No newline at end of file -diff --git a/node_modules/react-native-simple-biometrics/android/src/main/AndroidManifest.xml b/node_modules/react-native-simple-biometrics/android/src/main/AndroidManifest.xml -index 46b7547..0a0938a 100644 ---- a/node_modules/react-native-simple-biometrics/android/src/main/AndroidManifest.xml -+++ b/node_modules/react-native-simple-biometrics/android/src/main/AndroidManifest.xml -@@ -1,4 +1,3 @@ -- -+ - -