Fixed
Status Update
Comments
jb...@google.com <jb...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 1d99479f78c11b2a5189dd1b96811f469682dea8
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Tue Oct 23 15:31:38 2018
Improve AndroidX TransitionSet behavior
1) Allow override values for a children of TransitionSet. For example for usages like this:
TransitionSet set = new TransitionSet().setDuration(300);
Fade fade = new Fade();
set.addTransition(fade);
fade.setDuration(100);
The result duration applied for fade transition is still 300. And it breaks all the flexibility of configuring sets.
The reason of it is clone() method which will be executed in beginDelayedTransition. And as part of clone() implementation of TransitionSet the children will be re-added to the new cloned set and set's duration will be re-applied again. To fix it I changed how we add transitions into set in clone().
2) Recently we had a bug about TransitionSet will crash during inflation if we provide duration for it via xml. I fixed similar issue for applying a part motion.
Test: added new tests for both issues
Bug: 64644617
Change-Id: Ie55dc7bd8c1dffc452988950e3a836afa9b6fa38
M transition/src/androidTest/java/androidx/transition/TransitionInflaterTest.java
M transition/src/androidTest/java/androidx/transition/TransitionSetTest.java
M transition/src/androidTest/res/transition/transition_set.xml
M transition/src/main/java/androidx/transition/TransitionSet.java
https://android-review.googlesource.com/803493
https://goto.google.com/android-sha1/1d99479f78c11b2a5189dd1b96811f469682dea8
Branch: androidx-master-dev
commit 1d99479f78c11b2a5189dd1b96811f469682dea8
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Tue Oct 23 15:31:38 2018
Improve AndroidX TransitionSet behavior
1) Allow override values for a children of TransitionSet. For example for usages like this:
TransitionSet set = new TransitionSet().setDuration(300);
Fade fade = new Fade();
set.addTransition(fade);
fade.setDuration(100);
The result duration applied for fade transition is still 300. And it breaks all the flexibility of configuring sets.
The reason of it is clone() method which will be executed in beginDelayedTransition. And as part of clone() implementation of TransitionSet the children will be re-added to the new cloned set and set's duration will be re-applied again. To fix it I changed how we add transitions into set in clone().
2) Recently we had a bug about TransitionSet will crash during inflation if we provide duration for it via xml. I fixed similar issue for applying a part motion.
Test: added new tests for both issues
Bug: 64644617
Change-Id: Ie55dc7bd8c1dffc452988950e3a836afa9b6fa38
M transition/src/androidTest/java/androidx/transition/TransitionInflaterTest.java
M transition/src/androidTest/java/androidx/transition/TransitionSetTest.java
M transition/src/androidTest/res/transition/transition_set.xml
M transition/src/main/java/androidx/transition/TransitionSet.java
jb...@google.com <jb...@google.com> #3
Fixed and will be released in androidx.transition:transition:1.1.0-alpha1
wb...@gmail.com <wb...@gmail.com> #4
Here are my observations with two Navigation versions:
2.3.5
-example.com/user/{userName}/details takes me to exampleFragment, not userProfile (incorrect)
- backbutton: correctly takes me back to the QR scanning app which I opened the URL with (correct)
- up button: takes me to leaderboard (correct)
2.4.0
-example.com/user/{userName}/details takes me to userProfile (correct)
- backbutton: takes me back to exampleFragment (incorrect, it should take me back to the qr scanning app)
- up button: takes me back to exampleFragment (incorrect, it should take me back to the leaderboard)
- Does the fix in 2.4.1 fixes both back and up button (when coming from another app). And when navigating using URI from within the app itself, both back or up button are identical and go back to the previous screen (no intermediate startdestinations from nested graphs) ?
- Any idea how we can already test 2.4.1 ?
Thanks
Wim
2.3.5
-
- backbutton: correctly takes me back to the QR scanning app which I opened the URL with (correct)
- up button: takes me to leaderboard (correct)
2.4.0
-
- backbutton: takes me back to exampleFragment (incorrect, it should take me back to the qr scanning app)
- up button: takes me back to exampleFragment (incorrect, it should take me back to the leaderboard)
- Does the fix in 2.4.1 fixes both back and up button (when coming from another app). And when navigating using URI from within the app itself, both back or up button are identical and go back to the previous screen (no intermediate startdestinations from nested graphs) ?
- Any idea how we can already test 2.4.1 ?
Thanks
Wim
jb...@google.com <jb...@google.com> #5
You can follow the
wb...@gmail.com <wb...@gmail.com> #6
Here are my observations with 2.5.0-SNAPSHOT (build id: 8144622)
-example.com/user/{userName}/details takes me to userProfile (correct)
- backbutton: takes me back to other app (correct)
- up button: takes me back to exampleFragment, then Leaderboard (correct, intermediate start destinations are present)
-
- backbutton: takes me back to other app (correct)
- up button: takes me back to exampleFragment, then Leaderboard (correct, intermediate start destinations are present)
Description
Version used: 2.4.0-rc01
Devices/Android versions reproduced on:
Pixel 6 / Android 12
In the example project I have the following nested nav graph structure:
nav_graph{ startDestination=home
home {...}
list { startDestination=leaderboard
leaderboard
exampleNestedGraph { startDestination=exampleFragment
exampleFragment - deepLink="
userProfile - deepLink="
}
}
form {...}
}
Following the deep link:
Then clicking back pops to the exampleFragment
Expected: Clicking back again takes the user to the leaderboard fragment, then clicking back a final time takes the user back to the home fragment.
Actual: Clicking back takes the user to the home fragment, skipping the leaderboard fragment.
I've also updated the bottomNavView_DeepLink_HandlesIntent_BackGoesToList test to test this case
It looks like this was introduced with