Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/appmenu/ChromeAppMenuPropertiesDelegate.java

Issue 1206673003: Merge java_staging/src into java/src. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java_staging/src/org/chromium/chrome/browser/appmenu/ChromeAppMenuPropertiesDelegate.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/appmenu/ChromeAppMenuPropertiesDelegate.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/appmenu/ChromeAppMenuPropertiesDelegate.java
deleted file mode 100644
index e7d92ad7d9cdd3fc8abd50ebd0676d0e3a770bde..0000000000000000000000000000000000000000
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/appmenu/ChromeAppMenuPropertiesDelegate.java
+++ /dev/null
@@ -1,223 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.appmenu;
-
-import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuItem;
-
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.BookmarkUtils;
-import org.chromium.chrome.browser.BookmarksBridge;
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.browser.ChromeBrowserProviderClient;
-import org.chromium.chrome.browser.Tab;
-import org.chromium.chrome.browser.UrlConstants;
-import org.chromium.chrome.browser.preferences.ManagedPreferencesUtils;
-import org.chromium.chrome.browser.preferences.PrefServiceBridge;
-import org.chromium.chrome.browser.share.ShareHelper;
-import org.chromium.chrome.browser.util.FeatureUtilities;
-import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
-import org.chromium.printing.PrintingController;
-
-/**
- * App Menu helper that handles hiding and showing menu items based on activity state.
- */
-public class ChromeAppMenuPropertiesDelegate implements AppMenuPropertiesDelegate {
- // Indices for different levels in drawable.btn_reload_stop.
- // Used only when preparing menu and refresh reload button in menu when tab
- // page load status changes.
- private static final int RELOAD_BUTTON_LEVEL_RELOAD = 0;
- private static final int RELOAD_BUTTON_LEVEL_STOP_LOADING = 1;
-
- protected MenuItem mReloadMenuItem;
-
- protected final ChromeActivity mActivity;
-
- public ChromeAppMenuPropertiesDelegate(ChromeActivity activity) {
- mActivity = activity;
- }
-
- @Override
- public boolean shouldShowAppMenu() {
- return mActivity.shouldShowAppMenu();
- }
-
- /**
- * Called every time the menu is shown. This assumes that the provided menu contains all the
- * items expected in the application menu (i.e. that the main menu has been inflated into it).
- */
- @Override
- public void prepareMenu(Menu menu) {
- // Exactly one of these will be true, depending on the type of menu showing.
- boolean isPageMenu;
- boolean isOverviewMenu;
- boolean isTabletEmptyModeMenu;
-
- boolean isOverview = mActivity.isInOverviewMode();
- boolean isIncognito = mActivity.getCurrentTabModel().isIncognito();
- Tab currentTab = mActivity.getActivityTab();
-
- // Determine which menu to show.
- if (mActivity.isTablet()) {
- isPageMenu = !isOverview && mActivity.getCurrentTabModel().getCount() != 0;
- isOverviewMenu = isOverview && mActivity.getCurrentTabModel().getCount() != 0;
- isTabletEmptyModeMenu = !isPageMenu && mActivity.getCurrentTabModel().getCount() == 0;
- } else {
- isPageMenu = !isOverview;
- isOverviewMenu = isOverview;
- isTabletEmptyModeMenu = false;
- }
-
- menu.setGroupVisible(R.id.PAGE_MENU, isPageMenu);
- menu.setGroupVisible(R.id.OVERVIEW_MODE_MENU, isOverviewMenu);
- menu.setGroupVisible(R.id.TABLET_EMPTY_MODE_MENU, isTabletEmptyModeMenu);
-
- if (isPageMenu && currentTab != null) {
- String url = currentTab.getUrl();
- boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_SCHEME)
- || url.startsWith(UrlConstants.CHROME_NATIVE_SCHEME);
-
- // Update the icon row items (not shown on tablet).
- menu.findItem(R.id.icon_row_menu_id).setVisible(!mActivity.isTablet());
- if (!mActivity.isTablet()) {
- // Disable the "Forward" menu item if there is no page to go to.
- MenuItem forwardMenuItem = menu.findItem(R.id.forward_menu_id);
- forwardMenuItem.setEnabled(currentTab.canGoForward());
-
- mReloadMenuItem = menu.findItem(R.id.reload_menu_id);
- mReloadMenuItem.setIcon(R.drawable.btn_reload_stop);
- loadingStateChanged(currentTab.isLoading());
-
- MenuItem bookmarkMenuItem = menu.findItem(R.id.bookmark_this_page_id);
- bookmarkMenuItem.setEnabled(BookmarksBridge.isEditBookmarksEnabled(
- mActivity.getActivityTab().getProfile().getOriginalProfile()));
- if (currentTab.getBookmarkId() != ChromeBrowserProviderClient.INVALID_BOOKMARK_ID) {
- bookmarkMenuItem.setIcon(R.drawable.btn_star_filled);
- bookmarkMenuItem.setChecked(true);
- bookmarkMenuItem.setTitleCondensed(mActivity.getString(R.string.edit_bookmark));
- } else {
- bookmarkMenuItem.setIcon(R.drawable.btn_star);
- bookmarkMenuItem.setChecked(false);
- bookmarkMenuItem.setTitleCondensed(null);
- }
- }
-
- // Hide "Recent tabs" in incognito mode or when sync can't be enabled.
- MenuItem recentTabsMenuItem = menu.findItem(R.id.recent_tabs_menu_id);
- recentTabsMenuItem.setVisible(!isIncognito && FeatureUtilities.canAllowSync(mActivity));
- recentTabsMenuItem.setTitle(R.string.menu_recent_tabs);
-
- // Don't allow "chrome://" pages to be shared.
- menu.findItem(R.id.share_row_menu_id).setVisible(!isChromeScheme);
-
- ShareHelper.configureDirectShareMenuItem(
- mActivity, menu.findItem(R.id.direct_share_menu_id));
-
- // Disable find in page on the native NTP.
- menu.findItem(R.id.find_in_page_id).setVisible(
- !currentTab.isNativePage() && currentTab.getWebContents() != null);
-
- // Hide 'Add to homescreen' on all chrome:// pages -- Android doesn't know how to direct
- // those URLs. Also hide it on incognito pages to avoid problems where users create
- // shortcuts in incognito mode and then open the webapp in regular mode. Also check if
- // creating shortcuts is supported at all.
- MenuItem homescreenItem = menu.findItem(R.id.add_to_homescreen_id);
- boolean canAddShortcutToHomescreen =
- BookmarkUtils.isAddToHomeIntentSupported(mActivity);
- homescreenItem.setVisible(
- canAddShortcutToHomescreen && !isChromeScheme && !isIncognito);
-
- // Hide request desktop site on all chrome:// pages except for the NTP. Check request
- // desktop site if it's activated on this page.
- MenuItem requestItem = menu.findItem(R.id.request_desktop_site_id);
- requestItem.setVisible(!isChromeScheme || currentTab.isNativePage());
- requestItem.setChecked(currentTab.getUseDesktopUserAgent());
- requestItem.setTitleCondensed(requestItem.isChecked()
- ? mActivity.getString(R.string.menu_request_desktop_site_on)
- : mActivity.getString(R.string.menu_request_desktop_site_off));
-
- PrintingController printingController =
- mActivity.getChromeApplication().getPrintingController();
- disableEnableMenuItem(menu, R.id.print_id,
- printingController != null && !currentTab.isNativePage(),
- printingController != null && !printingController.isBusy()
- && PrefServiceBridge.getInstance().isPrintingEnabled(),
- PrefServiceBridge.getInstance().isPrintingManaged());
-
- // Only display reader mode settings menu option if the current page is in reader mode.
- menu.findItem(R.id.reader_mode_prefs_id)
- .setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl()));
- }
-
- if (isOverviewMenu) {
- if (isIncognito) {
- // Hide normal close all tabs item.
- menu.findItem(R.id.close_all_tabs_menu_id).setVisible(false);
- // Enable close incognito tabs only if there are incognito tabs.
- menu.findItem(R.id.close_all_incognito_tabs_menu_id).setEnabled(true);
- } else {
- // Hide close incognito tabs item.
- menu.findItem(R.id.close_all_incognito_tabs_menu_id).setVisible(false);
- // Enable close all tabs if there are normal tabs or incognito tabs.
- menu.findItem(R.id.close_all_tabs_menu_id).setEnabled(
- mActivity.getTabModelSelector().getTotalTabCount() > 0);
- }
- }
-
- // Incognito NTP in Document mode should not show "New incognito tab" menu item.
- boolean incognitoItemVisible = !FeatureUtilities.isDocumentMode(mActivity)
- || (currentTab == null)
- || !(TextUtils.equals(currentTab.getUrl(), UrlConstants.NTP_URL) && isIncognito);
-
- // Disable new incognito tab when it is blocked (e.g. by a policy).
- // findItem(...).setEnabled(...)" is not enough here, because of the inflated
- // main_menu.xml contains multiple items with the same id in different groups
- // e.g.: new_incognito_tab_menu_id.
- disableEnableMenuItem(menu, R.id.new_incognito_tab_menu_id,
- incognitoItemVisible,
- PrefServiceBridge.getInstance().isIncognitoModeEnabled(),
- PrefServiceBridge.getInstance().isIncognitoModeManaged());
- mActivity.prepareMenu(menu);
- }
-
- /**
- * Notify the delegate that the load state changed.
- * @param isLoading Whether the page is currently loading.
- */
- public void loadingStateChanged(boolean isLoading) {
- if (mReloadMenuItem != null) {
- mReloadMenuItem.getIcon().setLevel(isLoading
- ? RELOAD_BUTTON_LEVEL_STOP_LOADING : RELOAD_BUTTON_LEVEL_RELOAD);
- mReloadMenuItem.setTitle(isLoading
- ? R.string.accessibility_btn_stop_loading : R.string.accessibility_btn_refresh);
- }
- }
-
- /**
- * Notify the delegate that menu was dismissed.
- */
- public void onMenuDismissed() {
- mReloadMenuItem = null;
- }
-
- // Set enabled to be |enable| for all MenuItems with |id| in |menu|.
- // If |managed| is true then the "Managed By Enterprise" icon is shown next to the menu.
- private void disableEnableMenuItem(
- Menu menu, int id, boolean visible, boolean enabled, boolean managed) {
- for (int i = 0; i < menu.size(); ++i) {
- MenuItem item = menu.getItem(i);
- if (item.getItemId() == id && item.isVisible()) {
- item.setVisible(visible);
- item.setEnabled(enabled);
- if (managed) {
- item.setIcon(ManagedPreferencesUtils.getManagedByEnterpriseIconId());
- } else {
- item.setIcon(null);
- }
- }
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698