Set stateDescription during ProgressBar initialization

onProgressRefresh() is only called when the progress changes. So we should set
stateDescription during initialization.

Test: tested with talkback test app. Without this change, the
stateDescription is not available when we focus on the seekbar. After
the change, the stateDescription is avaiable.

Change-Id: I56071ed28e6917c6bd14162884b10440c6955751
This commit is contained in:
yingleiw
2020-01-21 17:47:50 -08:00
parent 7901f7f177
commit 20852a15ef

View File

@@ -52,7 +52,6 @@ import android.view.View;
import android.view.ViewDebug;
import android.view.ViewHierarchyEncoder;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
@@ -307,6 +306,9 @@ public class ProgressBar extends View {
setMax(a.getInt(R.styleable.ProgressBar_max, mMax));
setProgress(a.getInt(R.styleable.ProgressBar_progress, mProgress));
// onProgressRefresh() is only called when the progress changes. So we should set
// stateDescription during initialization here.
super.setStateDescription(formatStateDescription(mProgress));
setSecondaryProgress(a.getInt(
R.styleable.ProgressBar_secondaryProgress, mSecondaryProgress));
@@ -1599,8 +1601,7 @@ public class ProgressBar extends View {
}
void onProgressRefresh(float scale, boolean fromUser, int progress) {
if (AccessibilityManager.getInstance(mContext).isEnabled()
&& mCustomStateDescription == null) {
if (mCustomStateDescription == null) {
super.setStateDescription(formatStateDescription(mProgress));
}
}