Bug 1289242 - Allow overriding CombinedHistoryPanel adapter r?sebastian
This allows us to plug in a different adapter, which lets us override
the layouts/views used in the adapter, which in turn lets us modify the
styling of the items in the list.
MozReview-Commit-ID: GmSlhSWCGFv
--- a/mobile/android/base/java/org/mozilla/gecko/home/CombinedHistoryPanel.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/CombinedHistoryPanel.java
@@ -6,16 +6,17 @@
package org.mozilla.gecko.home;
import android.accounts.Account;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.res.Resources;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -111,24 +112,28 @@ public class CombinedHistoryPanel extend
/**
* Propagates level changes.
* @param level
* @return true if level changed, false otherwise.
*/
boolean changeLevel(PanelLevel level);
}
+ protected CombinedHistoryAdapter createAdapter(Resources resources, boolean bookmarksMode) {
+ return new CombinedHistoryAdapter(resources, bookmarksMode);
+ }
+
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
mBookmarksMode = getArguments() != null &&
getArguments().containsKey(ARG_BOOKMARKS_MODE);
- mHistoryAdapter = new CombinedHistoryAdapter(getResources(), mBookmarksMode);
+ mHistoryAdapter = createAdapter(getResources(), mBookmarksMode);
if (!mBookmarksMode) {
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.
// Instead, we provide it with independent callbacks as necessary.
mRecentTabsAdapter = new RecentTabsAdapter(getContext(),
mHistoryAdapter.getRecentTabsUpdateHandler(), getPanelStateUpdateHandler());