Chromium Code Reviews| 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) { |