Fixed
Status Update
Comments
il...@google.com <il...@google.com>
il...@google.com <il...@google.com>
da...@google.com <da...@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
Description
Version used: android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha01
As the title says, the safe args plugin generates invalid code when argument names contain a period. I would argue that the plugin should generate valid code for periods. I've seen codebases that use class package names as part of the bundle key. Sanitizing the names to replace period with an underscore would allow for easier migration to the Navigation Component.
Some code samples:
```
<fragment
android:id="@+id/firstController"
android:name="com.bluelinelabs.conductor.demo.controllers.ArchNavigationDemoController"
android:label="ArchNavigationDemoController1">
<argument android:name="NavigationDemoController.index" android:defaultValue="0" app:type="integer"/>
</fragment>
```
```
public int getNavigationDemoController.index() {
return NavigationDemoController.index;
}
```
```
public static ArchNavigationDemoControllerArgs fromBundle(Bundle bundle) {
ArchNavigationDemoControllerArgs result = new ArchNavigationDemoControllerArgs();
if (bundle.containsKey("NavigationDemoController.index")) {
result.NavigationDemoController.index = bundle.getInt("NavigationDemoController.index");
}
}
```