Bug 1410221: Rm unnecessary context param from ActivityStreamContextMenu.show. r=liuche draft
authorMichael Comella <michael.l.comella@gmail.com>
Mon, 23 Oct 2017 14:57:57 -0700
changeset 689876 fb85df4bacd6a308692dcc64171f2e496394c254
parent 689875 207a2eda79398f880332391c4559763fff2d51ae
child 689877 6d3716f1a1b3499177f1619f5ecbf857e1622386
push id87125
push usermichael.l.comella@gmail.com
push dateWed, 01 Nov 2017 02:42:22 +0000
reviewersliuche
bugs1410221
milestone58.0a1
Bug 1410221: Rm unnecessary context param from ActivityStreamContextMenu.show. r=liuche MozReview-Commit-ID: LvPCaFbwGEV
mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/StreamRecyclerAdapter.java
mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/ActivityStreamContextMenu.java
mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/BottomSheetContextMenu.java
mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/PopupContextMenu.java
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testActivityStreamContextMenu.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
@@ -324,17 +324,17 @@ public class StreamRecyclerAdapter exten
             // 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(Context, View, ActivityStreamTelemetry.Extras.Builder, ActivityStreamContextMenu.MenuMode, WebpageModel, boolean, HomePager.OnUrlOpenListener, HomePager.OnUrlOpenInBackgroundListener, int, int)}
+     * @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;
@@ -351,44 +351,42 @@ 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(webpageItemRow.itemView.getContext(),
-                snackbarAnchor,
+        ActivityStreamContextMenu.show(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()
         );
     }
 
     /**
-     * @param snackbarAnchor See {@link ActivityStreamContextMenu#show(Context, View, ActivityStreamTelemetry.Extras.Builder, ActivityStreamContextMenu.MenuMode, WebpageModel, boolean, HomePager.OnUrlOpenListener, HomePager.OnUrlOpenInBackgroundListener, int, int)}
+     * @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,
             final int faviconWidth, final int faviconHeight) {
         ActivityStreamTelemetry.Extras.Builder extras = ActivityStreamTelemetry.Extras.builder()
                 .forTopSite(topSite)
                 .set(ActivityStreamTelemetry.Contract.ACTION_POSITION, absolutePosition);
 
-        ActivityStreamContextMenu.show(snackbarAnchor.getContext(),
-                snackbarAnchor,
+        ActivityStreamContextMenu.show(snackbarAnchor,
                 extras,
                 ActivityStreamContextMenu.MenuMode.TOPSITE,
                 topSite,
                 /* shouldOverrideWithImageProvider */ false, // we only use favicons for top sites.
                 onUrlOpenListener, onUrlOpenInBackgroundListener,
                 faviconWidth, faviconHeight);
 
         Telemetry.sendUIEvent(
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/ActivityStreamContextMenu.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/ActivityStreamContextMenu.java
@@ -56,24 +56,23 @@ public abstract class ActivityStreamCont
     public abstract MenuItem getItemByID(int id);
 
     public abstract void show();
 
     public abstract void dismiss();
 
     private final MenuMode mode;
 
-    /* package-private */ ActivityStreamContextMenu(final Context context,
-                                                    final View snackbarAnchor,
+    /* package-private */ ActivityStreamContextMenu(final View snackbarAnchor,
                                                     final ActivityStreamTelemetry.Extras.Builder telemetryExtraBuilder,
                                                     final MenuMode mode,
                                                     final WebpageModel item,
                                                     HomePager.OnUrlOpenListener onUrlOpenListener,
                                                     HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener) {
-        this.context = context;
+        this.context = snackbarAnchor.getContext();
         this.snackbarAnchor = snackbarAnchor;
         this.item = item;
         this.telemetryExtraBuilder = telemetryExtraBuilder;
 
         this.mode = mode;
 
         this.onUrlOpenListener = onUrlOpenListener;
         this.onUrlOpenInBackgroundListener = onUrlOpenInBackgroundListener;
@@ -342,34 +341,31 @@ public abstract class ActivityStreamCont
 
     /**
      * @param anchor A view to anchor the Snackbar on. Don't use items in the recyclerView because these views can be
      *               removed from the view hierarchy when the recyclerView scrolls.
      * @param shouldOverrideIconWithImageProvider true if the favicon should be replaced with an image provider,
      *                                            if applicable, false otherwise.
      */
     @RobocopTarget
-    public static ActivityStreamContextMenu show(Context context,
-                                                      View anchor, ActivityStreamTelemetry.Extras.Builder telemetryExtraBuilder,
+    public static ActivityStreamContextMenu show(View anchor, ActivityStreamTelemetry.Extras.Builder telemetryExtraBuilder,
                                                       final MenuMode menuMode, final WebpageModel item,
                                                       final boolean shouldOverrideIconWithImageProvider,
                                                       HomePager.OnUrlOpenListener onUrlOpenListener,
                                                       HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener,
                                                       final int tilesWidth, final int tilesHeight) {
         final ActivityStreamContextMenu menu;
 
         if (!HardwareUtils.isTablet()) {
-            menu = new BottomSheetContextMenu(context,
-                    anchor,
+            menu = new BottomSheetContextMenu(anchor,
                     telemetryExtraBuilder, menuMode,
                     item, shouldOverrideIconWithImageProvider, onUrlOpenListener, onUrlOpenInBackgroundListener,
                     tilesWidth, tilesHeight);
         } else {
-            menu = new PopupContextMenu(context,
-                    anchor,
+            menu = new PopupContextMenu(anchor,
                     telemetryExtraBuilder, menuMode,
                     item, onUrlOpenListener, onUrlOpenInBackgroundListener);
         }
 
         menu.show();
         return menu;
     }
 }
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/BottomSheetContextMenu.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/BottomSheetContextMenu.java
@@ -41,33 +41,32 @@ import java.net.URISyntaxException;
     private final NavigationView navigationView;
 
     private final View content;
     private final View activityView;
 
     /** A reference, that represents the page domain, that allows a return value from an async task. */
     private String[] pageDomainTextReference = new String[] { "" };
 
-    public BottomSheetContextMenu(final Context context,
-                                  final View anchor,
+    public BottomSheetContextMenu(final View anchor,
                                   final ActivityStreamTelemetry.Extras.Builder telemetryExtraBuilder,
                                   final MenuMode mode,
                                   final WebpageModel item,
                                   final boolean shouldOverrideIconWithImageProvider,
                                   HomePager.OnUrlOpenListener onUrlOpenListener,
                                   HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener,
                                   final int tilesWidth, final int tilesHeight) {
 
-        super(context,
-                anchor,
+        super(anchor,
                 telemetryExtraBuilder,
                 mode,
                 item,
                 onUrlOpenListener,
                 onUrlOpenInBackgroundListener);
+        final Context context = anchor.getContext();
 
         // The View encompassing the activity area
         this.activityView = ((Activity) context).findViewById(android.R.id.content);
 
         bottomSheetDialog = new BottomSheetDialog(context);
         final LayoutInflater inflater = LayoutInflater.from(context);
         this.content = inflater.inflate(R.layout.activity_stream_contextmenu_bottomsheet, (ViewGroup) activityView, false);
 
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/PopupContextMenu.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/menu/PopupContextMenu.java
@@ -23,30 +23,29 @@ import org.mozilla.gecko.activitystream.
 /* package-private */ class PopupContextMenu
         extends ActivityStreamContextMenu {
 
     private final PopupWindow popupWindow;
     private final NavigationView navigationView;
 
     private final View anchor;
 
-    public PopupContextMenu(final Context context,
-                            View anchor,
+    public PopupContextMenu(final View anchor,
                             final ActivityStreamTelemetry.Extras.Builder telemetryExtraBuilder,
                             final MenuMode mode,
                             final WebpageModel item,
                             HomePager.OnUrlOpenListener onUrlOpenListener,
                             HomePager.OnUrlOpenInBackgroundListener onUrlOpenInBackgroundListener) {
-        super(context,
-                anchor,
+        super(anchor,
                 telemetryExtraBuilder,
                 mode,
                 item,
                 onUrlOpenListener,
                 onUrlOpenInBackgroundListener);
+        final Context context = anchor.getContext();
 
         this.anchor = anchor;
 
         final LayoutInflater inflater = LayoutInflater.from(context);
 
         View card = inflater.inflate(R.layout.activity_stream_contextmenu_popupmenu, null);
         navigationView = (NavigationView) card.findViewById(R.id.menu);
         navigationView.setNavigationItemSelectedListener(this);
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testActivityStreamContextMenu.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testActivityStreamContextMenu.java
@@ -226,17 +226,17 @@ public class testActivityStreamContextMe
 
     /**
      * Test that the menu shows the expected menu items for a given URL, and that these items have
      * the correct state.
      */
     private void testMenuForItem(WebpageModel item, boolean bookmarked, boolean pinned, boolean visited) {
         final View anchor = new View(getActivity());
         final ActivityStreamContextMenu menu = ActivityStreamContextMenu.show(
-                getActivity(), anchor, ActivityStreamTelemetry.Extras.builder(),
+                anchor, ActivityStreamTelemetry.Extras.builder(),
                 ActivityStreamContextMenu.MenuMode.HIGHLIGHT, item,
                 false, null, null, 100, 100);
 
         final int expectedBookmarkString;
         if (bookmarked) {
             expectedBookmarkString = R.string.bookmark_remove;
         } else {
             expectedBookmarkString = R.string.bookmark;