Commit 471dee5c authored by Piotr Swigon's avatar Piotr Swigon Committed by Commit Bot

[Custom Tab] Reorganizes logic in CustomTabAppMenuPropertiesDelegate.

This should not cause any user visible changes.
It is a follow up to the refctoring in crrev.com/c/567789/.

Makes the visibility and initialization of menu items in Custom Tab
guarded on the same variables. This makes the flow of the code easier
to follow and skips unnecessary initialization when particular items
would not end up being shown.

Bug: 
Change-Id: I98a59f25380db8e91e4d01ebb4b95666d81ce586
Reviewed-on: https://chromium-review.googlesource.com/574895Reviewed-by: default avatarYusuf Ozuysal <yusufo@chromium.org>
Commit-Queue: Piotr Swigon <piotrs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487405}
parent 60a85e75
...@@ -75,47 +75,38 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat ...@@ -75,47 +75,38 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
mActivity, menu.findItem(R.id.direct_share_menu_id)); mActivity, menu.findItem(R.id.direct_share_menu_id));
} }
MenuItem iconRow = menu.findItem(R.id.icon_row_menu_id); boolean openInChromeItemVisible = true;
MenuItem openInChromeItem = menu.findItem(R.id.open_in_browser_id); boolean bookmarkItemVisible = mShowStar;
MenuItem bookmarkItem = menu.findItem(R.id.bookmark_this_page_id); boolean downloadItemVisible = mShowDownload;
MenuItem downloadItem = menu.findItem(R.id.offline_page_id);
boolean addToHomeScreenVisible = true; boolean addToHomeScreenVisible = true;
updateRequestDesktopSiteMenuItem(menu, currentTab); boolean requestDesktopSiteVisible = true;
if (mUiType == CUSTOM_TABS_UI_TYPE_MEDIA_VIEWER) { if (mUiType == CUSTOM_TABS_UI_TYPE_MEDIA_VIEWER) {
// Most of the menu items don't make sense when viewing media. // Most of the menu items don't make sense when viewing media.
iconRow.setVisible(false); menu.findItem(R.id.icon_row_menu_id).setVisible(false);
openInChromeItem.setVisible(false);
menu.findItem(R.id.find_in_page_id).setVisible(false); menu.findItem(R.id.find_in_page_id).setVisible(false);
menu.findItem(R.id.request_desktop_site_row_menu_id).setVisible(false); bookmarkItemVisible = false; // Set to skip initialization.
downloadItemVisible = false; // Set to skip initialization.
openInChromeItemVisible = false;
requestDesktopSiteVisible = false;
addToHomeScreenVisible = false; addToHomeScreenVisible = false;
} else if (mUiType == CUSTOM_TABS_UI_TYPE_PAYMENT_REQUEST) { } else if (mUiType == CUSTOM_TABS_UI_TYPE_PAYMENT_REQUEST) {
// Only the icon row and 'find in page' are shown for openning payment request UI // Only the icon row and 'find in page' are shown for openning payment request UI
// from Chrome. // from Chrome.
openInChromeItem.setVisible(false); openInChromeItemVisible = false;
menu.findItem(R.id.request_desktop_site_id).setVisible(false); requestDesktopSiteVisible = false;
addToHomeScreenVisible = false; addToHomeScreenVisible = false;
downloadItem.setVisible(false); downloadItemVisible = false;
bookmarkItem.setVisible(false); bookmarkItemVisible = false;
} else {
openInChromeItem.setTitle(
DefaultBrowserInfo.getTitleOpenInDefaultBrowser(mIsOpenedByChrome));
updateBookmarkMenuItem(bookmarkItem, currentTab);
}
if (!mShowStar) {
bookmarkItem.setVisible(false);
} }
downloadItem.setVisible(mShowDownload);
if (!FirstRunStatus.getFirstRunFlowComplete()) { if (!FirstRunStatus.getFirstRunFlowComplete()) {
openInChromeItem.setVisible(false); openInChromeItemVisible = false;
bookmarkItem.setVisible(false); bookmarkItemVisible = false;
downloadItem.setVisible(false); downloadItemVisible = false;
addToHomeScreenVisible = false; addToHomeScreenVisible = false;
} }
downloadItem.setEnabled(DownloadUtils.isAllowedToDownloadPage(currentTab));
String url = currentTab.getUrl(); String url = currentTab.getUrl();
boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX)
|| url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
...@@ -123,6 +114,34 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat ...@@ -123,6 +114,34 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
addToHomeScreenVisible = false; addToHomeScreenVisible = false;
} }
MenuItem downloadItem = menu.findItem(R.id.offline_page_id);
if (downloadItemVisible) {
downloadItem.setEnabled(DownloadUtils.isAllowedToDownloadPage(currentTab));
} else {
downloadItem.setVisible(false);
}
MenuItem bookmarkItem = menu.findItem(R.id.bookmark_this_page_id);
if (bookmarkItemVisible) {
updateBookmarkMenuItem(bookmarkItem, currentTab);
} else {
bookmarkItem.setVisible(false);
}
MenuItem openInChromeItem = menu.findItem(R.id.open_in_browser_id);
if (openInChromeItemVisible) {
openInChromeItem.setTitle(
DefaultBrowserInfo.getTitleOpenInDefaultBrowser(mIsOpenedByChrome));
} else {
openInChromeItem.setVisible(false);
}
if (requestDesktopSiteVisible) {
updateRequestDesktopSiteMenuItem(menu, currentTab);
} else {
menu.findItem(R.id.request_desktop_site_row_menu_id).setVisible(false);
}
// Add custom menu items. Make sure they are only added once. // Add custom menu items. Make sure they are only added once.
if (!mIsCustomEntryAdded) { if (!mIsCustomEntryAdded) {
mIsCustomEntryAdded = true; mIsCustomEntryAdded = true;
......
...@@ -187,7 +187,7 @@ public class CustomTabFromChromeExternalNavigationTest { ...@@ -187,7 +187,7 @@ public class CustomTabFromChromeExternalNavigationTest {
Assert.assertFalse(menu.findItem(R.id.open_in_browser_id).isVisible()); Assert.assertFalse(menu.findItem(R.id.open_in_browser_id).isVisible());
Assert.assertFalse(menu.findItem(R.id.bookmark_this_page_id).isVisible()); Assert.assertFalse(menu.findItem(R.id.bookmark_this_page_id).isVisible());
Assert.assertFalse(menu.findItem(R.id.offline_page_id).isVisible()); Assert.assertFalse(menu.findItem(R.id.offline_page_id).isVisible());
Assert.assertFalse(menu.findItem(R.id.request_desktop_site_id).isVisible()); Assert.assertFalse(menu.findItem(R.id.request_desktop_site_row_menu_id).isVisible());
Assert.assertFalse(menu.findItem(R.id.add_to_homescreen_id).isVisible()); Assert.assertFalse(menu.findItem(R.id.add_to_homescreen_id).isVisible());
Assert.assertFalse(menu.findItem(R.id.open_webapk_id).isVisible()); Assert.assertFalse(menu.findItem(R.id.open_webapk_id).isVisible());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment