Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java |
| index 0ffe9f04c3fcc337da71feffc4d81aba76408a24..e54d3f3b23b0a213e08cb865d429ff818f0bbf96 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java |
| @@ -42,6 +42,9 @@ public class AppBannerInfoBarAndroid extends ConfirmInfoBar implements View.OnCl |
| // Data for web app installs. |
| private final String mAppUrl; |
| + // Indicates whether the infobar is for installing a WebAPK. |
| + private boolean mIsWebApk; |
| + |
| // Banner for native apps. |
| private AppBannerInfoBarAndroid(String appTitle, Bitmap iconBitmap, AppData data) { |
| super(0, iconBitmap, appTitle, null, data.installButtonText(), null); |
| @@ -52,11 +55,13 @@ public class AppBannerInfoBarAndroid extends ConfirmInfoBar implements View.OnCl |
| } |
| // Banner for web apps. |
| - private AppBannerInfoBarAndroid(String appTitle, Bitmap iconBitmap, String url) { |
| + private AppBannerInfoBarAndroid(String appTitle, Bitmap iconBitmap, String url, |
| + boolean isWebApk) { |
| super(0, iconBitmap, appTitle, null, getAddToHomescreenText(), null); |
| mAppTitle = appTitle; |
| mAppData = null; |
| mAppUrl = url; |
| + mIsWebApk = isWebApk; |
| mInstallState = INSTALL_STATE_NOT_INSTALLED; |
| } |
| @@ -136,17 +141,23 @@ public class AppBannerInfoBarAndroid extends ConfirmInfoBar implements View.OnCl |
| } |
| private void updateButton() { |
| - if (mButton == null || mAppData == null) return; |
| + if (mButton == null || (mAppData == null && !mIsWebApk)) return; |
| String text; |
| String accessibilityText = null; |
| boolean enabled = true; |
| if (mInstallState == INSTALL_STATE_NOT_INSTALLED) { |
| + if (mIsWebApk) { |
| + // If the installation of the WebAPK fails, the banner will just disappear and |
| + // a failure toast will be shown. |
|
pkotwicz
2016/08/30 04:06:23
Nit: "just disappear" -> "disappear"
Reason: less
Xi Han
2016/08/30 17:49:28
Done.
|
| + return; |
| + } |
| text = mAppData.installButtonText(); |
| accessibilityText = getContext().getString( |
| R.string.app_banner_view_native_app_install_accessibility, text); |
| } else if (mInstallState == INSTALL_STATE_INSTALLING) { |
| - text = getContext().getString(R.string.app_banner_installing); |
| + text = mIsWebApk ? getContext().getString(R.string.app_banner_installing_webapk) |
|
pkotwicz
2016/08/30 04:06:23
Super nit: Cache the result of getContext()
Xi Han
2016/08/30 17:49:28
Done.
|
| + : getContext().getString(R.string.app_banner_installing); |
| enabled = false; |
| } else { |
| text = getContext().getString(R.string.app_banner_open); |
| @@ -173,7 +184,8 @@ public class AppBannerInfoBarAndroid extends ConfirmInfoBar implements View.OnCl |
| } |
| @CalledByNative |
| - private static InfoBar createWebAppInfoBar(String appTitle, Bitmap iconBitmap, String url) { |
| - return new AppBannerInfoBarAndroid(appTitle, iconBitmap, url); |
| + private static InfoBar createWebAppInfoBar(String appTitle, Bitmap iconBitmap, String url, |
| + boolean isWebApk) { |
| + return new AppBannerInfoBarAndroid(appTitle, iconBitmap, url, isWebApk); |
| } |
| } |