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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java

Issue 2436883002: Make PaymentOption store a Drawable instead of id (Closed)
Patch Set: Fix presubmit warning Created 4 years, 2 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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.payments.ui; 5 package org.chromium.chrome.browser.payments.ui;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.content.res.Resources; 8 import android.content.res.Resources;
9 import android.graphics.Color; 9 import android.graphics.Color;
10 import android.graphics.Typeface; 10 import android.graphics.Typeface;
11 import android.graphics.drawable.Drawable;
11 import android.text.SpannableStringBuilder; 12 import android.text.SpannableStringBuilder;
12 import android.text.TextUtils; 13 import android.text.TextUtils;
13 import android.text.TextUtils.TruncateAt; 14 import android.text.TextUtils.TruncateAt;
14 import android.text.style.StyleSpan; 15 import android.text.style.StyleSpan;
15 import android.view.Gravity; 16 import android.view.Gravity;
16 import android.view.LayoutInflater; 17 import android.view.LayoutInflater;
17 import android.view.MotionEvent; 18 import android.view.MotionEvent;
18 import android.view.View; 19 import android.view.View;
19 import android.view.ViewGroup; 20 import android.view.ViewGroup;
20 import android.widget.Button; 21 import android.widget.Button;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 private final int mFocusedBackgroundColor; 129 private final int mFocusedBackgroundColor;
129 private final LinearLayout mMainSection; 130 private final LinearLayout mMainSection;
130 private final ImageView mLogoView; 131 private final ImageView mLogoView;
131 private final ImageView mChevronView; 132 private final ImageView mChevronView;
132 133
133 private TextView mTitleView; 134 private TextView mTitleView;
134 private LinearLayout mSummaryLayout; 135 private LinearLayout mSummaryLayout;
135 private TextView mSummaryLeftTextView; 136 private TextView mSummaryLeftTextView;
136 private TextView mSummaryRightTextView; 137 private TextView mSummaryRightTextView;
137 138
138 private int mLogoResourceId; 139 private Drawable mLogo;
139 private boolean mIsSummaryAllowed = true; 140 private boolean mIsSummaryAllowed = true;
140 141
141 /** 142 /**
142 * Constructs a PaymentRequestSection. 143 * Constructs a PaymentRequestSection.
143 * 144 *
144 * @param context Context to pull resources from. 145 * @param context Context to pull resources from.
145 * @param sectionName Title of the section to display. 146 * @param sectionName Title of the section to display.
146 * @param delegate Delegate to alert when something changes in the dialog . 147 * @param delegate Delegate to alert when something changes in the dialog .
147 */ 148 */
148 private PaymentRequestSection(Context context, String sectionName, SectionDe legate delegate) { 149 private PaymentRequestSection(Context context, String sectionName, SectionDe legate delegate) {
(...skipping 17 matching lines...) Expand all
166 mLogoView = isLogoNecessary() ? createAndAddLogoView(this, 0, mLargeSpac ing) : null; 167 mLogoView = isLogoNecessary() ? createAndAddLogoView(this, 0, mLargeSpac ing) : null;
167 mEditButtonView = createAndAddEditButton(this); 168 mEditButtonView = createAndAddEditButton(this);
168 mChevronView = createAndAddChevron(this); 169 mChevronView = createAndAddChevron(this);
169 mIsLayoutInitialized = true; 170 mIsLayoutInitialized = true;
170 setDisplayMode(DISPLAY_MODE_NORMAL); 171 setDisplayMode(DISPLAY_MODE_NORMAL);
171 } 172 }
172 173
173 /** 174 /**
174 * Sets what logo should be displayed. 175 * Sets what logo should be displayed.
175 * 176 *
176 * @param resourceId ID of the logo to display. 177 * @param resource The logo to display.
177 */ 178 */
178 protected void setLogoResource(int resourceId) { 179 protected void setLogoDrawable(Drawable logo) {
179 assert isLogoNecessary(); 180 assert isLogoNecessary();
180 mLogoResourceId = resourceId; 181 mLogo = logo;
181 mLogoView.setImageResource(resourceId); 182 mLogoView.setImageDrawable(mLogo);
182 } 183 }
183 184
184 @Override 185 @Override
185 public boolean onInterceptTouchEvent(MotionEvent event) { 186 public boolean onInterceptTouchEvent(MotionEvent event) {
186 // Allow touches to propagate to children only if the layout can be inte racted with. 187 // Allow touches to propagate to children only if the layout can be inte racted with.
187 return !mDelegate.isAcceptingUserInput(); 188 return !mDelegate.isAcceptingUserInput();
188 } 189 }
189 190
190 @Override 191 @Override
191 public final void onClick(View v) { 192 public final void onClick(View v) {
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 */ 405 */
405 protected void updateControlLayout() { 406 protected void updateControlLayout() {
406 if (!mIsLayoutInitialized) return; 407 if (!mIsLayoutInitialized) return;
407 408
408 boolean isExpanded = 409 boolean isExpanded =
409 mDisplayMode == DISPLAY_MODE_FOCUSED || mDisplayMode == DISPLAY_ MODE_CHECKING; 410 mDisplayMode == DISPLAY_MODE_FOCUSED || mDisplayMode == DISPLAY_ MODE_CHECKING;
410 setBackgroundColor(isExpanded ? mFocusedBackgroundColor : Color.WHITE); 411 setBackgroundColor(isExpanded ? mFocusedBackgroundColor : Color.WHITE);
411 412
412 // Update whether the logo is displayed. 413 // Update whether the logo is displayed.
413 if (mLogoView != null) { 414 if (mLogoView != null) {
414 boolean show = mLogoResourceId != 0 && mDisplayMode != DISPLAY_MODE_ FOCUSED; 415 boolean show = mLogo != null && mDisplayMode != DISPLAY_MODE_FOCUSED ;
415 mLogoView.setVisibility(show ? VISIBLE : GONE); 416 mLogoView.setVisibility(show ? VISIBLE : GONE);
416 } 417 }
417 418
418 // The button takes precedence over the summary text and the chevron. 419 // The button takes precedence over the summary text and the chevron.
419 int editButtonState = getEditButtonState(); 420 int editButtonState = getEditButtonState();
420 if (editButtonState == EDIT_BUTTON_GONE) { 421 if (editButtonState == EDIT_BUTTON_GONE) {
421 mEditButtonView.setVisibility(GONE); 422 mEditButtonView.setVisibility(GONE);
422 mChevronView.setVisibility( 423 mChevronView.setVisibility(
423 mDisplayMode == DISPLAY_MODE_EXPANDABLE ? VISIBLE : GONE); 424 mDisplayMode == DISPLAY_MODE_EXPANDABLE ? VISIBLE : GONE);
424 425
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 private static final int OPTION_ROW_TYPE_WARNING = 3; 712 private static final int OPTION_ROW_TYPE_WARNING = 3;
712 713
713 private final int mRowType; 714 private final int mRowType;
714 private final PaymentOption mOption; 715 private final PaymentOption mOption;
715 private final View mButton; 716 private final View mButton;
716 private final TextView mLabel; 717 private final TextView mLabel;
717 private final View mIcon; 718 private final View mIcon;
718 719
719 public OptionRow(GridLayout parent, int rowIndex, int rowType, Payme ntOption item, 720 public OptionRow(GridLayout parent, int rowIndex, int rowType, Payme ntOption item,
720 boolean isSelected) { 721 boolean isSelected) {
721 boolean iconExists = item != null && item.getDrawableIconId() != 0; 722 boolean iconExists = item != null && item.getDrawableIcon() != n ull;
722 boolean isEnabled = item != null && item.isValid(); 723 boolean isEnabled = item != null && item.isValid();
723 mRowType = rowType; 724 mRowType = rowType;
724 mOption = item; 725 mOption = item;
725 mButton = createButton(parent, rowIndex, isSelected, isEnabled); 726 mButton = createButton(parent, rowIndex, isSelected, isEnabled);
726 mLabel = createLabel(parent, rowIndex, iconExists, isEnabled); 727 mLabel = createLabel(parent, rowIndex, iconExists, isEnabled);
727 mIcon = iconExists ? createIcon(parent, rowIndex) : null; 728 mIcon = iconExists ? createIcon(parent, rowIndex) : null;
728 } 729 }
729 730
730 /** Sets the selected state of this item, alerting the delegate if s elected. */ 731 /** Sets the selected state of this item, alerting the delegate if s elected. */
731 public void setChecked(boolean isChecked) { 732 public void setChecked(boolean isChecked) {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 865
865 labelView.setOnClickListener(OptionSection.this); 866 labelView.setOnClickListener(OptionSection.this);
866 return labelView; 867 return labelView;
867 } 868 }
868 869
869 private View createIcon(GridLayout parent, int rowIndex) { 870 private View createIcon(GridLayout parent, int rowIndex) {
870 // The icon has a pre-defined width. 871 // The icon has a pre-defined width.
871 ImageView icon = new ImageView(parent.getContext()); 872 ImageView icon = new ImageView(parent.getContext());
872 icon.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO ); 873 icon.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO );
873 icon.setBackgroundResource(R.drawable.payments_ui_logo_bg); 874 icon.setBackgroundResource(R.drawable.payments_ui_logo_bg);
874 icon.setImageResource(mOption.getDrawableIconId()); 875 icon.setImageDrawable(mOption.getDrawableIcon());
875 icon.setMaxWidth(mIconMaxWidth); 876 icon.setMaxWidth(mIconMaxWidth);
876 877
877 // The icon floats to the right of everything. 878 // The icon floats to the right of everything.
878 GridLayout.LayoutParams iconParams = new GridLayout.LayoutParams ( 879 GridLayout.LayoutParams iconParams = new GridLayout.LayoutParams (
879 GridLayout.spec(rowIndex, 1, GridLayout.CENTER), GridLay out.spec(2, 1)); 880 GridLayout.spec(rowIndex, 1, GridLayout.CENTER), GridLay out.spec(2, 1));
880 iconParams.topMargin = mVerticalMargin; 881 iconParams.topMargin = mVerticalMargin;
881 ApiCompatibilityUtils.setMarginStart(iconParams, mLargeSpacing); 882 ApiCompatibilityUtils.setMarginStart(iconParams, mLargeSpacing);
882 parent.addView(icon, iconParams); 883 parent.addView(icon, iconParams);
883 884
884 icon.setOnClickListener(OptionSection.this); 885 icon.setOnClickListener(OptionSection.this);
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1046 } else if (mSectionInformation.getSelectedItem() == null) { 1047 } else if (mSectionInformation.getSelectedItem() == null) {
1047 // The user hasn't selected any available PaymentOptions. Ask t he user to pick one. 1048 // The user hasn't selected any available PaymentOptions. Ask t he user to pick one.
1048 return EDIT_BUTTON_SELECT; 1049 return EDIT_BUTTON_SELECT;
1049 } else { 1050 } else {
1050 return EDIT_BUTTON_GONE; 1051 return EDIT_BUTTON_GONE;
1051 } 1052 }
1052 } 1053 }
1053 1054
1054 private void updateSelectedItem(PaymentOption selectedItem) { 1055 private void updateSelectedItem(PaymentOption selectedItem) {
1055 if (selectedItem == null) { 1056 if (selectedItem == null) {
1056 setLogoResource(0); 1057 setLogoDrawable(null);
1057 setIsSummaryAllowed(false); 1058 setIsSummaryAllowed(false);
1058 setSummaryText(null, null); 1059 setSummaryText(null, null);
1059 } else { 1060 } else {
1060 setLogoResource(selectedItem.getDrawableIconId()); 1061 setLogoDrawable(selectedItem.getDrawableIcon());
1061 setSummaryText(convertOptionToString(selectedItem, false), null) ; 1062 setSummaryText(convertOptionToString(selectedItem, false), null) ;
1062 } 1063 }
1063 1064
1064 updateControlLayout(); 1065 updateControlLayout();
1065 } 1066 }
1066 1067
1067 private void updateOptionList(SectionInformation information, PaymentOpt ion selectedItem) { 1068 private void updateOptionList(SectionInformation information, PaymentOpt ion selectedItem) {
1068 mOptionLayout.removeAllViews(); 1069 mOptionLayout.removeAllViews();
1069 mOptionRows.clear(); 1070 mOptionRows.clear();
1070 mLabelsForTest.clear(); 1071 mLabelsForTest.clear();
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 } 1183 }
1183 1184
1184 /** Expand the separator to be the full width of the dialog. */ 1185 /** Expand the separator to be the full width of the dialog. */
1185 public void expand() { 1186 public void expand() {
1186 LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) getLa youtParams(); 1187 LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) getLa youtParams();
1187 ApiCompatibilityUtils.setMarginStart(params, 0); 1188 ApiCompatibilityUtils.setMarginStart(params, 0);
1188 ApiCompatibilityUtils.setMarginEnd(params, 0); 1189 ApiCompatibilityUtils.setMarginEnd(params, 0);
1189 } 1190 }
1190 } 1191 }
1191 } 1192 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698