Bug 1410221: Rm duplicated code in openContextMenu. r=liuche draft
authorMichael Comella <michael.l.comella@gmail.com>
Mon, 23 Oct 2017 15:06:03 -0700
changeset 689877 6d3716f1a1b3499177f1619f5ecbf857e1622386
parent 689876 fb85df4bacd6a308692dcc64171f2e496394c254
child 689878 7580c9092afa085d396c62336c01d898b6dac2c5
child 689879 f3e6b74e74a2c3e3353d98a144cada41c96188c1
push id87125
push usermichael.l.comella@gmail.com
push dateWed, 01 Nov 2017 02:42:22 +0000
reviewersliuche
bugs1410221
milestone58.0a1
Bug 1410221: Rm duplicated code in openContextMenu. r=liuche I verified this worked by checking the UITelemetry logs. MozReview-Commit-ID: IlD8CuxsUSA
mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/StreamRecyclerAdapter.java
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/StreamRecyclerAdapter.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/StreamRecyclerAdapter.java
@@ -323,20 +323,16 @@ public class StreamRecyclerAdapter exten
                 && viewType != RowItemType.TOP_STORIES_ITEM.getViewType()) {
             // Headers (containing topsites and/or the highlights title) do their own click handling as needed
             return false;
         }
 
         return true;
     }
 
-    /**
-     * @param snackbarAnchor See {@link ActivityStreamContextMenu#show(View, ActivityStreamTelemetry.Extras.Builder, ActivityStreamContextMenu.MenuMode, WebpageModel, boolean, HomePager.OnUrlOpenListener, HomePager.OnUrlOpenInBackgroundListener, int, int)}
-     *                       for additional details.
-     */
     private void openContextMenu(final WebpageItemRow webpageItemRow, final int position, final View snackbarAnchor,
             @NonNull final String interactionExtra) {
         final WebpageRowModel model = (WebpageRowModel) recyclerViewModel.get(position);
 
         final String sourceType;
         final int actionPosition;
         final ActivityStreamContextMenu.MenuMode menuMode;
 
@@ -351,54 +347,54 @@ public class StreamRecyclerAdapter exten
             actionPosition = getTopStoriesIndexFromAdapterPosition(position);
             menuMode = ActivityStreamContextMenu.MenuMode.TOPSTORY;
         }
 
         extras.set(ActivityStreamTelemetry.Contract.SOURCE_TYPE, sourceType)
               .set(ActivityStreamTelemetry.Contract.ACTION_POSITION, actionPosition)
               .set(ActivityStreamTelemetry.Contract.INTERACTION, interactionExtra);
 
-        ActivityStreamContextMenu.show(snackbarAnchor,
-                extras,
-                menuMode,
-                model,
+        openContextMenuInner(snackbarAnchor, extras, menuMode, model,
                 /* shouldOverrideWithImageProvider */ true, // we use image providers in HighlightItem.pageIconLayout.
-                onUrlOpenListener, onUrlOpenInBackgroundListener,
                 webpageItemRow.getTileWidth(), webpageItemRow.getTileHeight());
+    }
 
-        Telemetry.sendUIEvent(
-                TelemetryContract.Event.SHOW,
-                TelemetryContract.Method.CONTEXT_MENU,
-                extras.build()
-        );
+    private void openContextMenu(final TopSite topSite, final int absolutePosition, final View snackbarAnchor,
+            final int faviconWidth, final int faviconHeight) {
+        ActivityStreamTelemetry.Extras.Builder extras = ActivityStreamTelemetry.Extras.builder()
+                .forTopSite(topSite)
+                .set(ActivityStreamTelemetry.Contract.ACTION_POSITION, absolutePosition);
+
+        openContextMenuInner(snackbarAnchor, extras, ActivityStreamContextMenu.MenuMode.TOPSITE, topSite,
+                /* shouldOverrideWithImageProvider */ false, // we only use favicons for top sites.
+                faviconWidth, faviconHeight);
     }
 
     /**
      * @param snackbarAnchor See {@link ActivityStreamContextMenu#show(View, ActivityStreamTelemetry.Extras.Builder, ActivityStreamContextMenu.MenuMode, WebpageModel, boolean, HomePager.OnUrlOpenListener, HomePager.OnUrlOpenInBackgroundListener, int, int)}
      *                       for additional details.
      */
-    private void openContextMenu(final TopSite topSite, final int absolutePosition, final View snackbarAnchor,
+    private void openContextMenuInner(final View snackbarAnchor, final ActivityStreamTelemetry.Extras.Builder extras,
+            final ActivityStreamContextMenu.MenuMode menuMode, final WebpageModel webpageModel,
+            final boolean shouldOverrideWithImageProvider,
             final int faviconWidth, final int faviconHeight) {
-        ActivityStreamTelemetry.Extras.Builder extras = ActivityStreamTelemetry.Extras.builder()
-                .forTopSite(topSite)
-                .set(ActivityStreamTelemetry.Contract.ACTION_POSITION, absolutePosition);
-
         ActivityStreamContextMenu.show(snackbarAnchor,
                 extras,
-                ActivityStreamContextMenu.MenuMode.TOPSITE,
-                topSite,
-                /* shouldOverrideWithImageProvider */ false, // we only use favicons for top sites.
+                menuMode,
+                webpageModel,
+                shouldOverrideWithImageProvider,
                 onUrlOpenListener, onUrlOpenInBackgroundListener,
                 faviconWidth, faviconHeight);
 
         Telemetry.sendUIEvent(
                 TelemetryContract.Event.SHOW,
                 TelemetryContract.Method.CONTEXT_MENU,
                 extras.build()
         );
+
     }
 
     @Override
     public int getItemCount() {
         return recyclerViewModel.size();
     }
 
     public void swapHighlights(List<Highlight> highlights) {