| Index: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java
|
| index 128dd59c415dc9290f13ae57872c3435b927e9cd..f02418b8d2f02fc39db804c13f2b0d29e41cf09d 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java
|
| @@ -935,7 +935,7 @@ public abstract class PaymentRequestSection extends LinearLayout implements View
|
| ApiCompatibilityUtils.setTextAppearance(labelView, isEnabled
|
| ? R.style.PaymentsUiSectionDefaultText
|
| : R.style.PaymentsUiSectionDisabledText);
|
| - labelView.setText(convertOptionToString(mOption,
|
| + labelView.setText(convertOptionToString(mOption, false, /* excludeMainLabel */
|
| mDelegate.isBoldLabelNeeded(OptionSection.this),
|
| false /* singleLine */));
|
| labelView.setEnabled(isEnabled);
|
| @@ -1061,6 +1061,12 @@ public abstract class PaymentRequestSection extends LinearLayout implements View
|
| */
|
| boolean mSetDisplaySummaryInSingleLineInNormalMode = true;
|
|
|
| + /**
|
| + * Indicates whether the summary should be split to display in left and right summary
|
| + * text views in {@link DISPLAY_MODE_NORMAL}.
|
| + */
|
| + private boolean mSplitSummaryInDisplayModeNormal;
|
| +
|
| /** Indicates whether the summary is set to R.style.PaymentsUiSectionDescriptiveText. */
|
| private boolean mSummaryInDescriptiveText;
|
|
|
| @@ -1173,6 +1179,18 @@ public abstract class PaymentRequestSection extends LinearLayout implements View
|
| mSetDisplaySummaryInSingleLineInNormalMode = singleLine;
|
| }
|
|
|
| + /**
|
| + * Specify whether the summary should be split to display under DISPLAY_MODE_NORMAL.
|
| + *
|
| + * @param splitSummary If true split the display of summary in the left and right
|
| + * text views in {@link DISPLAY_MODE_NORMAL}, the summary is
|
| + * split into 'label' and the rest('sublabel', 'Tertiary label').
|
| + * Otherwise the entire summary is displayed in the left text view.
|
| + */
|
| + public void setSplitSummaryInDisplayModeNormal(boolean splitSummary) {
|
| + mSplitSummaryInDisplayModeNormal = splitSummary;
|
| + }
|
| +
|
| /** Updates the View to account for the new {@link SectionInformation} being passed in. */
|
| public void update(SectionInformation information) {
|
| mSectionInformation = information;
|
| @@ -1290,9 +1308,20 @@ public abstract class PaymentRequestSection extends LinearLayout implements View
|
| getSummaryLeftTextView(), R.style.PaymentsUiSectionDefaultText);
|
| mSummaryInDescriptiveText = false;
|
| }
|
| - setSummaryText(convertOptionToString(selectedItem, false /* useBoldLabel */,
|
| - mSummaryInSingleLine),
|
| - null);
|
| + // Split summary in DISPLAY_MODE_NORMAL if caller specified. The first part is
|
| + // displayed on the left summary text view aligned to the left. The second part is
|
| + // displayed on the right summary text view aligned to the right.
|
| + boolean splitSummary =
|
| + mSplitSummaryInDisplayModeNormal && (mDisplayMode == DISPLAY_MODE_NORMAL);
|
| + if (splitSummary) {
|
| + setSummaryText(selectedItem.getLabel(),
|
| + convertOptionToString(selectedItem, true /* excludeMainLabel */,
|
| + false /* useBoldLabel */, mSummaryInSingleLine));
|
| + } else {
|
| + setSummaryText(convertOptionToString(selectedItem, false /* excludeMainLabel */,
|
| + false /* useBoldLabel */, mSummaryInSingleLine),
|
| + null);
|
| + }
|
| }
|
|
|
| updateControlLayout();
|
| @@ -1347,17 +1376,20 @@ public abstract class PaymentRequestSection extends LinearLayout implements View
|
| }
|
| }
|
|
|
| - private CharSequence convertOptionToString(
|
| - PaymentOption item, boolean useBoldLabel, boolean singleLine) {
|
| - SpannableStringBuilder builder = new SpannableStringBuilder(item.getLabel());
|
| + private CharSequence convertOptionToString(PaymentOption item, boolean excludeMainLabel,
|
| + boolean useBoldLabel, boolean singleLine) {
|
| + SpannableStringBuilder builder = new SpannableStringBuilder();
|
| + if (!excludeMainLabel) {
|
| + builder.append(item.getLabel());
|
| + if (useBoldLabel) {
|
| + builder.setSpan(
|
| + new StyleSpan(android.graphics.Typeface.BOLD), 0, builder.length(), 0);
|
| + }
|
| + }
|
| +
|
| String labelSeparator = singleLine
|
| ? getContext().getString(R.string.autofill_address_summary_separator)
|
| : "\n";
|
| - if (useBoldLabel) {
|
| - builder.setSpan(
|
| - new StyleSpan(android.graphics.Typeface.BOLD), 0, builder.length(), 0);
|
| - }
|
| -
|
| if (!TextUtils.isEmpty(item.getSublabel())) {
|
| if (builder.length() > 0) builder.append(labelSeparator);
|
| builder.append(item.getSublabel());
|
| @@ -1396,10 +1428,18 @@ public abstract class PaymentRequestSection extends LinearLayout implements View
|
| * Returns the label of the section summary.
|
| */
|
| @VisibleForTesting
|
| - public TextView getSummaryLabelForTest() {
|
| + public TextView getLeftSummaryLabelForTest() {
|
| return getSummaryLeftTextView();
|
| }
|
|
|
| + /**
|
| + * Returns the right summary text view.
|
| + */
|
| + @VisibleForTesting
|
| + public TextView getRightSummaryLabelForTest() {
|
| + return getSummaryRightTextView();
|
| + }
|
| +
|
| /** Returns the number of option labels. */
|
| @VisibleForTesting
|
| public int getNumberOfOptionLabelsForTest() {
|
|
|