Rebind recycler views if launcher activity restarted

Bug: 185038312
Test: manual
TL;DR;;
What was attempted but was too much refactoring of the code.

Failed attempt #1: try re triggering the search.
This was not trivial as SearchSession object is yet created.

Failed attempt #2: Restoring AdapterItems in AlphabeticalAppsList
This meant AdapterItems class and also it's children
had to extend Parceleable object.

Ultimate fix:
Original issue of dupe view id among slice and work recyclerview
should be fixed. And restoring should just work.

Change-Id: I1bddd6aa5bc736ade3b02f69aa947d64cfa467d6
This commit is contained in:
Hyunyoung Song
2021-06-28 21:48:42 -07:00
parent 62e7c0bccb
commit 0b9537e6fc
2 changed files with 7 additions and 3 deletions

View File

@@ -184,16 +184,19 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
} catch (Exception e) {
Log.e("AllAppsContainerView", "restoreInstanceState viewId = 0", e);
}
Bundle state = (Bundle) sparseArray.get(R.id.work_tab_state_id, null);
if (state != null) {
int currentPage = state.getInt(BUNDLE_KEY_CURRENT_PAGE, 0);
if (currentPage != 0) {
rebindAdapters(true);
mViewPager.setCurrentPage(currentPage);
rebindAdapters(true);
} else {
mSearchUiManager.resetSearch();
}
}
}
}
@Override
protected void dispatchSaveInstanceState(SparseArray<Parcelable> container) {