Upgrade Navigation to use Activity 1.2.2, ToT Fragments
In preparation for navigation-fragment using the
multiple back stacks APIs added in the latest
version of Fragments, update the dependencies in
Navigation to use the latest stable Activity release
(1.2.2) and the tip-of-tree version of Fragments.
By necessity, this updates usages of deprecated
Fragment APIs (namely, startIntentSenderForResult()
and onActivityResult) to their replacements.
Relnote: "Navigation Runtime now depends on
[Activity `1.2.2`](/jetpack/androidx/releases/activity#1.2.2)."
Test: existing navigation-fragment tests still pass
BUG: 80029773
Change-Id: Iad6bec4af04c4ad748277fe7f99b87c7f5698ec6
diff --git a/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt b/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt
index d6b50c5..04f050c 100644
--- a/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt
+++ b/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt
@@ -17,11 +17,12 @@
package androidx.navigation.dynamicfeatures.fragment.ui
import android.app.Activity
-import android.content.Intent
import android.content.IntentSender
import android.os.Bundle
import android.util.Log
import android.view.View
+import androidx.activity.result.IntentSenderRequest
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RestrictTo
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
@@ -66,6 +67,14 @@
public constructor(contentLayoutId: Int) : super(contentLayoutId)
+ private val intentSenderLauncher = registerForActivityResult(
+ ActivityResultContracts.StartIntentSenderForResult()
+ ) { result ->
+ if (result.resultCode == Activity.RESULT_CANCELED) {
+ onCancelled()
+ }
+ }
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (savedInstanceState != null) {
@@ -137,20 +146,17 @@
splitInstallManager.startConfirmationDialogForResult(
sessionState,
IntentSenderForResultStarter { intent,
- requestCode,
+ _,
fillInIntent,
flagsMask,
flagsValues,
- extraFlags,
- options ->
- startIntentSenderForResult(
- intent,
- requestCode,
- fillInIntent,
- flagsMask,
- flagsValues,
- extraFlags,
- options
+ _,
+ _ ->
+ intentSenderLauncher.launch(
+ IntentSenderRequest.Builder(intent)
+ .setFillInIntent(fillInIntent)
+ .setFlags(flagsValues, flagsMask)
+ .build()
)
},
INSTALL_REQUEST_CODE
@@ -178,15 +184,6 @@
}
}
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- super.onActivityResult(requestCode, resultCode, data)
- if (requestCode == INSTALL_REQUEST_CODE) {
- if (resultCode == Activity.RESULT_CANCELED) {
- onCancelled()
- }
- }
- }
-
/**
* Called when there was a progress update for an active module download.
*
diff --git a/navigation/navigation-fragment/build.gradle b/navigation/navigation-fragment/build.gradle
index d90c892..cb93aa6 100644
--- a/navigation/navigation-fragment/build.gradle
+++ b/navigation/navigation-fragment/build.gradle
@@ -27,11 +27,11 @@
}
dependencies {
- api("androidx.fragment:fragment-ktx:1.2.4")
+ api(projectOrArtifact(":fragment:fragment-ktx"))
api(project(":navigation:navigation-runtime-ktx"))
api(KOTLIN_STDLIB)
- androidTestImplementation("androidx.fragment:fragment-testing:1.3.2")
+ androidTestImplementation(projectOrArtifact(":fragment:fragment-testing"))
androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
androidTestImplementation(ANDROIDX_TEST_CORE)
androidTestImplementation(ANDROIDX_TEST_RUNNER)
diff --git a/navigation/navigation-runtime/build.gradle b/navigation/navigation-runtime/build.gradle
index 9651e40..19a91d6 100644
--- a/navigation/navigation-runtime/build.gradle
+++ b/navigation/navigation-runtime/build.gradle
@@ -29,7 +29,7 @@
dependencies {
api(project(":navigation:navigation-common-ktx"))
- api("androidx.activity:activity-ktx:1.1.0")
+ api("androidx.activity:activity-ktx:1.2.2")
api("androidx.lifecycle:lifecycle-runtime-ktx:2.3.1")
api("androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1")
api("androidx.savedstate:savedstate:1.0.0")