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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerView.java

Issue 896243004: Start piping Android app promos through AppBannerInfoBars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing nits 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.banners; 5 package org.chromium.chrome.browser.banners;
6 6
7 import android.animation.ObjectAnimator; 7 import android.animation.ObjectAnimator;
8 import android.app.Activity; 8 import android.app.Activity;
9 import android.app.PendingIntent; 9 import android.app.PendingIntent;
10 import android.content.ActivityNotFoundException; 10 import android.content.ActivityNotFoundException;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 * MARGIN CALCULATIONS 54 * MARGIN CALCULATIONS
55 * Margin calculations for the banner are complicated by the background Drawable 's drop shadows, 55 * Margin calculations for the banner are complicated by the background Drawable 's drop shadows,
56 * since the drop shadows are meant to be counted as being part of the margin. To deal with this, 56 * since the drop shadows are meant to be counted as being part of the margin. To deal with this,
57 * the margins are calculated by deducting the background Drawable's padding fro m the margins 57 * the margins are calculated by deducting the background Drawable's padding fro m the margins
58 * defined by the XML files. 58 * defined by the XML files.
59 * 59 *
60 * EVEN MORE LAYOUT QUIRKS 60 * EVEN MORE LAYOUT QUIRKS
61 * The layout of the banner, which includes its widget sizes, may change when th e screen is rotated 61 * The layout of the banner, which includes its widget sizes, may change when th e screen is rotated
62 * to account for less screen real estate. This means that all of the View's wi dgets and cached 62 * to account for less screen real estate. This means that all of the View's wi dgets and cached
63 * dimensions must be rebuilt from scratch. 63 * dimensions must be rebuilt from scratch.
64 *
65 * TODO(dfalcantara): Nuke this file.
64 */ 66 */
65 public class AppBannerView extends SwipableOverlayView 67 public class AppBannerView extends SwipableOverlayView
66 implements View.OnClickListener, InstallerDelegate.Observer, IntentCallb ack { 68 implements View.OnClickListener, InstallerDelegate.Observer, IntentCallb ack {
67 private static final String TAG = "AppBannerView"; 69 private static final String TAG = "AppBannerView";
68 70
69 /** 71 /**
70 * Class that is alerted about things happening to the BannerView. 72 * Class that is alerted about things happening to the BannerView.
71 */ 73 */
72 public static interface Observer { 74 public static interface Observer {
73 /** 75 /**
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 assert mRatingView != null; 239 assert mRatingView != null;
238 assert mBannerHighlightView != null; 240 assert mBannerHighlightView != null;
239 assert mCloseButtonView != null; 241 assert mCloseButtonView != null;
240 242
241 // Set up the buttons to fire an event. 243 // Set up the buttons to fire an event.
242 mInstallButtonView.setOnClickListener(this); 244 mInstallButtonView.setOnClickListener(this);
243 mCloseButtonView.setOnClickListener(this); 245 mCloseButtonView.setOnClickListener(this);
244 246
245 // Configure the controls with the package information. 247 // Configure the controls with the package information.
246 mTitleView.setText(mAppData.title()); 248 mTitleView.setText(mAppData.title());
247 mIconView.setImageDrawable(mAppData.icon());
248 mRatingView.initialize(mAppData.rating()); 249 mRatingView.initialize(mAppData.rating());
249 setAccessibilityInformation();
250 250
251 // Determine how much the user can drag sideways before their touch is c onsidered a scroll. 251 // Determine how much the user can drag sideways before their touch is c onsidered a scroll.
252 mTouchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop(); 252 mTouchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
253 253
254 // Set up the install button. 254 // Set up the install button.
255 updateButtonStatus(); 255 updateButtonStatus();
256 } 256 }
257 257
258 /**
259 * Creates a succinct description about the app being advertised.
260 */
261 private void setAccessibilityInformation() {
262 String bannerText = getContext().getString(
263 R.string.app_banner_view_accessibility, mAppData.title(), mAppDa ta.rating());
264 setContentDescription(bannerText);
265 }
266
267 @Override 258 @Override
268 public void onClick(View view) { 259 public void onClick(View view) {
269 if (mObserver == null) return; 260 if (mObserver == null) return;
270 261
271 // Only allow the button to be clicked when the banner's in a neutral po sition. 262 // Only allow the button to be clicked when the banner's in a neutral po sition.
272 if (Math.abs(getTranslationX()) > ZERO_THRESHOLD 263 if (Math.abs(getTranslationX()) > ZERO_THRESHOLD
273 || Math.abs(getTranslationY()) > ZERO_THRESHOLD) { 264 || Math.abs(getTranslationY()) > ZERO_THRESHOLD) {
274 return; 265 return;
275 } 266 }
276 267
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 846
856 /** 847 /**
857 * Calculates how tall the given View has been measured to be, including its margins. 848 * Calculates how tall the given View has been measured to be, including its margins.
858 * @param view View to measure. 849 * @param view View to measure.
859 * @return Measured height of the view plus its margins. 850 * @return Measured height of the view plus its margins.
860 */ 851 */
861 private static int getHeightWithMargins(View view) { 852 private static int getHeightWithMargins(View view) {
862 return view.getMeasuredHeight() + getMarginHeight(view); 853 return view.getMeasuredHeight() + getMarginHeight(view);
863 } 854 }
864 } 855 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698