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

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

Issue 868663009: Add infobar layout for app install banners. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updated AppBannerInfoBar.java Created 5 years, 10 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
Index: chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBar.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBar.java
index e5d3a595a733681a141f1d9b28d9ab406ce75932..a0fe8b10d66ea9dabca796b682ea7400d2c07ac6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBar.java
@@ -5,9 +5,14 @@
package org.chromium.chrome.browser.infobar;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Bitmap;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.RatingBar;
import android.widget.TextView;
import org.chromium.base.ApplicationStatus;
@@ -26,7 +31,7 @@ public class AppBannerInfoBar extends ConfirmInfoBar implements View.OnClickList
// Views composing the infobar.
private Button mButton;
- private View mTitleView;
+ private ViewGroup mTitleView;
private View mIconView;
private final String mAppTitle;
@@ -39,7 +44,7 @@ public class AppBannerInfoBar extends ConfirmInfoBar implements View.OnClickList
private final String mAppUrl;
// Banner for native apps.
- private AppBannerInfoBar(long nativeInfoBar, String appTitle, Bitmap iconBitmap, AppData data) {
+ public AppBannerInfoBar(long nativeInfoBar, String appTitle, Bitmap iconBitmap, AppData data) {
super(nativeInfoBar, null, 0, iconBitmap, appTitle, null, data.installButtonText(), null);
mAppTitle = appTitle;
mAppData = data;
@@ -48,7 +53,7 @@ public class AppBannerInfoBar extends ConfirmInfoBar implements View.OnClickList
}
// Banner for web apps.
- private AppBannerInfoBar(long nativeInfoBar, String appTitle, Bitmap iconBitmap, String url) {
+ public AppBannerInfoBar(long nativeInfoBar, String appTitle, Bitmap iconBitmap, String url) {
super(nativeInfoBar, null, 0, iconBitmap, appTitle, null, getAddToHomescreenText(), null);
mAppTitle = appTitle;
mAppData = null;
@@ -58,29 +63,43 @@ public class AppBannerInfoBar extends ConfirmInfoBar implements View.OnClickList
@Override
public void createContent(InfoBarLayout layout) {
- if (mAppUrl != null) {
- TextView url = new TextView(layout.getContext());
- url.setText(mAppUrl);
- layout.setCustomContent(url);
- }
-
- super.createContent(layout);
-
- mButton = (Button) layout.findViewById(R.id.button_primary);
- mTitleView = layout.findViewById(R.id.infobar_message);
- mIconView = layout.findViewById(R.id.infobar_icon);
- assert mButton != null && mTitleView != null;
+ mButton = layout.getPrimaryButton();
+ mIconView = layout.getIcon();
+
+ Resources res = getContext().getResources();
+ int iconSize = res.getDimensionPixelSize(R.dimen.app_banner_infobar_icon_size);
+ int iconSpacing = res.getDimensionPixelSize(R.dimen.app_banner_infobar_icon_spacing);
+ layout.setIconSizeAndSpacing(iconSize, iconSize, iconSpacing);
+
+ mTitleView = (ViewGroup) LayoutInflater.from(getContext()).inflate(
+ R.layout.app_banner_title, null);
+ TextView appName = (TextView) mTitleView.findViewById(R.id.app_name);
+ RatingBar ratingView = (RatingBar) mTitleView.findViewById(R.id.rating_bar);
+ TextView webAppUrl = (TextView) mTitleView.findViewById(R.id.web_app_url);
+ appName.setText(mAppTitle);
+ layout.setMessageView(mTitleView);
- // Set up accessibility text.
Context context = getContext();
if (mAppData != null) {
+ // Native app.
+ ImageView playLogo = new ImageView(layout.getContext());
+ playLogo.setImageResource(R.drawable.google_play);
+ layout.setCustomViewInButtonRow(playLogo);
+
+ ratingView.setRating(4.2f);
gone 2015/02/07 03:03:51 nit: remove line
newt (away) 2015/02/07 03:11:30 whoops. changed this to use the actual rating.
+ layout.getPrimaryButton().setButtonColor(0xff689f38);
gone 2015/02/07 03:03:51 nit: Move this color over to colors.xml
newt (away) 2015/02/07 03:11:30 Done.
+
layout.setContentDescription(context.getString(
R.string.app_banner_view_native_app_accessibility, mAppTitle,
mAppData.rating()));
+ mTitleView.removeView(webAppUrl);
} else {
+ // Web app.
+ webAppUrl.setText(mAppUrl);
layout.setContentDescription(context.getString(
R.string.app_banner_view_web_app_accessibility, mAppTitle,
mAppUrl));
+ mTitleView.removeView(ratingView);
}
// Set up clicking on the controls to bring up the app details.
@@ -88,6 +107,7 @@ public class AppBannerInfoBar extends ConfirmInfoBar implements View.OnClickList
if (mIconView != null) mIconView.setOnClickListener(this);
}
+
gone 2015/02/07 03:03:51 nit: extra line
newt (away) 2015/02/07 03:11:30 Done.
@Override
public void onButtonClicked(boolean isPrimaryButton) {
if (mInstallState == INSTALL_STATE_INSTALLING) {
« no previous file with comments | « chrome/android/java/res/values/dimens.xml ('k') | chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBar.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698