Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Commit

Permalink
Remove the send tabs menu item for private mode page (#2659)
Browse files Browse the repository at this point in the history
  • Loading branch information
keianhzo authored and bluemarvin committed Jan 23, 2020
1 parent badff03 commit bf1c535
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
import org.mozilla.vrbrowser.utils.AnimationHelper;
import org.mozilla.vrbrowser.utils.ConnectivityReceiver;
import org.mozilla.vrbrowser.utils.ServoUtils;
import org.mozilla.vrbrowser.utils.UrlUtils;

import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -1141,6 +1142,10 @@ private void startWidgetResize() {
}

private void showMenu() {
if (mAttachedWindow.getSession() == null) {
return;
}

if (mHamburgerMenu != null && mHamburgerMenu.isVisible()) {
// Release current selection menu to recreate it with different actions.
hideMenu();
Expand All @@ -1167,21 +1172,24 @@ public void onResize() {

@Override
public void onSwitchMode() {
int uaMode = mAttachedWindow.getSession().getUaMode();
if (uaMode == GeckoSessionSettings.USER_AGENT_MODE_DESKTOP) {
mHamburgerMenu.setUAMode(GeckoSessionSettings.USER_AGENT_MODE_MOBILE);
mAttachedWindow.getSession().setUaMode(GeckoSessionSettings.USER_AGENT_MODE_MOBILE);

} else {
mHamburgerMenu.setUAMode(GeckoSessionSettings.USER_AGENT_MODE_DESKTOP);
mAttachedWindow.getSession().setUaMode(GeckoSessionSettings.USER_AGENT_MODE_DESKTOP);
if (mAttachedWindow.getSession() != null) {
int uaMode = mAttachedWindow.getSession().getUaMode();
if (uaMode == GeckoSessionSettings.USER_AGENT_MODE_DESKTOP) {
mHamburgerMenu.setUAMode(GeckoSessionSettings.USER_AGENT_MODE_MOBILE);
mAttachedWindow.getSession().setUaMode(GeckoSessionSettings.USER_AGENT_MODE_MOBILE);

} else {
mHamburgerMenu.setUAMode(GeckoSessionSettings.USER_AGENT_MODE_DESKTOP);
mAttachedWindow.getSession().setUaMode(GeckoSessionSettings.USER_AGENT_MODE_DESKTOP);
}
}

hideMenu();
}
});
}

mHamburgerMenu.setSendTabEnabled(!UrlUtils.isPrivateAboutPage(getContext(), mAttachedWindow.getSession().getCurrentUri()));
mHamburgerMenu.setUAMode(mAttachedWindow.getSession().getUaMode());
mHamburgerMenu.show(UIWidget.KEEP_FOCUS);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.mozilla.vrbrowser.ui.widgets.menus;

import android.annotation.SuppressLint;
import android.content.Context;
import android.view.View;

Expand All @@ -13,6 +14,7 @@
import org.mozilla.vrbrowser.utils.ViewUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Optional;

public class HamburgerMenuWidget extends MenuWidget implements WidgetManagerDelegate.FocusChangeListener {
Expand All @@ -29,14 +31,14 @@ public interface MenuDelegate {
public static final int WINDOW_RESIZE = 1;
public static final int SWITCH_MODE = 2;

ArrayList<MenuItem> mItems;
HashMap<Integer, MenuItem> mItems;
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
Optional<MenuDelegate> mMenuDelegate;
boolean mSendTabEnabled = true;

public HamburgerMenuWidget(Context aContext) {
super(aContext, R.layout.hamburger_menu);
initialize();
createMenuItems();
}

private void initialize() {
Expand All @@ -45,6 +47,8 @@ private void initialize() {
R.drawable.context_menu_item_background,
R.drawable.context_menu_item_background_single);
mAdapter.updateLayoutId(R.layout.hamburger_menu_item);

updateMenuItems();
}

@Override
Expand Down Expand Up @@ -94,31 +98,39 @@ public void setMenuDelegate(MenuDelegate delegate) {
mMenuDelegate = Optional.ofNullable(delegate);
}

private void createMenuItems() {
mItems = new ArrayList<>();
@SuppressLint("UseSparseArrays")
private void updateMenuItems() {
mItems = new HashMap<>();

mItems.add(SEND_TAB,
new MenuItem(getContext().getString(R.string.hamburger_menu_send_tab),
R.drawable.ic_icon_tabs_sendtodevice,
() -> mMenuDelegate.ifPresent(MenuDelegate::onSendTab)));
if (mSendTabEnabled) {
mItems.put(SEND_TAB,
new MenuItem(getContext().getString(R.string.hamburger_menu_send_tab),
R.drawable.ic_icon_tabs_sendtodevice,
() -> mMenuDelegate.ifPresent(MenuDelegate::onSendTab)));
}

mItems.add(WINDOW_RESIZE,
mItems.put(WINDOW_RESIZE,
new MenuItem(getContext().getString(R.string.hamburger_menu_resize),
R.drawable.ic_icon_resize,
() -> mMenuDelegate.ifPresent(MenuDelegate::onResize)));

mItems.add(SWITCH_MODE,
mItems.put(SWITCH_MODE,
new MenuItem(getContext().getString(R.string.hamburger_menu_switch_to_desktop),
R.drawable.ic_icon_ua_default,
() -> mMenuDelegate.ifPresent(MenuDelegate::onSwitchMode)));

super.updateMenuItems(mItems);
super.updateMenuItems(new ArrayList<>(mItems.values()));

mWidgetPlacement.height = mItems.size() * WidgetPlacement.dpDimension(getContext(), R.dimen.hamburger_menu_item_height);
mWidgetPlacement.height += mBorderWidth * 2;
mWidgetPlacement.height += WidgetPlacement.dpDimension(getContext(), R.dimen.hamburger_menu_triangle_height);
}

public void setSendTabEnabled(boolean value) {
mSendTabEnabled = value;
updateMenuItems();
}

// FocusChangeListener

@Override
Expand Down