OLD | NEW |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |