From 9241a838e66736d20fa9dc8e0f375b5e8d62e616 Mon Sep 17 00:00:00 2001 From: Yogev Ben David Date: Sun, 11 Dec 2022 10:26:02 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Revert=20"Revert=20"Added=20support=20for?= =?UTF-8?q?=20the=20predictive=20back=20gesture=20on=20Android=20(#75?= =?UTF-8?q?=E2=80=A6=20(#7626)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 2d247ce5b82d9de0de0f40c138eb2267b78f8972. --- lib/android/app/build.gradle | 27 ++++++++++++++++--- lib/android/app/src/main/AndroidManifest.xml | 6 +++-- .../NavigationActivity.java | 17 ++++++++---- .../reactnativenavigation/TestActivity.java | 5 ---- playground/android/build.gradle | 4 +-- 5 files changed, 42 insertions(+), 17 deletions(-) diff --git a/lib/android/app/build.gradle b/lib/android/app/build.gradle index 5abc5ac36bc..9d9e3689d5f 100644 --- a/lib/android/app/build.gradle +++ b/lib/android/app/build.gradle @@ -12,9 +12,9 @@ def safeExtGetFallbackLowerBound(prop, fallback) { Math.max(safeExtGet(prop,fallback),fallback) } -def DEFAULT_COMPILE_SDK_VERSION = 30 +def DEFAULT_COMPILE_SDK_VERSION = 33 def DEFAULT_MIN_SDK_VERSION = 21 -def DEFAULT_TARGET_SDK_VERSION = 30 +def DEFAULT_TARGET_SDK_VERSION = 33 def DEFAULT_KOTLIN_VERSION = "1.5.31" def DEFAULT_KOTLIN_STDLIB = 'kotlin-stdlib-jdk8' def kotlinVersion = safeExtGet("RNNKotlinVersion", DEFAULT_KOTLIN_VERSION) @@ -22,7 +22,7 @@ def kotlinStdlib = safeExtGet('RNNKotlinStdlib',DEFAULT_KOTLIN_STDLIB ) def kotlinCoroutinesCore = safeExtGet('RNNKotlinCoroutinesCore', '1.5.2') android { compileSdkVersion safeExtGetFallbackLowerBound('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) - + buildToolsVersion = "33.0.0" defaultConfig { minSdkVersion safeExtGetFallbackLowerBound('minSdkVersion', DEFAULT_MIN_SDK_VERSION) targetSdkVersion safeExtGetFallbackLowerBound('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION) @@ -167,6 +167,27 @@ List reactNativeVersionComponents(rnPackageJsonFile) { return reactNativeVersion.tokenize('-')[0].tokenize('.') } +task installBuildToolsAndRenameD8IfNeeded { + def buildToolsVersion = android.getBuildToolsVersion() + def sdkDir = android.sdkDirectory + def buildToolsDir = new File(sdkDir, "/build-tools/" + buildToolsVersion) + + if (!buildToolsDir.exists()) { + def command = sdkDir.absolutePath + "/cmdline-tools/latest/bin/sdkmanager build-tools;" + buildToolsVersion + command.execute().waitForProcessOutput(System.out, System.err) + } + + def d8File = new File(buildToolsDir, "d8") + def dxFile = new File(buildToolsDir, "dx") + d8File.renameTo(dxFile) + + def buildToolsLibDir = new File(buildToolsDir, "lib") + d8File = new File(buildToolsLibDir, "d8.jar") + dxFile = new File(buildToolsLibDir, "dx.jar") + d8File.renameTo(dxFile) +} +build.dependsOn installBuildToolsAndRenameD8IfNeeded + dependencies { implementation "androidx.core:core-ktx:1.6.0" diff --git a/lib/android/app/src/main/AndroidManifest.xml b/lib/android/app/src/main/AndroidManifest.xml index 283e26746d1..c4e028de80e 100644 --- a/lib/android/app/src/main/AndroidManifest.xml +++ b/lib/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,9 @@ + xmlns:tools="http://schemas.android.com/tools" + package="com.reactnativenavigation"> - + diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java b/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java index 121b64e876a..226d3bf64b1 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java @@ -22,6 +22,7 @@ import com.reactnativenavigation.viewcontrollers.modal.ModalStack; import com.reactnativenavigation.viewcontrollers.navigator.Navigator; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; @@ -47,6 +48,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { ); navigator.bindViews(); getReactGateway().onActivityCreated(this); + setBackPressedCallback(); } @Override @@ -103,11 +105,6 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { getReactGateway().onActivityResult(this, requestCode, resultCode, data); } - @Override - public void onBackPressed() { - getReactGateway().onBackPressed(); - } - @Override public boolean onKeyUp(final int keyCode, final KeyEvent event) { return getReactGateway().onKeyUp(this, keyCode) || super.onKeyUp(keyCode, event); @@ -152,4 +149,14 @@ protected void addDefaultSplashLayout() { public void onCatalystInstanceDestroy() { runOnUiThread(() -> navigator.destroyViews()); } + + private void setBackPressedCallback() { + OnBackPressedCallback callback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + getReactGateway().onBackPressed(); + } + }; + getOnBackPressedDispatcher().addCallback(this, callback); + } } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java b/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java index 55d7bb0485b..8074511d632 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java @@ -15,9 +15,4 @@ public ReactGateway getReactGateway() { public void setNavigator(Navigator navigator) { this.navigator = navigator; } - - @Override - public void onBackPressed() { - super.onBackPressed(); - } } diff --git a/playground/android/build.gradle b/playground/android/build.gradle index a5f66e1db95..5c208936700 100644 --- a/playground/android/build.gradle +++ b/playground/android/build.gradle @@ -5,8 +5,8 @@ buildscript { kotlinVersion = "1.5.31" RNNKotlinVersion = kotlinVersion detoxKotlinVersion = kotlinVersion - compileSdkVersion = 31 - buildToolsVersion = "30.0.2" + compileSdkVersion = 33 + buildToolsVersion = "31.0.0" minSdkVersion = 21 targetSdkVersion = 31 } From ae26098e4af5d27b951727ee7e92ea7e8637a645 Mon Sep 17 00:00:00 2001 From: Yogev Ben David Date: Sun, 11 Dec 2022 10:52:13 +0200 Subject: [PATCH 2/2] Remove enableOnBackInvokedCallback from AndroidManifest.xml --- lib/android/app/src/main/AndroidManifest.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/android/app/src/main/AndroidManifest.xml b/lib/android/app/src/main/AndroidManifest.xml index c4e028de80e..285e164fd49 100644 --- a/lib/android/app/src/main/AndroidManifest.xml +++ b/lib/android/app/src/main/AndroidManifest.xml @@ -2,8 +2,7 @@ xmlns:tools="http://schemas.android.com/tools" package="com.reactnativenavigation"> - +