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 @@
--
-+
-
-