Bug 1277978 - Part 4 - Actually cache the recent tabs count when it updates. r=liuche

MozReview-Commit-ID: JUsM3qdxhIr

--HG--
extra : rebase_source : 77803ad4760a09088ce96440ef070ce7582673fe
extra : source : cbb19ca2d2454c1d4f938f96e0e34f54d93bf006
This commit is contained in:
Jan Henning 2016-09-10 13:51:35 +02:00
Родитель 61e7471407
Коммит a9f09e54eb
2 изменённых файлов: 23 добавлений и 0 удалений

Просмотреть файл

@ -39,6 +39,8 @@ public class CombinedHistoryAdapter extends RecyclerView.Adapter<CombinedHistory
OLDER_THAN_SIX_MONTHS
}
private HomeFragment.PanelStateChangeListener panelStateChangeListener;
private Cursor historyCursor;
private DevicesUpdateHandler devicesUpdateHandler;
private int deviceCount = 0;
@ -57,6 +59,11 @@ public class CombinedHistoryAdapter extends RecyclerView.Adapter<CombinedHistory
this.setHasStableIds(true);
}
public void setPanelStateChangeListener(
HomeFragment.PanelStateChangeListener panelStateChangeListener) {
this.panelStateChangeListener = panelStateChangeListener;
}
@UiThread
public void setLinearLayoutManager(LinearLayoutManager linearLayoutManager) {
this.linearLayoutManager = linearLayoutManager;
@ -136,6 +143,10 @@ public class CombinedHistoryAdapter extends RecyclerView.Adapter<CombinedHistory
} else {
notifyItemRemoved(RECENT_TABS_SMARTFOLDER_INDEX);
}
if (countReliable) {
panelStateChangeListener.setCachedRecentTabsCount(recentTabsCount);
}
}
});
}

Просмотреть файл

@ -111,6 +111,9 @@ public class CombinedHistoryPanel extends HomeFragment implements RemoteClientsD
super.onCreate(savedInstance);
mHistoryAdapter = new CombinedHistoryAdapter(getResources());
if (mPanelStateChangeListener != null) {
mHistoryAdapter.setPanelStateChangeListener(mPanelStateChangeListener);
}
mClientsAdapter = new ClientsAdapter(getContext());
// The RecentTabsAdapter doesn't use a cursor and therefore can't use the CursorLoader's
// onLoadFinished() callback for updating the panel state when the closed tab count changes.
@ -239,6 +242,15 @@ public class CombinedHistoryPanel extends HomeFragment implements RemoteClientsD
recentTabsText.setText(R.string.home_last_tabs_empty);
}
@Override
public void setPanelStateChangeListener(
PanelStateChangeListener panelStateChangeListener) {
super.setPanelStateChangeListener(panelStateChangeListener);
if (mHistoryAdapter != null) {
mHistoryAdapter.setPanelStateChangeListener(panelStateChangeListener);
}
}
@Override
public void restoreData(Bundle data) {
if (mRecyclerView != null) {