diff --git a/android/app/build.gradle b/android/app/build.gradle index 8986207b293e..55ccb767b335 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -152,8 +152,35 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001018803 - versionName "1.1.88-3" + versionCode 1001018804 + versionName "1.1.88-4" + buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() + + if (isNewArchitectureEnabled()) { + // We configure the NDK build only if you decide to opt-in for the New Architecture. + externalNativeBuild { + ndkBuild { + arguments "APP_PLATFORM=android-21", + "APP_STL=c++_shared", + "NDK_TOOLCHAIN_VERSION=clang", + "GENERATED_SRC_DIR=$buildDir/generated/source", + "PROJECT_BUILD_DIR=$buildDir", + "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", + "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", + "NODE_MODULES_DIR=$rootDir/../node_modules" + cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1" + cppFlags "-std=c++17" + // Make sure this target name is the same you specify inside the + // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. + targets "rndiffapp_appmodules" + } + } + if (!enableSeparateBuildPerCPUArchitecture) { + ndk { + abiFilters (*reactNativeArchitectures()) + } + } + } } splits { abi { diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index 59c385c7f981..ea20ea23079c 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -30,7 +30,7 @@ CFBundleVersion - 1.1.88.3 + 1.1.88.4 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index 759ef3db5bab..ce348e9d0e4c 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.1.88.3 + 1.1.88.4 diff --git a/package-lock.json b/package-lock.json index 96861f4422db..09f048a0feb7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.1.88-3", + "version": "1.1.88-4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7ffe1b2c419b..da73f5f22d65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.1.88-3", + "version": "1.1.88-4", "author": "Expensify, Inc.", "homepage": "https://new.expensify.com", "description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.", diff --git a/src/components/OpacityView.js b/src/components/OpacityView.js index 162aa6fa585e..9b6ebcc018b4 100644 --- a/src/components/OpacityView.js +++ b/src/components/OpacityView.js @@ -21,6 +21,7 @@ class OpacityView extends React.Component { constructor(props) { super(props); this.opacity = new Animated.Value(1); + this.undim = this.undim.bind(this); } componentDidUpdate(prevProps) { @@ -33,14 +34,26 @@ class OpacityView extends React.Component { } if (prevProps.shouldDim && !this.props.shouldDim) { - Animated.timing(this.opacity, { - toValue: 1, - duration: 50, - useNativeDriver: true, - }).start(); + this.undim(); } } + undim() { + Animated.timing(this.opacity, { + toValue: 1, + duration: 50, + useNativeDriver: true, + }).start(({finished}) => { + // If animation doesn't finish because Animation.stop was called + // (e.g. because it was interrupted by a gesture or another animation), + // restart animation so we always make sure the component gets completely shown. + if (finished) { + return; + } + this.undim(); + }); + } + render() { return (