Fixed
Status Update
Comments
da...@gmail.com <da...@gmail.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 7b17505c2e3679330cf386efe69f1aa95b6ae9e9
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jan 06 14:47:42 2022
Update safeArgs to AGP 7.0.4
Updating safeArgs to depend on AGP 7.0.4.
Removing the use of reflection from the plugin since we no longer
needed.
RelNote: "Safe Args now depends on Android Gradle Plugin version 7.0.4.
This means that Navigation Safe Args will no longer be compatible with
Android Studio versions prior to 7.0."
Test: ./gradlew --rerun-tasks navigation:navigation-safe-args-gradle-plugin:test
Bug: 213086135
Bug: 207670704
Change-Id: I41c88ee06ad827c61cb1bbdc5ba58b3d56155caf
M navigation/navigation-safe-args-gradle-plugin/build.gradle
M navigation/navigation-safe-args-gradle-plugin/src/main/kotlin/androidx/navigation/safeargs/gradle/SafeArgsPlugin.kt
https://android-review.googlesource.com/1940534
Branch: androidx-main
commit 7b17505c2e3679330cf386efe69f1aa95b6ae9e9
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jan 06 14:47:42 2022
Update safeArgs to AGP 7.0.4
Updating safeArgs to depend on AGP 7.0.4.
Removing the use of reflection from the plugin since we no longer
needed.
RelNote: "Safe Args now depends on Android Gradle Plugin version 7.0.4.
This means that Navigation Safe Args will no longer be compatible with
Android Studio versions prior to 7.0."
Test: ./gradlew --rerun-tasks navigation:navigation-safe-args-gradle-plugin:test
Bug: 213086135
Bug: 207670704
Change-Id: I41c88ee06ad827c61cb1bbdc5ba58b3d56155caf
M navigation/navigation-safe-args-gradle-plugin/build.gradle
M navigation/navigation-safe-args-gradle-plugin/src/main/kotlin/androidx/navigation/safeargs/gradle/SafeArgsPlugin.kt
il...@google.com <il...@google.com> #3
Do you know if I can try this out in a snapshot or has it been published under a version name? (sorry, things in gerrit still confuse me so maybe its already clear that this is fixed and shipped!)
da...@gmail.com <da...@gmail.com> #4
Yes, you can follow the
Description
Version used: 1.0.0-alpha05
Devices/Android versions reproduced on: Pixel 2 (Pie) / Emulator Nougat / Pie
I Stumbled on this stacktrace in a project that use the new navigation component:
java.lang.NumberFormatException: For input string: "TRANSACTION_NAME"
at java.lang.Integer.parseInt(Integer.java:615)
at java.lang.Integer.valueOf(Integer.java:801)
at androidx.navigation.fragment.FragmentNavigator.isBackStackEqual(FragmentNavigator.java:252)
at androidx.navigation.fragment.FragmentNavigator$1.onBackStackChanged(FragmentNavigator.java:83)
at androidx.fragment.app.FragmentManagerImpl.reportBackStackChanged(FragmentManager.java:2733)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2439)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2372)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:884)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:827)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:874)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:827)
at androidx.fragment.app.FragmentActivity.onBackPressed(FragmentActivity.java:190)
at android.app.Activity.onKeyUp(Activity.java:3082)
In one of my fragment I manage an internal fragment transaction
requireFragmentManager().beginTransaction()
.addToBackStack("TRANSACTION_NAME")
.commit()
from the fragment doing this I navigate to another using the nav graph and when i press back that stack trace pop up and the app crashes.
If i use navController.navigateUp() nothing happens.
Looking in the code of FragmentNavigator I see
Integer.valueOf(mFragmentManager
.getBackStackEntryAt(fragmentBackStackIndex--)
.getName())
apparently you assume any back stack entry name is an integer.
Is this a design decision? Does that means I can't use fragment transactions on my own if I use the navigation component?
I honestly only use this to detect the user pressing back in my fragment without having to rely on the activity forwarding the information cause I have an overlay view on top of my fragment that is supposed to go away when the user press back and I don't have an `onBackPressed()` on the fragment.