Index: chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java |
index 05a4d78b023438861f5dbcfb4246013fb7c8b037..2abb265719d8413c1686c0a73587abd9cf7f1545 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java |
@@ -9,8 +9,10 @@ import android.content.pm.ResolveInfo; |
import android.graphics.PorterDuff; |
import android.graphics.drawable.Drawable; |
import android.os.SystemClock; |
+import android.support.annotation.Nullable; |
import android.view.Menu; |
import android.view.MenuItem; |
+import android.view.View; |
import org.chromium.base.ApiCompatibilityUtils; |
import org.chromium.base.CommandLine; |
@@ -44,8 +46,8 @@ public class 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; |
+ static final int RELOAD_BUTTON_LEVEL_RELOAD = 0; |
+ static final int RELOAD_BUTTON_LEVEL_STOP_LOADING = 1; |
protected MenuItem mReloadMenuItem; |
@@ -53,6 +55,9 @@ public class AppMenuPropertiesDelegate { |
protected BookmarkBridge mBookmarkBridge; |
+ @Nullable |
+ private AppMenuIconRowFooter mAppMenuIconRowFooter; |
+ |
public AppMenuPropertiesDelegate(ChromeActivity activity) { |
mActivity = activity; |
} |
@@ -102,9 +107,13 @@ public class AppMenuPropertiesDelegate { |
|| url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); |
boolean isFileScheme = url.startsWith(UrlConstants.FILE_URL_PREFIX); |
boolean isContentScheme = url.startsWith(UrlConstants.CONTENT_URL_PREFIX); |
- boolean shouldShowIconRow = !mActivity.isTablet() |
- || mActivity.getWindow().getDecorView().getWidth() |
- < DeviceFormFactor.getMinimumTabletWidthPx(mActivity); |
+ |
+ // If the BottomSheet is not null, the icon row will be displayed using |
+ // AppMenuIconRowFooter as a prompt view. |
+ boolean shouldShowIconRow = mActivity.getBottomSheet() == null |
+ && (!mActivity.isTablet() |
+ || mActivity.getWindow().getDecorView().getWidth() |
+ < DeviceFormFactor.getMinimumTabletWidthPx(mActivity)); |
// Update the icon row items (shown in narrow form factors). |
menu.findItem(R.id.icon_row_menu_id).setVisible(shouldShowIconRow); |
@@ -222,6 +231,21 @@ public class AppMenuPropertiesDelegate { |
} |
/** |
+ * Called after the menu has been shown to finish initializing views. |
+ * @param menu The {@link AppMenu} that was shown. |
+ */ |
+ public void onShow(final AppMenu menu) { |
+ View promptView = menu.getPromptView(); |
+ if (!(promptView instanceof AppMenuIconRowFooter)) { |
+ mAppMenuIconRowFooter = null; |
+ return; |
+ } |
+ |
+ mAppMenuIconRowFooter = (AppMenuIconRowFooter) promptView; |
+ mAppMenuIconRowFooter.initialize(mActivity, menu, mBookmarkBridge); |
+ } |
+ |
+ /** |
* Sets the visibility and labels of the "Add to Home screen" and "Open WebAPK" menu items. |
*/ |
protected void prepareAddToHomescreenMenuItem( |
@@ -271,6 +295,8 @@ public class AppMenuPropertiesDelegate { |
? RELOAD_BUTTON_LEVEL_STOP_LOADING : RELOAD_BUTTON_LEVEL_RELOAD); |
mReloadMenuItem.setTitle(isLoading |
? R.string.accessibility_btn_stop_loading : R.string.accessibility_btn_refresh); |
+ } else if (mAppMenuIconRowFooter != null) { |
+ mAppMenuIconRowFooter.loadingStateChanged(isLoading); |
} |
} |