From b20946c6207f8229b4adccd634899b2912805af1 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Mon, 22 Jan 2024 16:23:12 +0100 Subject: [PATCH 1/3] build: bump `navigation.safeargs` to `2.6.0` --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 039cbe375b5..2880cc753a9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,7 +5,7 @@ pluginManagement { gradle.ext.detektVersion = '1.19.0' gradle.ext.kotlinVersion = '1.8.21' gradle.ext.measureBuildsVersion = '2.0.3' - gradle.ext.navigationVersion = '2.5.3' + gradle.ext.navigationVersion = '2.6.0' gradle.ext.sentryVersion = '3.5.0' gradle.ext.violationCommentsVersion = '1.69.0' From 2ca6ebf3bd4e43f8a258c0e63fae102e91a9e0a9 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Mon, 22 Jan 2024 16:24:30 +0100 Subject: [PATCH 2/3] fix: introduce `hasBackStackEntry` method The `backQueue` is now `private` in `NavController`. It exposes `hasBackStackEntry` method though, which we can utilize. --- .../android/ui/products/ProductDetailFragment.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailFragment.kt index eef36539391..638676f60ab 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailFragment.kt @@ -10,12 +10,14 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View +import androidx.annotation.IdRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat import androidx.core.view.MenuProvider import androidx.core.view.ViewCompat import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope +import androidx.navigation.NavController import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -125,7 +127,7 @@ class ProductDetailFragment : override val activityAppBarStatus: AppBarStatus get() { - val navigationIcon = if (findNavController().backQueue.any { it.destination.id == R.id.products }) { + val navigationIcon = if (findNavController().hasBackStackEntry(R.id.products)) { R.drawable.ic_back_24dp } else { R.drawable.ic_gridicons_cross_24dp @@ -135,6 +137,10 @@ class ProductDetailFragment : ) } + private fun NavController.hasBackStackEntry(@IdRes destinationId: Int) = runCatching { + getBackStackEntry(destinationId) + }.isSuccess + @Inject lateinit var crashLogging: CrashLogging override fun onCreate(savedInstanceState: Bundle?) { From 3d08887ef299a7893b2655f464b64cffbfb3cf52 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Mon, 22 Jan 2024 16:25:29 +0100 Subject: [PATCH 3/3] build: replace `core` library with `app-update` and `review` > The Google Play Core Java and Kotlin library have been split into multiple separate libraries, one for each feature. https://developer.android.com/reference/com/google/android/play/core/release-notes#partitioned-apis --- WooCommerce/build.gradle | 3 ++- .../com/woocommerce/android/ui/main/AppUpgradeActivity.kt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/WooCommerce/build.gradle b/WooCommerce/build.gradle index 0f30a55018c..51db5089a40 100644 --- a/WooCommerce/build.gradle +++ b/WooCommerce/build.gradle @@ -280,7 +280,8 @@ dependencies { implementation "com.github.bumptech.glide:glide:$glideVersion" kapt "com.github.bumptech.glide:compiler:$glideVersion" implementation "com.github.bumptech.glide:volley-integration:$glideVersion@aar" - implementation "com.google.android.play:core:$googlePlayCoreVersion" + implementation 'com.google.android.play:app-update-ktx:2.1.0' + implementation 'com.google.android.play:review-ktx:2.0.1' implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3' diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/AppUpgradeActivity.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/AppUpgradeActivity.kt index 1f958e2f6e7..95f197bc538 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/AppUpgradeActivity.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/AppUpgradeActivity.kt @@ -206,6 +206,7 @@ abstract class AppUpgradeActivity : private fun requestAppUpdate(appUpdateInfo: AppUpdateInfo) { try { + @Suppress("DEPRECATION") appUpdateManager.startUpdateFlowForResult( appUpdateInfo, inAppUpdateType,