Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Please include a sample project that reproduces your issue.
co...@google.com <co...@google.com> #3
Here is the sample project.
Steps to reproduce:
1. Press on "Search" icon;
2. Write something;
3. Search this text, keyboard will be dismissed;
4. Tap on "Dialog" button;
5. Dissmiss dialog;
With the new 1.5.0 fragment library version text will be cleared in the search box after dismissing dialog.
In the version 1.4.1 and lower text in the search is not clearing and this is correct behaviour.
Please suggest some workarounds or how to fix this issue?
Steps to reproduce:
1. Press on "Search" icon;
2. Write something;
3. Search this text, keyboard will be dismissed;
4. Tap on "Dialog" button;
5. Dissmiss dialog;
With the new 1.5.0 fragment library version text will be cleared in the search box after dismissing dialog.
In the version 1.4.1 and lower text in the search is not clearing and this is correct behaviour.
Please suggest some workarounds or how to fix this issue?
il...@google.com <il...@google.com> #4
Hello, have you checked sample project? I hope it will help find the issue.
Description
Version used: 1.1.0-alplha01
Devices/Android versions reproduced on: Essential PH-1, Android 9.0 (PPR1.181005.034)
Attached a sample project to reproduce the issue. Essentially, given the component structure:
Activity:
supportFragmentManager -> HeadlessFragment
HeadlessFragment:
childFragmentManager -> HeadlessChildFragment
When the Activity is recreated, the state provided to the HeadlessChildFragment when recreating is null. However, logging the calls to onSaveInstanceState() it's clear that the Fragment's state is being saved, it's just failing to be restored. Running with FragmentManager.enableDebugLogging(true) gives the following output:
2018-11-20 12:59:46.293 17352-17352/ D/MainActivity: 218206560: onCreate(): savedInstanceState == null
2018-11-20 12:59:46.315 17352-17352/ V/FragmentManager: Commit: BackStackEntry{bc270bf}
2018-11-20 12:59:46.316 17352-17352/ D/FragmentManager: mName=null mIndex=-1 mCommitted=false
2018-11-20 12:59:46.316 17352-17352/ D/FragmentManager: Operations:
2018-11-20 12:59:46.316 17352-17352/ D/FragmentManager: Op #0: ADD ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:46.340 17352-17352/ V/FragmentManager: Run: BackStackEntry{bc270bf}
2018-11-20 12:59:46.343 17352-17352/ V/FragmentManager: add: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:46.343 17352-17352/ V/FragmentManager: Added fragment to active set ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:46.343 17352-17352/ V/FragmentManager: moveto CREATED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:46.343 17352-17352/ D/ParentHeadlessFragment: 48128908: onCreate() with savedInstanceState = null
2018-11-20 12:59:46.345 17352-17352/ V/FragmentManager: Commit: BackStackEntry{85b9824}
2018-11-20 12:59:46.345 17352-17352/ D/FragmentManager: mName=null mIndex=-1 mCommitted=false
2018-11-20 12:59:46.345 17352-17352/ D/FragmentManager: Operations:
2018-11-20 12:59:46.345 17352-17352/ D/FragmentManager: Op #0: ADD ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:46.345 17352-17352/ V/FragmentManager: moveto ACTIVITY_CREATED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:46.345 17352-17352/ V/FragmentManager: Run: BackStackEntry{85b9824}
2018-11-20 12:59:46.346 17352-17352/ V/FragmentManager: add: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:46.346 17352-17352/ V/FragmentManager: Added fragment to active set ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:46.346 17352-17352/ V/FragmentManager: moveto CREATED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:46.346 17352-17352/ D/ChildHeadlessFragment: 120778637: onCreate() with savedInstanceState = null
2018-11-20 12:59:46.346 17352-17352/ V/FragmentManager: moveto ACTIVITY_CREATED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:46.347 17352-17352/ V/FragmentManager: moveto STARTED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:46.347 17352-17352/ V/FragmentManager: moveto STARTED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:46.383 17352-17352/ W/ildfragmenttes: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2018-11-20 12:59:46.384 17352-17352/ W/ildfragmenttes: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2018-11-20 12:59:46.394 17352-17352/ V/FragmentManager: moveto RESUMED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:46.394 17352-17352/ V/FragmentManager: moveto RESUMED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
// Configuration changed:
2018-11-20 12:59:58.045 17352-17352/ V/FragmentManager: movefrom RESUMED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.045 17352-17352/ V/FragmentManager: movefrom RESUMED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.048 17352-17352/ V/FragmentManager: movefrom STARTED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.048 17352-17352/ V/FragmentManager: movefrom STARTED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.048 17352-17352/ D/MainActivity: 218206560: onSaveInstanceState()
2018-11-20 12:59:58.050 17352-17352/ D/ParentHeadlessFragment: 48128908: onSaveInstanceState()
2018-11-20 12:59:58.050 17352-17352/ D/ChildHeadlessFragment: 120778637: onSaveInstanceState()
// I suspect the issue is here, where the Bundle listed in the log is null:
2018-11-20 12:59:58.051 17352-17352/ V/FragmentManager: Saved state of ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}: null
2018-11-20 12:59:58.051 17352-17352/ V/FragmentManager: saveAllState: adding fragment (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e): ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.051 17352-17352/ V/FragmentManager: Saved state of ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}: Bundle[{android:support:fragments=androidx.fragment.app.FragmentManagerState@beee1bb}]
2018-11-20 12:59:58.051 17352-17352/ V/FragmentManager: saveAllState: adding fragment (c94b7470-c453-471f-9231-254d296d2ab1): ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.052 17352-17352/ V/FragmentManager: movefrom ACTIVITY_CREATED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.052 17352-17352/ V/FragmentManager: movefrom ACTIVITY_CREATED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.054 17352-17352/ V/FragmentManager: movefrom CREATED: ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.054 17352-17352/ V/FragmentManager: movefrom CREATED: ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.054 17352-17352/ V/FragmentManager: Removed fragment from active set ChildHeadlessFragment{732ef8d (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.055 17352-17352/ V/FragmentManager: Removed fragment from active set ParentHeadlessFragment{2de638c (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.088 17352-17352/ D/MainActivity: 178784293: onCreate(): savedInstanceState == Bundle[{android:viewHierarchyState=Bundle[{android:views={16908290=android.view.AbsSavedState$1@7ee69, 2131165191=androidx.appcompat.widget.Toolbar$SavedState@c3ab0ee, 2131165193=android.view.AbsSavedState$1@7ee69, 2131165199=android.view.AbsSavedState$1@7ee69, 2131165231=android.view.AbsSavedState$1@7ee69}}], android:support:fragments=androidx.fragment.app.FragmentManagerState@cfa098f, android:lastAutofillId=1073741823, android:fragments=android.app.FragmentManagerState@8f9d41c}]
2018-11-20 12:59:58.091 17352-17352/ V/FragmentManager: Instantiated fragment ParentHeadlessFragment{917afab (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.092 17352-17352/ V/FragmentManager: restoreAllState: active (c94b7470-c453-471f-9231-254d296d2ab1): ParentHeadlessFragment{917afab (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.092 17352-17352/ V/FragmentManager: restoreAllState: added (c94b7470-c453-471f-9231-254d296d2ab1): ParentHeadlessFragment{917afab (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.092 17352-17352/ V/FragmentManager: moveto CREATED: ParentHeadlessFragment{917afab (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.092 17352-17352/ D/ParentHeadlessFragment: 152547243: onCreate() with savedInstanceState = Bundle[{android:support:fragments=androidx.fragment.app.FragmentManagerState@beee1bb}]
2018-11-20 12:59:58.093 17352-17352/ V/FragmentManager: Instantiated fragment ChildHeadlessFragment{e7601a1 (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.093 17352-17352/ V/FragmentManager: restoreAllState: active (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e): ChildHeadlessFragment{e7601a1 (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.093 17352-17352/ V/FragmentManager: restoreAllState: added (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e): ChildHeadlessFragment{e7601a1 (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.093 17352-17352/ V/FragmentManager: moveto CREATED: ChildHeadlessFragment{e7601a1 (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.093 17352-17352/ D/ChildHeadlessFragment: 242614689: onCreate() with savedInstanceState = null
2018-11-20 12:59:58.107 17352-17352/ V/FragmentManager: moveto ACTIVITY_CREATED: ParentHeadlessFragment{917afab (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.107 17352-17352/ V/FragmentManager: moveto ACTIVITY_CREATED: ChildHeadlessFragment{e7601a1 (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.108 17352-17352/ V/FragmentManager: moveto STARTED: ParentHeadlessFragment{917afab (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.108 17352-17352/ V/FragmentManager: moveto STARTED: ChildHeadlessFragment{e7601a1 (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}
2018-11-20 12:59:58.127 17352-17352/ V/FragmentManager: moveto RESUMED: ParentHeadlessFragment{917afab (c94b7470-c453-471f-9231-254d296d2ab1) parent}
2018-11-20 12:59:58.127 17352-17352/ V/FragmentManager: moveto RESUMED: ChildHeadlessFragment{e7601a1 (e67b23a6-fe18-484d-b8d0-db2da9ee2a7e) child}