Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 3ba83f0a97f9cb645b95dc6a5b2ac02b4f159a23
Author: Ian Lake <ilake@google.com>
Date: Thu Mar 21 14:19:27 2019
Remove argument Bundle from FragmentFactory#instantiate
Provide a clearer separation between what
instantiate() is supposed to do (just
construct the class instance) versus what is
the responsibility of the caller (set the
arguments on the resulting Fragment).
As arguments can change at any time, it doesn't
make as much sense to use them at instantiation
time.
Test: tests still pass
Fixes: 128836103
Change-Id: I8018f4963ace5e58144ed1596c3b1e0b46638a7e
M fragment/api/1.1.0-alpha06.txt
M fragment/api/current.txt
M fragment/src/androidTest/java/androidx/fragment/app/FragmentFactoryTest.kt
M fragment/src/main/java/androidx/fragment/app/Fragment.java
M fragment/src/main/java/androidx/fragment/app/FragmentFactory.java
M fragment/src/main/java/androidx/fragment/app/FragmentManagerImpl.java
M fragment/src/main/java/androidx/fragment/app/FragmentState.java
M fragment/src/main/java/androidx/fragment/app/FragmentTabHost.java
M fragment/testing/api/1.1.0-alpha06.txt
M fragment/testing/api/current.txt
M fragment/testing/src/androidTest/java/androidx/fragment/app/testing/FragmentScenarioTest.kt
M fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.java
M fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.kt
M navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorTest.kt
M navigation/fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.java
M preference/build.gradle
M preference/src/main/java/androidx/preference/PreferenceFragmentCompat.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentTabsPager.java
M samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/SearchSupportActivity.java
M samples/SupportPreferenceDemos/src/main/java/com/example/android/supportpreference/FragmentSupportPreferencesLeanback.java
M samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/LeanbackPreferences.java
https://android-review.googlesource.com/932496
https://goto.google.com/android-sha1/3ba83f0a97f9cb645b95dc6a5b2ac02b4f159a23
Branch: androidx-master-dev
commit 3ba83f0a97f9cb645b95dc6a5b2ac02b4f159a23
Author: Ian Lake <ilake@google.com>
Date: Thu Mar 21 14:19:27 2019
Remove argument Bundle from FragmentFactory#instantiate
Provide a clearer separation between what
instantiate() is supposed to do (just
construct the class instance) versus what is
the responsibility of the caller (set the
arguments on the resulting Fragment).
As arguments can change at any time, it doesn't
make as much sense to use them at instantiation
time.
Test: tests still pass
Fixes: 128836103
Change-Id: I8018f4963ace5e58144ed1596c3b1e0b46638a7e
M fragment/api/1.1.0-alpha06.txt
M fragment/api/current.txt
M fragment/src/androidTest/java/androidx/fragment/app/FragmentFactoryTest.kt
M fragment/src/main/java/androidx/fragment/app/Fragment.java
M fragment/src/main/java/androidx/fragment/app/FragmentFactory.java
M fragment/src/main/java/androidx/fragment/app/FragmentManagerImpl.java
M fragment/src/main/java/androidx/fragment/app/FragmentState.java
M fragment/src/main/java/androidx/fragment/app/FragmentTabHost.java
M fragment/testing/api/1.1.0-alpha06.txt
M fragment/testing/api/current.txt
M fragment/testing/src/androidTest/java/androidx/fragment/app/testing/FragmentScenarioTest.kt
M fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.java
M fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.kt
M navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorTest.kt
M navigation/fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.java
M preference/build.gradle
M preference/src/main/java/androidx/preference/PreferenceFragmentCompat.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentTabsPager.java
M samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/SearchSupportActivity.java
M samples/SupportPreferenceDemos/src/main/java/com/example/android/supportpreference/FragmentSupportPreferencesLeanback.java
M samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/LeanbackPreferences.java
ta...@gmail.com <ta...@gmail.com> #3
Woot woot
il...@google.com <il...@google.com> #4
We've deprecated the FragmentFactory.instantiate(ClassLoader, String, android.os.Bundle?) method and switched all of our code to use the new instantiate(ClassLoader, String) for Fragment 1.1.0-alpha06.
The deprecated API will be removed in a later release.
The deprecated API will be removed in a later release.
Description
Version used: 1.1.0-alpha05
FragmentFactory has the method
public Fragment instantiate(@NonNull ClassLoader classLoader, @NonNull String className, @Nullable Bundle args)
but that method doesn't call setArguments(). While the Javadoc specifically calls this out, it is still confusing. The stated use case of constructing a different Fragment based on the arguments doesn't make much sense since developers can all setArguments() at any point after the fact (so needing a separate class for different arguments breaks down).