diff --git a/.github/workflows/newBuild.yml b/.github/workflows/newBuild.yml
index 272f7296..1baf25fe 100644
--- a/.github/workflows/newBuild.yml
+++ b/.github/workflows/newBuild.yml
@@ -43,7 +43,7 @@ on:
default: "3.2.1"
jobs:
generate:
- runs-on: [ default ]
+ runs-on: [macos]
outputs:
package_version: ${{ github.event.inputs.version_name }}
build_number: ${{ github.event.inputs.version_code }}
@@ -55,10 +55,10 @@ jobs:
submodules: recursive
- name: update codepush key QA
if: (github.event.inputs.environment == 'QA' || inputs.environment == 'QA')
- run: sed -i "s/pastekeyhere/${{ secrets.CODEPUSH_QA_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
+ run: sed -i "" "s/pastekeyhere/${{ secrets.CODEPUSH_QA_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
- name: update codepush key PROD
if: (github.event.inputs.environment == 'Prod' || inputs.environment == 'Prod')
- run: sed -i "s/pastekeyhere/${{ secrets.CODEPUSH_PROD_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
+ run: sed -i "" "s/pastekeyhere/${{ secrets.CODEPUSH_PROD_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
- name: Generate keystore
if: (github.event.inputs.type == 'release' || inputs.type == 'release')
run: echo "${{ secrets.KEY_STORE }}" > keystore.asc && gpg -d --passphrase "${{ secrets.PASSPHARASE }}" --batch keystore.asc > android/app/my-upload-key.keystore
@@ -72,10 +72,10 @@ jobs:
run: yarn
- name: Override App Version Code
if: github.event_name == 'workflow_dispatch' && github.event.inputs.version_code != ''
- run: sed -i 's/def VERSION_CODE = [0-9].*/def VERSION_CODE = ${{ github.event.inputs.version_code }}/g' android/app/build.gradle
+ run: sed -i "" 's/def VERSION_CODE = [0-9].*/def VERSION_CODE = ${{ github.event.inputs.version_code }}/g' android/app/build.gradle
- name: Override App Version Name
if: github.event_name == 'workflow_dispatch' && github.event.inputs.version_name != ''
- run: sed -i 's/def VERSION_NAME = "[0-9].*"/def VERSION_NAME = "${{ github.event.inputs.version_name }}"/g' android/app/build.gradle
+ run: sed -i "" 's/def VERSION_NAME = "[0-9].*"/def VERSION_NAME = "${{ github.event.inputs.version_name }}"/g' android/app/build.gradle
- name: Log Build Metadata
run: |
echo "Commit SHA: ${{ github.sha }}"
@@ -168,7 +168,7 @@ jobs:
generate_source_map:
needs: generate
- runs-on: [default]
+ runs-on: [macos]
outputs:
package_version: ${{ needs.generate.outputs.package_version }}
build_number: ${{ needs.generate.outputs.build_number }}
@@ -233,7 +233,7 @@ jobs:
upload_sourcemap_cybertron:
needs: generate_source_map
- runs-on: [default]
+ runs-on: [macos]
if: success() && (github.event.inputs.environment == 'Prod')
steps:
- name: Download Source Map
@@ -267,7 +267,7 @@ jobs:
create_release_tag:
needs: generate_source_map
- runs-on: [default]
+ runs-on: [macos]
if: success() && (github.event.inputs.environment == 'Prod') && (github.event.inputs.releaseType == 'HARD_RELEASE' || inputs.releaseType == 'HARD_RELEASE') # Only create source map for Prod releases and not for test builds
steps:
- name: Checkout
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 27d50c4a..b4dc83b0 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,9 +1,6 @@
apply plugin: "com.android.application"
-apply plugin: "com.google.gms.google-services"
-apply plugin: "com.google.firebase.crashlytics"
-apply plugin: 'com.google.firebase.firebase-perf'
+apply plugin: "com.facebook.react"
-import com.android.build.OutputFile
import org.apache.tools.ant.taskdefs.condition.Os
/**
@@ -86,19 +83,8 @@ project.ext.react = [
enableNewArchitecture: true
]
-apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
-/**
- * Set this to true to create two separate APKs instead of one:
- * - An APK that only works on ARM devices
- * - An APK that only works on x86 devices
- * The advantage is the size of the APK is reduced by about 4MB.
- * Upload all the APKs to the Play Store and people will download
- * the correct one based on the CPU architecture of their device.
- */
-def enableSeparateBuildPerCPUArchitecture = false
-
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
@@ -126,18 +112,12 @@ def jscFlavor = 'org.webkit:android-jsc:+'
*/
def enableHermes = project.ext.react.get("enableHermes", false);
-/**
- * Architectures to build native code for.
- */
-def reactNativeArchitectures() {
- def value = project.getProperties().get("reactNativeArchitectures")
- return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
-}
-def VERSION_CODE = 215
-def VERSION_NAME = "2.15.1"
+def VERSION_CODE = 216
+def VERSION_NAME = "2.15.2"
android {
+ namespace "com.avapp"
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
@@ -148,80 +128,12 @@ android {
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode VERSION_CODE
versionName VERSION_NAME
- buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
buildConfigField "string", "FLAVOR", '"'
buildConfigField "string", "BUILD_FLAVOR", '"'
buildConfigField "string", "APP_NAME", '"'
buildConfigField "string", "API_KEY", '"'
-
- if (isNewArchitectureEnabled()) {
- // We configure the CMake build only if you decide to opt-in for the New Architecture.
- externalNativeBuild {
- cmake {
- arguments "-DPROJECT_BUILD_DIR=$buildDir",
- "-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
- "-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build",
- "-DNODE_MODULES_DIR=$rootDir/../node_modules",
- "-DANDROID_STL=c++_shared"
- }
- }
- if (!enableSeparateBuildPerCPUArchitecture) {
- ndk {
- abiFilters (*reactNativeArchitectures())
- }
- }
- }
}
- if (isNewArchitectureEnabled()) {
- // We configure the NDK build only if you decide to opt-in for the New Architecture.
- externalNativeBuild {
- cmake {
- path "$projectDir/src/main/jni/CMakeLists.txt"
- }
- }
- def reactAndroidProjectDir = project(':ReactAndroid').projectDir
- def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
- dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
- from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
- into("$buildDir/react-ndk/exported")
- }
- def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
- dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
- from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
- into("$buildDir/react-ndk/exported")
- }
- afterEvaluate {
- // If you wish to add a custom TurboModule or component locally,
- // you should uncomment this line.
- // preBuild.dependsOn("generateCodegenArtifactsFromSchema")
- preDebugBuild.dependsOn(packageReactNdkDebugLibs)
- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
-
- // Due to a bug inside AGP, we have to explicitly set a dependency
- // between configureCMakeDebug* tasks and the preBuild tasks.
- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
- configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)
- configureCMakeDebug.dependsOn(preDebugBuild)
- reactNativeArchitectures().each { architecture ->
- tasks.findByName("configureCMakeDebug[${architecture}]")?.configure {
- dependsOn("preDebugBuild")
- }
- tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure {
- dependsOn("preReleaseBuild")
- }
- }
- }
- }
-
- splits {
- abi {
- reset()
- enable enableSeparateBuildPerCPUArchitecture
- universalApk false // If true, also generate a universal APK
- include (*reactNativeArchitectures())
- }
- }
signingConfigs {
debug {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
@@ -259,21 +171,6 @@ android {
}
}
- // applicationVariants are e.g. debug, release
- applicationVariants.all { variant ->
- variant.outputs.each { output ->
- // For each separate APK per architecture, set a unique version code as described here:
- // https://developer.android.com/studio/build/configure-apk-splits.html
- // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
- def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
- def abi = output.getFilter(OutputFile.ABI)
- if (abi != null) { // null for the universal-debug, universal-release variants
- output.versionCodeOverride =
- defaultConfig.versionCode * 1000 + versionCodes.get(abi)
- }
-
- }
- }
flavorDimensions "env"
productFlavors {
fieldAgentsQA {
@@ -328,48 +225,22 @@ dependencies {
implementation 'androidx.work:work-runtime-ktx:2.8.1'
//noinspection GradleDynamicVersion
- implementation "com.facebook.react:react-native:+" // From node_modules
-
- implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
-
- debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
- exclude group:'com.facebook.fbjni'
- }
-
+ implementation("com.facebook.react:react-android")
+
+ debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
- exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
- debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
- exclude group:'com.facebook.flipper'
- }
+ debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")
if (enableHermes) {
//noinspection GradleDynamicVersion
- implementation("com.facebook.react:hermes-engine:+") { // From node_modules
- exclude group:'com.facebook.fbjni'
- }
+ implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
}
-if (isNewArchitectureEnabled()) {
- // If new architecture is enabled, we let you build RN from source
- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
- // This will be applied to all the imported transtitive dependency.
- configurations.all {
- resolutionStrategy.dependencySubstitution {
- substitute(module("com.facebook.react:react-native"))
- .using(project(":ReactAndroid"))
- .because("On New Architecture we're building React Native from source")
- substitute(module("com.facebook.react:hermes-engine"))
- .using(project(":ReactAndroid:hermes-engine"))
- .because("On New Architecture we're building Hermes from source")
- }
- }
-}
-
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
@@ -379,13 +250,8 @@ task copyDownloadableDepsToLibs(type: Copy) {
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
-def isNewArchitectureEnabled() {
- // To opt-in for the New Architecture, you can either:
- // - Set `newArchEnabled` to true inside the `gradle.properties` file
- // - Invoke gradle with `-newArchEnabled=true`
- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
- return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
-}
apply plugin: 'com.google.gms.google-services'
+apply plugin: "com.google.firebase.crashlytics"
+apply plugin: 'com.google.firebase.firebase-perf'
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 42c13f8d..ec0860ee 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -27,7 +27,7 @@
-
+
diff --git a/android/app/src/main/java/com/avapp/MainActivity.java b/android/app/src/main/java/com/avapp/MainActivity.java
index 27126eb5..f6bf114e 100644
--- a/android/app/src/main/java/com/avapp/MainActivity.java
+++ b/android/app/src/main/java/com/avapp/MainActivity.java
@@ -62,12 +62,12 @@ public class MainActivity extends ReactActivity implements AlfredFirebaseHelper
return reactRootView;
}
- @Override
- protected boolean isConcurrentRootEnabled() {
- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
- }
+ // @Override
+ // protected boolean isConcurrentRootEnabled() {
+ // // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
+ // // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
+ // return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
+ // }
}
@Override
diff --git a/android/build.gradle b/android/build.gradle
index 002ed0c5..8b1db5fa 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -23,7 +23,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath("com.android.tools.build:gradle:7.2.1")
+ classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("de.undercouch:gradle-download-task:5.0.1")
// NOTE: Do not place your application dependencies here; they belong
diff --git a/android/gradle.properties b/android/gradle.properties
index f2ce2c37..ed80567b 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -25,7 +25,7 @@ android.useAndroidX=true
android.enableJetifier=true
# Version of flipper SDK to use with React Native
-FLIPPER_VERSION=0.125.0
+FLIPPER_VERSION=0.182.0
VERSION_NAME=1.2.3
# Use this property to specify which architecture you want to build.
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 8fad3f5a..6ec1567a 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
+networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/android/gradlew b/android/gradlew
index 1b6c7873..12c55612 100755
--- a/android/gradlew
+++ b/android/gradlew
@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -84,6 +84,7 @@ APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
@@ -205,6 +206,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/android/settings.gradle b/android/settings.gradle
index d24ff2c4..016efc69 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -2,7 +2,7 @@ rootProject.name = 'AVAPP'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app', ':react-native-code-push'
include ':react-native-version-number'
-includeBuild('../node_modules/react-native-gradle-plugin')
+includeBuild('../node_modules/@react-native/gradle-plugin')
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
include(":ReactAndroid")
@@ -10,6 +10,16 @@ if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true")
include(":ReactAndroid:hermes-engine")
project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine')
}
+
+includeBuild('../node_modules/react-native') {
+ dependencySubstitution {
+ substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
+ substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
+ // substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ // substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ }
+}
+
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')
project(':react-native-version-number').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-version-number/android')
\ No newline at end of file
diff --git a/metro.config.js b/metro.config.js
index 97d828f8..cc7ae373 100644
--- a/metro.config.js
+++ b/metro.config.js
@@ -1,3 +1,4 @@
+const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
const { withSentryConfig } = require('@sentry/react-native/metro');
/**
@@ -7,7 +8,7 @@ const { withSentryConfig } = require('@sentry/react-native/metro');
* @format
*/
-module.exports = withSentryConfig({
+const config = withSentryConfig({
transformer: {
getTransformOptions: async () => ({
transform: {
@@ -17,3 +18,5 @@ module.exports = withSentryConfig({
}),
},
});
+
+module.exports = mergeConfig(getDefaultConfig(__dirname), config);
diff --git a/package.json b/package.json
index f9ae657a..152e6ed8 100644
--- a/package.json
+++ b/package.json
@@ -1,24 +1,24 @@
{
"name": "AV_APP",
- "version": "2.15.1",
- "buildNumber": "215",
+ "version": "2.15.2",
+ "buildNumber": "216",
"private": true,
"scripts": {
"android:dev": "yarn move:dev && react-native run-android",
"android:qa": "yarn move:qa && react-native run-android",
"android:prod": "yarn move:prod && react-native run-android",
- "android-field:dev": "yarn move:dev && react-native run-android --variant=fieldAgentsQADebug",
- "android-field:qa": "yarn move:qa && react-native run-android --variant=fieldAgentsQADebug",
- "android-field:prod": "yarn move:prod && react-native run-android --variant=fieldAgentsProdDebug",
- "release-field:dev": "yarn move:dev && react-native run-android --variant=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
- "release-field:qa": "yarn move:qa && react-native run-android --variant=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
- "release-field:prod": "yarn move:prod && react-native run-android --variant=fieldAgentsProdRelease && cd android && ./gradlew assemblefieldAgentsProdRelease",
- "android-calling:dev": "yarn move:dev && react-native run-android --variant=callingAgentsQADebug",
- "android-calling:qa": "yarn move:qa && react-native run-android --variant=callingAgentsQADebug",
- "android-calling:prod": "yarn move:prod && react-native run-android --variant=callingAgentsProdDebug",
- "release-calling:dev": "yarn move:dev && react-native run-android --variant=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
- "release-calling:qa": "yarn move:qa && react-native run-android --variant=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
- "release-calling:prod": "yarn move:dev && react-native run-android --variant=callingAgentsProdRelease && cd android && ./gradlew assemblecallingAgentsProdRelease",
+ "android-field:dev": "yarn move:dev && react-native run-android --mode=fieldAgentsQADebug",
+ "android-field:qa": "yarn move:qa && react-native run-android --mode=fieldAgentsQADebug",
+ "android-field:prod": "yarn move:prod && react-native run-android --mode=fieldAgentsProdDebug",
+ "release-field:dev": "yarn move:dev && react-native run-android --mode=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
+ "release-field:qa": "yarn move:qa && react-native run-android --mode=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
+ "release-field:prod": "yarn move:prod && react-native run-android --mode=fieldAgentsProdRelease && cd android && ./gradlew assemblefieldAgentsProdRelease",
+ "android-calling:dev": "yarn move:dev && react-native run-android --mode=callingAgentsQADebug",
+ "android-calling:qa": "yarn move:qa && react-native run-android --mode=callingAgentsQADebug",
+ "android-calling:prod": "yarn move:prod && react-native run-android --mode=callingAgentsProdDebug",
+ "release-calling:dev": "yarn move:dev && react-native run-android --mode=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
+ "release-calling:qa": "yarn move:qa && react-native run-android --mode=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
+ "release-calling:prod": "yarn move:dev && react-native run-android --mode=callingAgentsProdRelease && cd android && ./gradlew assemblecallingAgentsProdRelease",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
@@ -39,22 +39,23 @@
"@bam.tech/react-native-image-resizer": "3.0.5",
"@notifee/react-native": "7.8.2",
"@nozbe/with-observables": "1.4.1",
+ "@react-native/metro-config": "0.72.11",
"@react-native-async-storage/async-storage": "1.17.11",
"@react-native-clipboard/clipboard": "^1.11.2",
"@react-native-community/netinfo": "9.3.7",
- "@react-native-firebase/analytics": "16.4.6",
- "@react-native-firebase/app": "16.4.6",
- "@react-native-firebase/auth": "16.5.0",
- "@react-native-firebase/crashlytics": "16.5.0",
- "@react-native-firebase/database": "16.4.6",
- "@react-native-firebase/firestore": "16.5.0",
- "@react-native-firebase/messaging": "17.4.0",
- "@react-native-firebase/perf": "16.5.2",
- "@react-native-firebase/remote-config": "16.4.6",
- "@react-native-google-signin/google-signin": "9.0.2",
- "@react-navigation/bottom-tabs": "6.5.5",
- "@react-navigation/native": "6.1.4",
- "@react-navigation/native-stack": "6.9.4",
+ "@react-native-firebase/analytics": "16.7.0",
+ "@react-native-firebase/app": "16.7.0",
+ "@react-native-firebase/auth": "16.7.0",
+ "@react-native-firebase/crashlytics": "16.7.0",
+ "@react-native-firebase/database": "16.7.0",
+ "@react-native-firebase/firestore": "16.7.0",
+ "@react-native-firebase/messaging": "16.7.0",
+ "@react-native-firebase/perf": "16.7.0",
+ "@react-native-firebase/remote-config": "16.7.0",
+ "@react-native-google-signin/google-signin": "13.1.0",
+ "@react-navigation/bottom-tabs": "6.6.1",
+ "@react-navigation/native": "6.1.18",
+ "@react-navigation/native-stack": "6.11.0",
"@reduxjs/toolkit": "1.9.1",
"@sentry/react-native": "5.35.0",
"@shopify/flash-list": "1.4.3",
@@ -68,15 +69,15 @@
"dayjs": "1.11.9",
"fuzzysort": "2.0.4",
"lodash.chunk": "^4.2.0",
- "lottie-react-native": "5.1.4",
+ "lottie-react-native": "6.4.0",
"patch-package": "8.0.0",
"postinstall-postinstall": "2.1.0",
- "react": "18.1.0",
+ "react": "18.2.0",
"react-hook-form": "7.40.0",
- "react-native": "0.70.6",
+ "react-native": "0.72.6",
"react-native-blob-util": "0.17.3",
"react-native-call-log": "2.1.2",
- "react-native-code-push": "7.1.0",
+ "react-native-code-push": "8.3.1",
"react-native-contacts": "7.0.5",
"react-native-device-info": "10.3.0",
"react-native-fast-image": "8.6.3",
@@ -85,7 +86,7 @@
"react-native-get-sms-android": "2.1.0",
"react-native-gzip": "1.0.0",
"react-native-image-picker": "4.10.2",
- "react-native-mmkv": "2.5.1",
+ "react-native-mmkv": "2.11.0",
"react-native-pager-view": "6.1.2",
"react-native-pdf-renderer": "1.1.1",
"react-native-permissions": "3.6.1",
@@ -102,7 +103,7 @@
"redux-persist": "6.0.0"
},
"devDependencies": {
- "@babel/core": "7.12.9",
+ "@babel/core": "7.25.2",
"@babel/plugin-proposal-decorators": "7.20.7",
"@babel/runtime": "7.12.5",
"@tsconfig/react-native": "2.0.2",
@@ -110,7 +111,7 @@
"@types/d3-shape": "^3.1.3",
"@types/jest": "26.0.23",
"@types/react": "18.0.21",
- "@types/react-native": "0.70.6",
+ "@types/react-native": "0.71.13",
"@types/react-native-fetch-blob": "0.10.7",
"@types/react-native-video": "5.0.14",
"@types/react-native-video-player": "0.10.3",
@@ -138,7 +139,7 @@
"husky": "8.0.0",
"jest": "26.6.3",
"lint-staged": "13.2.1",
- "metro-react-native-babel-preset": "0.72.3",
+ "metro-react-native-babel-preset": "0.76.8",
"miragejs": "0.1.47",
"prettier": "^2.8.7",
"react-test-renderer": "18.1.0",
diff --git a/patches/react-native+0.70.6.patch b/patches/react-native+0.72.6.patch
similarity index 100%
rename from patches/react-native+0.70.6.patch
rename to patches/react-native+0.72.6.patch
diff --git a/react-native.config.js b/react-native.config.js
new file mode 100644
index 00000000..535123b8
--- /dev/null
+++ b/react-native.config.js
@@ -0,0 +1,8 @@
+module.exports = {
+ project: {
+ ios: {},
+ android: {
+ unstable_reactLegacyComponentNames: ['FastImageView', 'FlashList'],
+ },
+ },
+};
diff --git a/src/common/Constants.ts b/src/common/Constants.ts
index bb434ce5..cf6760fa 100644
--- a/src/common/Constants.ts
+++ b/src/common/Constants.ts
@@ -1444,7 +1444,7 @@ export const PermissionsToCheck: Permission[] = [
PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE,
PermissionsAndroid.PERMISSIONS.SEND_SMS,
PermissionsAndroid.PERMISSIONS.RECEIVE_WAP_PUSH,
- PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION,
+ PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS,
];
export const BLOCKER_SCREEN_DATA = {
diff --git a/src/components/utlis/PermissionUtils.ts b/src/components/utlis/PermissionUtils.ts
index 4da8e84b..b194c625 100644
--- a/src/components/utlis/PermissionUtils.ts
+++ b/src/components/utlis/PermissionUtils.ts
@@ -30,7 +30,7 @@ export const getPermissionsToRequest = async () => {
const permissionsToValidate = getPermissionsToValidate();
for (let i = 0; i < permissionsToValidate.length; i++) {
const permission = permissionsToValidate[i];
- if (permission === PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION) {
+ if (permission === PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS) {
const notificationPermission = await checkNotifications();
const notificationStatus = notificationPermission.status === 'granted';
isNotificationPermissionEnabled = notificationStatus;
diff --git a/src/screens/Dashboard/PerformanceMeter.tsx b/src/screens/Dashboard/PerformanceMeter.tsx
index ef3b8c0d..84db7838 100644
--- a/src/screens/Dashboard/PerformanceMeter.tsx
+++ b/src/screens/Dashboard/PerformanceMeter.tsx
@@ -5,6 +5,7 @@ import {
Pressable,
LayoutAnimation,
UIManager,
+ Platform,
} from 'react-native';
import Text from '../../../RN-UI-LIB/src/components/Text';
import { COLORS } from '../../../RN-UI-LIB/src/styles/colors';
@@ -18,11 +19,10 @@ import { getPerformanceLevel } from './utils';
import { addClickstreamEvent } from '@services/clickstreamEventService';
import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants';
-if (
- Platform.OS === 'android' &&
- UIManager.setLayoutAnimationEnabledExperimental
-) {
- UIManager.setLayoutAnimationEnabledExperimental(true);
+if (Platform.OS === 'android') {
+ if (UIManager.setLayoutAnimationEnabledExperimental) {
+ UIManager.setLayoutAnimationEnabledExperimental(true);
+ }
}
const PerformanceMeter = () => {
diff --git a/src/screens/allCases/CaseItem.tsx b/src/screens/allCases/CaseItem.tsx
index 8bd6a758..fad5c6cb 100644
--- a/src/screens/allCases/CaseItem.tsx
+++ b/src/screens/allCases/CaseItem.tsx
@@ -150,4 +150,4 @@ const styles = StyleSheet.create({
color: COLORS.TEXT.DARK,
},
});
-export default CaseItem;
+export default React.memo(CaseItem);
diff --git a/src/screens/caseDetails/feedback/FeedbackDetailContainer.tsx b/src/screens/caseDetails/feedback/FeedbackDetailContainer.tsx
index 1fc0016d..93804bb8 100644
--- a/src/screens/caseDetails/feedback/FeedbackDetailContainer.tsx
+++ b/src/screens/caseDetails/feedback/FeedbackDetailContainer.tsx
@@ -1,4 +1,4 @@
-import React, { useCallback, useEffect, useMemo, useState } from 'react';
+import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { Modal, RefreshControl, ScrollView, StyleSheet, View } from 'react-native';
import Accordion from '../../../../RN-UI-LIB/src/components/accordian/Accordian';
import NavigationHeader from '../../../../RN-UI-LIB/src/components/NavigationHeader';
@@ -105,7 +105,7 @@ const FeedbackDetailContainer: React.FC = ({ route: ro
const [loading, setLoading] = useState(false);
const [currentPage, setCurrentPage] = useState(pageNo);
const [dataSourceCord, setDataSourceCord] = useState(0);
- const [ref, setRef] = useState();
+ const ref = useRef();
const [showFilterModal, setShowFilterModal] = useState(false);
const fetchFeedbacks = useCallback(
@@ -188,7 +188,7 @@ const FeedbackDetailContainer: React.FC = ({ route: ro
if (!ref || !dataSourceCord) {
return;
}
- ref.scrollTo({
+ ref?.current?.scrollTo({
x: 0,
y: dataSourceCord,
animated: true,
@@ -270,7 +270,7 @@ const FeedbackDetailContainer: React.FC = ({ route: ro
/>
}
style={[GenericStyles.ph16, GenericStyles.fill]}
- ref={(x) => setRef(x)}
+ ref={ref}
>