summaryrefslogtreecommitdiff
path: root/core/java/android/widget/ToggleButton.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/widget/ToggleButton.java')
-rw-r--r--core/java/android/widget/ToggleButton.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/widget/ToggleButton.java b/core/java/android/widget/ToggleButton.java
index 9255ccb5cda7..59e0c16cde37 100644
--- a/core/java/android/widget/ToggleButton.java
+++ b/core/java/android/widget/ToggleButton.java
@@ -17,6 +17,7 @@
package android.widget;
import android.annotation.FloatRange;
+import android.annotation.NonNull;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
@@ -24,6 +25,8 @@ import android.graphics.drawable.LayerDrawable;
import android.util.AttributeSet;
import android.view.inspector.InspectableProperty;
+import com.android.internal.R;
+
/**
* Displays checked/unchecked states as a button
* with a "light" indicator and by default accompanied with the text "ON" or "OFF".
@@ -55,6 +58,9 @@ public class ToggleButton extends CompoundButton {
mTextOff = a.getText(com.android.internal.R.styleable.ToggleButton_textOff);
mDisabledAlpha = a.getFloat(com.android.internal.R.styleable.ToggleButton_disabledAlpha, 0.5f);
syncTextState();
+ // Default state is derived from on/off-text, so state has to be updated when on/off-text
+ // are updated.
+ setDefaultStateDescritption();
a.recycle();
}
@@ -103,6 +109,9 @@ public class ToggleButton extends CompoundButton {
*/
public void setTextOn(CharSequence textOn) {
mTextOn = textOn;
+ // Default state is derived from on/off-text, so state has to be updated when on/off-text
+ // are updated.
+ setDefaultStateDescritption();
}
/**
@@ -122,6 +131,9 @@ public class ToggleButton extends CompoundButton {
*/
public void setTextOff(CharSequence textOff) {
mTextOff = textOff;
+ // Default state is derived from on/off-text, so state has to be updated when on/off-text
+ // are updated.
+ setDefaultStateDescritption();
}
/**
@@ -172,4 +184,15 @@ public class ToggleButton extends CompoundButton {
public CharSequence getAccessibilityClassName() {
return ToggleButton.class.getName();
}
+
+ /** @hide **/
+ @Override
+ @NonNull
+ protected CharSequence getButtonStateDescription() {
+ if (isChecked()) {
+ return mTextOn == null ? getResources().getString(R.string.capital_on) : mTextOn;
+ } else {
+ return mTextOff == null ? getResources().getString(R.string.capital_off) : mTextOff;
+ }
+ }
}