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 (