Bug 1289242 - Allow overriding CombinedHistoryPanel adapter r?sebastian draft
authorAndrzej Hunt <ahunt@mozilla.com>
Thu, 28 Jul 2016 14:26:42 -0700
changeset 399219 08937b69d747b7da0592ec7115f5bfc3667dd577
parent 399218 85ad47d084db51ee4676791c2491457ad14fa1e2
child 399220 003f241995dacb66aa20de8ac1c996da224702d5
push id25764
push userahunt@mozilla.com
push dateWed, 10 Aug 2016 17:18:33 +0000
reviewerssebastian
bugs1289242
milestone51.0a1
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
mobile/android/base/java/org/mozilla/gecko/home/CombinedHistoryPanel.java
--- 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());