From df5313a06d33a0631315ebd62be2b8194f58da29 Mon Sep 17 00:00:00 2001 From: petsjonkin Date: Fri, 28 Feb 2025 19:19:27 +0000 Subject: [PATCH] Fixing resolution announced by Talkback Bug: b/386030131 Test: manual testing Flag: EXEMPT bugfix Change-Id: I83beab2cfdc25d163c657c89193c0d463f86dbb1 --- res/values/strings.xml | 2 ++ .../display/ScreenResolutionFragment.java | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 9d8e4916603..0b8f569b72c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3002,6 +3002,8 @@ Max resolution Max resolution uses more of your battery. Switching your resolution may cause some apps to restart. + + %1$s by %2$s Colors diff --git a/src/com/android/settings/display/ScreenResolutionFragment.java b/src/com/android/settings/display/ScreenResolutionFragment.java index b95d581db5f..224a6f3b391 100644 --- a/src/com/android/settings/display/ScreenResolutionFragment.java +++ b/src/com/android/settings/display/ScreenResolutionFragment.java @@ -23,6 +23,7 @@ import android.graphics.Point; import android.graphics.drawable.Drawable; import android.hardware.display.DisplayManager; import android.provider.Settings; +import android.text.SpannableString; import android.text.TextUtils; import android.util.Log; import android.view.Display; @@ -32,6 +33,7 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceScreen; import com.android.settings.R; +import com.android.settings.Utils; import com.android.settings.core.instrumentation.SettingsStatsLog; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.RadioButtonPickerFragment; @@ -58,7 +60,7 @@ public class ScreenResolutionFragment extends RadioButtonPickerFragment { private Display mDefaultDisplay; private String[] mScreenResolutionOptions; private Set mResolutions; - private String[] mScreenResolutionSummaries; + private SpannableString[] mScreenResolutionSummaries; private IllustrationPreference mImagePreference; private DisplayObserver mDisplayObserver; @@ -84,12 +86,20 @@ public class ScreenResolutionFragment extends RadioButtonPickerFragment { mFullWidth = controller.getFullWidth(); Log.i(TAG, "mHighWidth:" + mHighWidth + "mFullWidth:" + mFullWidth); mScreenResolutionSummaries = - new String[] { - mHighWidth + " x " + controller.getHighHeight(), - mFullWidth + " x " + controller.getFullHeight() + new SpannableString[] { + getResolutionSpannable(mHighWidth, controller.getHighHeight()), + getResolutionSpannable(mFullWidth, controller.getFullHeight()) }; } + + private SpannableString getResolutionSpannable(int width, int height) { + String resolutionString = width + " x " + height; + String accessibleText = mResources.getString( + R.string.screen_resolution_delimiter_a11y, width, height); + return Utils.createAccessibleSequence(resolutionString, accessibleText); + } + @Override protected int getPreferenceScreenResId() { return R.xml.screen_resolution_settings;