OLD | NEW |
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.graphics.drawable.Drawable; | |
8 | |
9 import javax.annotation.Nullable; | 7 import javax.annotation.Nullable; |
10 | 8 |
11 /** | 9 /** |
12 * An option that the user can select, e.g., a shipping option, a shipping addre
ss, or a payment | 10 * An option that the user can select, e.g., a shipping option, a shipping addre
ss, or a payment |
13 * method. | 11 * method. |
14 */ | 12 */ |
15 public class PaymentOption implements Completable { | 13 public class PaymentOption implements Completable { |
| 14 /** The placeholder value that indicates the absence of an icon for this opt
ion. */ |
| 15 public static final int NO_ICON = 0; |
| 16 |
16 protected boolean mIsComplete; | 17 protected boolean mIsComplete; |
17 private String mId; | 18 private String mId; |
18 private Drawable mIcon; | 19 private int mIcon; |
19 private String[] mLabels = {null, null, null}; | 20 private String[] mLabels = {null, null, null}; |
20 private boolean mIsValid = true; | 21 private boolean mIsValid = true; |
21 | 22 |
22 /** See {@link #PaymentOption(String, String, String, String, int)}. */ | 23 /** See {@link #PaymentOption(String, String, String, String, int)}. */ |
23 public PaymentOption(String id, @Nullable String label, @Nullable String sub
label, | 24 public PaymentOption(String id, @Nullable String label, @Nullable String sub
label, int icon) { |
24 @Nullable Drawable icon) { | |
25 this(id, label, sublabel, null, icon); | 25 this(id, label, sublabel, null, icon); |
26 } | 26 } |
27 | 27 |
28 /** | 28 /** |
29 * Constructs a payment option. | 29 * Constructs a payment option. |
30 * | 30 * |
31 * @param id The identifier. | 31 * @param id The identifier. |
32 * @param label The label. | 32 * @param label The label. |
33 * @param sublabel The optional sublabel. | 33 * @param sublabel The optional sublabel. |
34 * @param tertiarylabel The optional tertiary label. | 34 * @param tertiarylabel The optional tertiary label. |
35 * @param icon The drawable icon identifier or null. | 35 * @param icon The drawable icon identifier or NO_ICON. |
36 */ | 36 */ |
37 public PaymentOption(String id, @Nullable String label, @Nullable String sub
label, | 37 public PaymentOption(String id, @Nullable String label, @Nullable String sub
label, |
38 @Nullable String tertiarylabel, @Nullable Drawable icon) { | 38 @Nullable String tertiarylabel, int icon) { |
39 updateIdentifierLabelsAndIcon(id, label, sublabel, tertiarylabel, icon); | 39 updateIdentifierLabelsAndIcon(id, label, sublabel, tertiarylabel, icon); |
40 } | 40 } |
41 | 41 |
42 @Override | 42 @Override |
43 public boolean isComplete() { | 43 public boolean isComplete() { |
44 return mIsComplete; | 44 return mIsComplete; |
45 } | 45 } |
46 | 46 |
47 /** | 47 /** |
48 * The non-human readable identifier for this option. For example, "standard
_shipping" or the | 48 * The non-human readable identifier for this option. For example, "standard
_shipping" or the |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 } | 88 } |
89 | 89 |
90 /** | 90 /** |
91 * Updates the identifier, labels, and icon of this option. Called after the
user has | 91 * Updates the identifier, labels, and icon of this option. Called after the
user has |
92 * edited this option. | 92 * edited this option. |
93 * | 93 * |
94 * @param id The new id to use. Should not be null. | 94 * @param id The new id to use. Should not be null. |
95 * @param label The new label to use. Should not be null. | 95 * @param label The new label to use. Should not be null. |
96 * @param sublabel The new sublabel to use. Can be null. | 96 * @param sublabel The new sublabel to use. Can be null. |
97 * @param tertiarylabel The new tertiary label to use. Can be null. | 97 * @param tertiarylabel The new tertiary label to use. Can be null. |
98 * @param icon The drawable icon identifier or null. | 98 * @param icon The drawable icon identifier or NO_ICON. |
99 */ | 99 */ |
100 protected void updateIdentifierLabelsAndIcon( | 100 protected void updateIdentifierLabelsAndIcon( |
101 String id, String label, @Nullable String sublabel, @Nullable String
tertiarylabel, | 101 String id, String label, @Nullable String sublabel, @Nullable String
tertiarylabel, |
102 @Nullable Drawable icon) { | 102 int icon) { |
103 updateIdentifierAndLabels(id, label, sublabel, tertiarylabel); | 103 updateIdentifierAndLabels(id, label, sublabel, tertiarylabel); |
104 mIcon = icon; | 104 mIcon = icon; |
105 } | 105 } |
106 | 106 |
107 /** * The drawable icon for this payment option. */ | 107 /** |
108 public Drawable getDrawableIcon() { | 108 * The identifier for the drawable icon for this payment option. For example
, R.drawable.pr_visa |
| 109 * or NO_ICON. |
| 110 */ |
| 111 public int getDrawableIconId() { |
109 return mIcon; | 112 return mIcon; |
110 } | 113 } |
111 | 114 |
112 /** | 115 /** |
113 * Marks this option as invalid. For example, this can be a shipping address
that's not served | 116 * Marks this option as invalid. For example, this can be a shipping address
that's not served |
114 * by the merchant. | 117 * by the merchant. |
115 */ | 118 */ |
116 public void setInvalid() { | 119 public void setInvalid() { |
117 mIsValid = false; | 120 mIsValid = false; |
118 } | 121 } |
119 | 122 |
120 /** @return True if this option is valid. */ | 123 /** @return True if this option is valid. */ |
121 public boolean isValid() { | 124 public boolean isValid() { |
122 return mIsValid; | 125 return mIsValid; |
123 } | 126 } |
124 } | 127 } |
OLD | NEW |