summaryrefslogtreecommitdiff
path: root/core/java/android/widget/CheckedTextView.java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-08-12 16:26:37 -0400
committerAlan Viverette <alanv@google.com>2015-08-12 16:26:37 -0400
commitc60feca6a93273e63735d31bd4bfe21462c1b003 (patch)
tree3ebf7d481a5d451560335c0ab4720730a024bd8c /core/java/android/widget/CheckedTextView.java
parentc91edfafacd3292bd08038cd90e647f776aa2af2 (diff)
Clear check mark resource ID when set from Drawable object
Bug: 22626247 Change-Id: Ia32bc19512442fdf0d2c091d63a61f992545f2c2
Diffstat (limited to 'core/java/android/widget/CheckedTextView.java')
-rw-r--r--core/java/android/widget/CheckedTextView.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/core/java/android/widget/CheckedTextView.java b/core/java/android/widget/CheckedTextView.java
index 6b4b2c73bdff..c1d275613ed9 100644
--- a/core/java/android/widget/CheckedTextView.java
+++ b/core/java/android/widget/CheckedTextView.java
@@ -152,13 +152,8 @@ public class CheckedTextView extends TextView implements Checkable {
return;
}
- mCheckMarkResource = resId;
-
- Drawable d = null;
- if (mCheckMarkResource != 0) {
- d = getContext().getDrawable(mCheckMarkResource);
- }
- setCheckMarkDrawable(d);
+ final Drawable d = resId != 0 ? getContext().getDrawable(resId) : null;
+ setCheckMarkDrawableInternal(d, resId);
}
/**
@@ -172,12 +167,18 @@ public class CheckedTextView extends TextView implements Checkable {
* @see #setCheckMarkDrawable(int)
* @see #getCheckMarkDrawable()
*/
- public void setCheckMarkDrawable(Drawable d) {
+ public void setCheckMarkDrawable(@Nullable Drawable d) {
+ setCheckMarkDrawableInternal(d, 0);
+ }
+
+ private void setCheckMarkDrawableInternal(@Nullable Drawable d, @DrawableRes int resId) {
if (mCheckMarkDrawable != null) {
mCheckMarkDrawable.setCallback(null);
unscheduleDrawable(mCheckMarkDrawable);
}
+
mNeedRequestlayout = (d != mCheckMarkDrawable);
+
if (d != null) {
d.setCallback(this);
d.setVisible(getVisibility() == VISIBLE, false);
@@ -190,7 +191,9 @@ public class CheckedTextView extends TextView implements Checkable {
} else {
mCheckMarkWidth = 0;
}
+
mCheckMarkDrawable = d;
+ mCheckMarkResource = resId;
// Do padding resolution. This will call internalSetPadding() and do a
// requestLayout() if needed.