Fix Settings home lifecycle

Bug: 27330440
Bug: 26268813
Change-Id: Ibb3729c9872be2488db3741ec72ba5a43e66db5f
This commit is contained in:
Jason Monk
2016-03-16 14:27:12 -04:00
parent 1a1ad649c2
commit d11cca0168

View File

@@ -58,11 +58,14 @@ public class DashboardSummary extends InstrumentedFragment
private static final String SUGGESTIONS = "suggestions"; private static final String SUGGESTIONS = "suggestions";
private static final String EXTRA_SCROLL_POSITION = "scroll_position";
private FocusRecyclerView mDashboard; private FocusRecyclerView mDashboard;
private DashboardAdapter mAdapter; private DashboardAdapter mAdapter;
private SummaryLoader mSummaryLoader; private SummaryLoader mSummaryLoader;
private ConditionManager mConditionManager; private ConditionManager mConditionManager;
private SuggestionParser mSuggestionParser; private SuggestionParser mSuggestionParser;
private LinearLayoutManager mLayoutManager;
@Override @Override
protected int getMetricsCategory() { protected int getMetricsCategory() {
@@ -133,17 +136,28 @@ public class DashboardSummary extends InstrumentedFragment
return inflater.inflate(R.layout.dashboard, container, false); return inflater.inflate(R.layout.dashboard, container, false);
} }
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(EXTRA_SCROLL_POSITION, mLayoutManager.findFirstVisibleItemPosition());
}
@Override @Override
public void onViewCreated(View view, Bundle bundle) { public void onViewCreated(View view, Bundle bundle) {
mDashboard = (FocusRecyclerView) view.findViewById(R.id.dashboard_container); mDashboard = (FocusRecyclerView) view.findViewById(R.id.dashboard_container);
LinearLayoutManager llm = new LinearLayoutManager(getContext()); mLayoutManager = new LinearLayoutManager(getContext());
llm.setOrientation(LinearLayoutManager.VERTICAL); mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mDashboard.setLayoutManager(llm); if (bundle != null) {
int scrollPosition = bundle.getInt(EXTRA_SCROLL_POSITION);
mLayoutManager.scrollToPosition(scrollPosition);
}
mDashboard.setLayoutManager(mLayoutManager);
mDashboard.setHasFixedSize(true); mDashboard.setHasFixedSize(true);
mDashboard.setListener(this); mDashboard.setListener(this);
mAdapter = new DashboardAdapter(getContext()); mAdapter = new DashboardAdapter(getContext());
mAdapter.setConditions(mConditionManager.getConditions()); mAdapter.setConditions(mConditionManager.getConditions());
mAdapter.setSuggestions(mSuggestionParser); mAdapter.setSuggestions(mSuggestionParser);
mDashboard.setAdapter(mAdapter);
mSummaryLoader.setAdapter(mAdapter); mSummaryLoader.setAdapter(mAdapter);
ConditionAdapterUtils.addDismiss(mDashboard); ConditionAdapterUtils.addDismiss(mDashboard);
@@ -164,7 +178,6 @@ public class DashboardSummary extends InstrumentedFragment
// recheck to see if any suggestions have been changed. // recheck to see if any suggestions have been changed.
mAdapter.setSuggestions(mSuggestionParser); mAdapter.setSuggestions(mSuggestionParser);
mDashboard.setAdapter(mAdapter);
long delta = System.currentTimeMillis() - start; long delta = System.currentTimeMillis() - start;
Log.d(TAG, "rebuildUI took: " + delta + " ms"); Log.d(TAG, "rebuildUI took: " + delta + " ms");