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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java

Issue 2707993003: [Android]: Hide add-to-homescreen app menu item when WebAPK is installed (Closed)
Patch Set: Add new state for 'Add to Homescreen' Menu item Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.customtabs; 5 package org.chromium.chrome.browser.customtabs;
6 6
7 import android.view.Menu; 7 import android.view.Menu;
8 import android.view.MenuItem; 8 import android.view.MenuItem;
9 9
10 import org.chromium.base.VisibleForTesting; 10 import org.chromium.base.VisibleForTesting;
11 import org.chromium.chrome.R; 11 import org.chromium.chrome.R;
12 import org.chromium.chrome.browser.ChromeActivity; 12 import org.chromium.chrome.browser.ChromeActivity;
13 import org.chromium.chrome.browser.DefaultBrowserInfo; 13 import org.chromium.chrome.browser.DefaultBrowserInfo;
14 import org.chromium.chrome.browser.UrlConstants; 14 import org.chromium.chrome.browser.UrlConstants;
15 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; 15 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate;
16 import org.chromium.chrome.browser.banners.AppBannerManager;
17 import org.chromium.chrome.browser.download.DownloadUtils; 16 import org.chromium.chrome.browser.download.DownloadUtils;
18 import org.chromium.chrome.browser.firstrun.FirstRunStatus; 17 import org.chromium.chrome.browser.firstrun.FirstRunStatus;
19 import org.chromium.chrome.browser.share.ShareHelper; 18 import org.chromium.chrome.browser.share.ShareHelper;
20 import org.chromium.chrome.browser.tab.Tab; 19 import org.chromium.chrome.browser.tab.Tab;
21 20
22 import java.util.HashMap; 21 import java.util.HashMap;
23 import java.util.List; 22 import java.util.List;
24 import java.util.Map; 23 import java.util.Map;
25 24
26 /** 25 /**
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 shareItem.setEnabled(mShowShare); 70 shareItem.setEnabled(mShowShare);
72 if (mShowShare) { 71 if (mShowShare) {
73 ShareHelper.configureDirectShareMenuItem( 72 ShareHelper.configureDirectShareMenuItem(
74 mActivity, menu.findItem(R.id.direct_share_menu_id)); 73 mActivity, menu.findItem(R.id.direct_share_menu_id));
75 } 74 }
76 75
77 MenuItem iconRow = menu.findItem(R.id.icon_row_menu_id); 76 MenuItem iconRow = menu.findItem(R.id.icon_row_menu_id);
78 MenuItem openInChromeItem = menu.findItem(R.id.open_in_browser_id); 77 MenuItem openInChromeItem = menu.findItem(R.id.open_in_browser_id);
79 MenuItem bookmarkItem = menu.findItem(R.id.bookmark_this_page_id); 78 MenuItem bookmarkItem = menu.findItem(R.id.bookmark_this_page_id);
80 MenuItem downloadItem = menu.findItem(R.id.offline_page_id); 79 MenuItem downloadItem = menu.findItem(R.id.offline_page_id);
81 MenuItem addToHomeScreenItem = menu.findItem(R.id.add_to_homescreen_ id); 80
82 addToHomeScreenItem.setTitle(AppBannerManager.getHomescreenLanguageO ption()); 81 boolean addToHomeScreenVisible = true;
83 82
84 // Hide request desktop site on all chrome:// pages except for the N TP. Check request 83 // Hide request desktop site on all chrome:// pages except for the N TP. Check request
85 // desktop site if it's activated on this page. 84 // desktop site if it's activated on this page.
86 MenuItem requestItem = menu.findItem(R.id.request_desktop_site_id); 85 MenuItem requestItem = menu.findItem(R.id.request_desktop_site_id);
87 updateRequestDesktopSiteMenuItem(requestItem, currentTab); 86 updateRequestDesktopSiteMenuItem(requestItem, currentTab);
88 87
89 if (mIsMediaViewer) { 88 if (mIsMediaViewer) {
90 // Most of the menu items don't make sense when viewing media. 89 // Most of the menu items don't make sense when viewing media.
91 iconRow.setVisible(false); 90 iconRow.setVisible(false);
92 openInChromeItem.setVisible(false); 91 openInChromeItem.setVisible(false);
93 menu.findItem(R.id.find_in_page_id).setVisible(false); 92 menu.findItem(R.id.find_in_page_id).setVisible(false);
94 menu.findItem(R.id.request_desktop_site_id).setVisible(false); 93 menu.findItem(R.id.request_desktop_site_id).setVisible(false);
95 addToHomeScreenItem.setVisible(false); 94 addToHomeScreenVisible = false;
96 } else { 95 } else {
97 openInChromeItem.setTitle( 96 openInChromeItem.setTitle(
98 DefaultBrowserInfo.getTitleOpenInDefaultBrowser(mIsOpene dByChrome)); 97 DefaultBrowserInfo.getTitleOpenInDefaultBrowser(mIsOpene dByChrome));
99 } 98 }
100 bookmarkItem.setVisible(mShowStar); 99 bookmarkItem.setVisible(mShowStar);
101 downloadItem.setVisible(mShowDownload); 100 downloadItem.setVisible(mShowDownload);
102 if (!FirstRunStatus.getFirstRunFlowComplete()) { 101 if (!FirstRunStatus.getFirstRunFlowComplete()) {
103 openInChromeItem.setVisible(false); 102 openInChromeItem.setVisible(false);
104 bookmarkItem.setVisible(false); 103 bookmarkItem.setVisible(false);
105 downloadItem.setVisible(false); 104 downloadItem.setVisible(false);
106 addToHomeScreenItem.setVisible(false); 105 addToHomeScreenVisible = false;
107 } 106 }
108 107
109 downloadItem.setEnabled(DownloadUtils.isAllowedToDownloadPage(curren tTab)); 108 downloadItem.setEnabled(DownloadUtils.isAllowedToDownloadPage(curren tTab));
110 109
111 String url = currentTab.getUrl(); 110 String url = currentTab.getUrl();
112 boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREF IX) 111 boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREF IX)
113 || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); 112 || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
114 if (isChromeScheme) { 113 if (isChromeScheme) {
115 addToHomeScreenItem.setVisible(false); 114 addToHomeScreenVisible = false;
116 } 115 }
117 116
118 // Add custom menu items. Make sure they are only added once. 117 // Add custom menu items. Make sure they are only added once.
119 if (!mIsCustomEntryAdded) { 118 if (!mIsCustomEntryAdded) {
120 mIsCustomEntryAdded = true; 119 mIsCustomEntryAdded = true;
121 for (int i = 0; i < mMenuEntries.size(); i++) { 120 for (int i = 0; i < mMenuEntries.size(); i++) {
122 MenuItem item = menu.add(0, 0, 1, mMenuEntries.get(i)); 121 MenuItem item = menu.add(0, 0, 1, mMenuEntries.get(i));
123 mItemToIndexMap.put(item, i); 122 mItemToIndexMap.put(item, i);
124 } 123 }
125 } 124 }
125
126 prepareAddToHomescreenMenuItem(menu, currentTab.getUrl(), addToHomeS creenVisible);
126 } 127 }
127 } 128 }
128 129
129 /** 130 /**
130 * @return The index that the given menu item should appear in the result of 131 * @return The index that the given menu item should appear in the result of
131 * {@link CustomTabIntentDataProvider#getMenuTitles()}. Returns -1 i f item not found. 132 * {@link CustomTabIntentDataProvider#getMenuTitles()}. Returns -1 i f item not found.
132 */ 133 */
133 public int getIndexOfMenuItem(MenuItem menuItem) { 134 public int getIndexOfMenuItem(MenuItem menuItem) {
134 if (!mItemToIndexMap.containsKey(menuItem)) { 135 if (!mItemToIndexMap.containsKey(menuItem)) {
135 return -1; 136 return -1;
(...skipping 11 matching lines...) Expand all
147 * the same title, a random one will be returned. This method is for testing purpose _only_. 148 * the same title, a random one will be returned. This method is for testing purpose _only_.
148 */ 149 */
149 @VisibleForTesting 150 @VisibleForTesting
150 MenuItem getMenuItemForTitle(String title) { 151 MenuItem getMenuItemForTitle(String title) {
151 for (MenuItem item : mItemToIndexMap.keySet()) { 152 for (MenuItem item : mItemToIndexMap.keySet()) {
152 if (item.getTitle().equals(title)) return item; 153 if (item.getTitle().equals(title)) return item;
153 } 154 }
154 return null; 155 return null;
155 } 156 }
156 } 157 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698