Bug 1300144 - Pre: pass mUrlOpenInBackgroundListener into HighlightsItem r?sebastian draft
authorAndrzej Hunt <ahunt@mozilla.com>
Wed, 19 Oct 2016 15:41:44 -0700
changeset 427178 25d59819f5aec22ce083dd81168158d18346317d
parent 427177 98e4cbfef0c65ace9b4214c62d10b1242192a70f
child 427179 be5259cc18efcf0b920d748d7b9e123cc245a8ce
push id32952
push userahunt@mozilla.com
push dateWed, 19 Oct 2016 23:43:13 +0000
reviewerssebastian
bugs1300144
milestone52.0a1
Bug 1300144 - Pre: pass mUrlOpenInBackgroundListener into HighlightsItem r?sebastian This will be needed for opening background/private tabs from the highlights menu. MozReview-Commit-ID: 8wvFuTgl2SP
mobile/android/base/java/org/mozilla/gecko/home/HomeFragment.java
mobile/android/base/java/org/mozilla/gecko/home/activitystream/ActivityStream.java
mobile/android/base/java/org/mozilla/gecko/home/activitystream/ActivityStreamHomeFragment.java
mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamItem.java
mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamRecyclerAdapter.java
--- a/mobile/android/base/java/org/mozilla/gecko/home/HomeFragment.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/HomeFragment.java
@@ -72,17 +72,17 @@ public abstract class HomeFragment exten
 
     // Whether the fragment has loaded its content
     private boolean mIsLoaded;
 
     // On URL open listener
     protected OnUrlOpenListener mUrlOpenListener;
 
     // Helper for opening a tab in the background.
-    private OnUrlOpenInBackgroundListener mUrlOpenInBackgroundListener;
+    protected OnUrlOpenInBackgroundListener mUrlOpenInBackgroundListener;
 
     protected PanelStateChangeListener mPanelStateChangeListener = null;
 
     /**
      * Listener to notify when a home panels' state has changed in a way that needs to be stored
      * for history/restoration. E.g. when a folder is opened/closed in bookmarks.
      */
     public interface PanelStateChangeListener {
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/ActivityStream.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/ActivityStream.java
@@ -59,18 +59,18 @@ public class ActivityStream extends Fram
                 .setOnItemClickListener(adapter);
 
         final Resources resources = getResources();
         desiredTileWidth = resources.getDimensionPixelSize(R.dimen.activity_stream_desired_tile_width);
         desiredTilesHeight = resources.getDimensionPixelSize(R.dimen.activity_stream_desired_tile_height);
         tileMargin = resources.getDimensionPixelSize(R.dimen.activity_stream_base_margin);
     }
 
-    void setOnUrlOpenListener(HomePager.OnUrlOpenListener listener) {
-        adapter.setOnUrlOpenListener(listener);
+    void setOnUrlOpenListeners(HomePager.OnUrlOpenListener onUrlOpenListener, HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener) {
+        adapter.setOnUrlOpenListeners(onUrlOpenListener, onUrlOpenInBackgroundListener);
     }
 
     public void load(LoaderManager lm) {
         CursorLoaderCallbacks callbacks = new CursorLoaderCallbacks();
 
         lm.initLoader(LOADER_ID_HIGHLIGHTS, null, callbacks);
         lm.initLoader(LOADER_ID_TOPSITES, null, callbacks);
     }
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/ActivityStreamHomeFragment.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/ActivityStreamHomeFragment.java
@@ -26,14 +26,14 @@ public class ActivityStreamHomeFragment
     }
 
     @Nullable
     @Override
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                              @Nullable Bundle savedInstanceState) {
         if (activityStream == null) {
             activityStream = (ActivityStream) inflater.inflate(R.layout.activity_stream, container, false);
-            activityStream.setOnUrlOpenListener(mUrlOpenListener);
+            activityStream.setOnUrlOpenListeners(mUrlOpenListener, mUrlOpenInBackgroundListener);
         }
 
         return activityStream;
     }
 }
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamItem.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamItem.java
@@ -77,17 +77,19 @@ public abstract class StreamItem extends
         final TextView vLabel;
         final TextView vTimeSince;
         final TextView vSourceView;
         final TextView vPageView;
 
         private Future<IconResponse> ongoingIconLoad;
         private int tilesMargin;
 
-        public HighlightItem(final View itemView) {
+        public HighlightItem(final View itemView,
+                             final HomePager.OnUrlOpenListener onUrlOpenListener,
+                             final HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener) {
             super(itemView);
 
             tilesMargin = itemView.getResources().getDimensionPixelSize(R.dimen.activity_stream_base_margin);
 
             vLabel = (TextView) itemView.findViewById(R.id.card_history_label);
             vTimeSince = (TextView) itemView.findViewById(R.id.card_history_time_since);
             vIconView = (FaviconView) itemView.findViewById(R.id.icon);
             vSourceView = (TextView) itemView.findViewById(R.id.card_history_source);
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamRecyclerAdapter.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/StreamRecyclerAdapter.java
@@ -19,23 +19,25 @@ import org.mozilla.gecko.widget.Recycler
 
 import java.util.EnumSet;
 
 public class StreamRecyclerAdapter extends RecyclerView.Adapter<StreamItem> implements RecyclerViewClickSupport.OnItemClickListener {
     private Cursor highlightsCursor;
     private Cursor topSitesCursor;
 
     private HomePager.OnUrlOpenListener onUrlOpenListener;
+    private HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener;
 
     private int tiles;
     private int tilesWidth;
     private int tilesHeight;
 
-    void setOnUrlOpenListener(HomePager.OnUrlOpenListener onUrlOpenListener) {
+    void setOnUrlOpenListeners(HomePager.OnUrlOpenListener onUrlOpenListener, HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener) {
         this.onUrlOpenListener = onUrlOpenListener;
+        this.onUrlOpenInBackgroundListener = onUrlOpenInBackgroundListener;
     }
 
     public void setTileSize(int tiles, int tilesWidth, int tilesHeight) {
         this.tilesWidth = tilesWidth;
         this.tilesHeight = tilesHeight;
         this.tiles = tiles;
 
         notifyDataSetChanged();
@@ -52,17 +54,17 @@ public class StreamRecyclerAdapter exten
 
     @Override
     public StreamItem onCreateViewHolder(ViewGroup parent, final int type) {
         final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
 
         if (type == TopPanel.LAYOUT_ID) {
             return new TopPanel(inflater.inflate(type, parent, false), onUrlOpenListener);
         } else if (type == HighlightItem.LAYOUT_ID) {
-            return new HighlightItem(inflater.inflate(type, parent, false));
+            return new HighlightItem(inflater.inflate(type, parent, false), onUrlOpenListener, onUrlOpenInBackgroundListener);
         } else {
             throw new IllegalStateException("Missing inflation for ViewType " + type);
         }
     }
 
     private int translatePositionToCursor(int position) {
         if (position == 0) {
             throw new IllegalArgumentException("Requested cursor position for invalid item");