diff --git a/src/com/android/settings/datausage/AppDataUsagePreference.java b/src/com/android/settings/datausage/AppDataUsagePreference.java index f5a204a224f..52e24ed3c9f 100644 --- a/src/com/android/settings/datausage/AppDataUsagePreference.java +++ b/src/com/android/settings/datausage/AppDataUsagePreference.java @@ -26,6 +26,8 @@ import com.android.settingslib.net.UidDetailProvider; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.widget.apppreference.AppPreference; +import java.text.NumberFormat; + public class AppDataUsagePreference extends AppPreference { private final AppItem mItem; @@ -66,6 +68,8 @@ public class AppDataUsagePreference extends AppPreference { progress.setVisibility(View.VISIBLE); } progress.setProgress(mPercent); + progress.setContentDescription( + NumberFormat.getPercentInstance().format((double) mPercent / 100)); } private void setAppInfo() { diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java index 15f6c45f7a8..ad41638b37d 100644 --- a/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java +++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java @@ -22,6 +22,11 @@ import static org.mockito.Mockito.when; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ProgressBar; + +import androidx.preference.PreferenceViewHolder; import com.android.settingslib.AppItem; import com.android.settingslib.net.UidDetail; @@ -37,6 +42,7 @@ import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class AppDataUsagePreferenceTest { + private static final String FIFTY_PERCENT = "50%"; @Mock private UidDetailProvider mUidDetailProvider; @@ -77,4 +83,22 @@ public class AppDataUsagePreferenceTest { assertThat(mPreference.getTitle()).isEqualTo(mUidDetail.label); assertThat(mPreference.getIcon()).isEqualTo(mUidDetail.icon); } + + @Test + public void createPref_progressBarShouldSetPercentageContentDescription() { + when(mUidDetailProvider.getUidDetail(mAppItem.key, true /* blocking */)) + .thenReturn(mUidDetail); + mPreference = new AppDataUsagePreference(RuntimeEnvironment.application, mAppItem, + 50 /* percent */, mUidDetailProvider); + final View view = LayoutInflater.from(RuntimeEnvironment.application).inflate( + com.android.settingslib.R.layout.preference_app, null); + final PreferenceViewHolder preferenceViewHolder = + PreferenceViewHolder.createInstanceForTests(view); + final ProgressBar progressBar = (ProgressBar) preferenceViewHolder.findViewById( + android.R.id.progress); + + mPreference.onBindViewHolder(preferenceViewHolder); + + assertThat(progressBar.getContentDescription()).isEqualTo(FIFTY_PERCENT); + } }