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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java

Issue 2259553002: Make AppBannerInfoBar install WebAPK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarDelegateAndroid.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..6e1838652592320c32e3a7e6c01c768def64c169 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;
}
@@ -76,8 +81,7 @@ public class AppBannerInfoBarAndroid extends ConfirmInfoBar implements View.OnCl
if (mAppData != null) {
// Native app.
layout.getPrimaryButton().setButtonColor(ApiCompatibilityUtils.getColor(
- getContext().getResources(),
- R.color.app_banner_install_button_bg));
+ context.getResources(), R.color.app_banner_install_button_bg));
mMessageLayout.addRatingBar(mAppData.rating());
mMessageLayout.setContentDescription(context.getString(
R.string.app_banner_view_native_app_accessibility, mAppTitle,
@@ -136,20 +140,27 @@ 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;
+ Context context = getContext();
if (mInstallState == INSTALL_STATE_NOT_INSTALLED) {
+ if (mIsWebApk) {
+ // If the installation of the WebAPK fails, the banner will disappear and
+ // a failure toast will be shown.
+ return;
+ }
text = mAppData.installButtonText();
- accessibilityText = getContext().getString(
+ accessibilityText = context.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 ? context.getString(R.string.app_banner_installing_webapk)
+ : context.getString(R.string.app_banner_installing);
enabled = false;
} else {
- text = getContext().getString(R.string.app_banner_open);
+ text = context.getString(R.string.app_banner_open);
}
mButton.setText(text);
@@ -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);
}
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarDelegateAndroid.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698