From 301d62160896b197a7f230a263676a4896d2097f Mon Sep 17 00:00:00 2001 From: Sally Date: Tue, 17 May 2022 23:39:21 +0000 Subject: [PATCH] Set a pane title on the some a11y windows' root views This allows a service to identify a window based on the title. Configuration changes will restart the activity, losing a11y focus. A11y focus may be retained by matching windows and unique ids. This CL allows matching by window/pane title. Test: manual Bug: 175182916 Bug: 175184180 Change-Id: Iae4627795c2a35e57b651d9e7ce7527a0ddb1353 --- .../accessibility/TextReadingPreferenceFragment.java | 11 +++++++++++ .../ToggleColorInversionPreferenceFragment.java | 10 ++++++++++ .../ToggleDaltonizerPreferenceFragment.java | 10 ++++++++++ 3 files changed, 31 insertions(+) diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java index 4033404cd98..555cc33e2be 100644 --- a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java +++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java @@ -24,6 +24,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.view.View; import android.widget.Toast; import androidx.annotation.IntDef; @@ -104,6 +105,16 @@ public class TextReadingPreferenceFragment extends DashboardFragment { } } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + final View rootView = getActivity().getWindow().peekDecorView(); + if (rootView != null) { + rootView.setAccessibilityPaneTitle(getString( + R.string.accessibility_text_reading_options_title)); + } + } + @Override protected int getPreferenceScreenResId() { return R.xml.accessibility_text_reading_options; diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java index 06f82764a19..52fc14d502b 100644 --- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java @@ -44,6 +44,16 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED; + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + final View rootView = getActivity().getWindow().peekDecorView(); + if (rootView != null) { + rootView.setAccessibilityPaneTitle(getString( + R.string.accessibility_display_inversion_preference_title)); + } + } + @Override public int getMetricsCategory() { return SettingsEnums.ACCESSIBILITY_COLOR_INVERSION_SETTINGS; diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java index 208d5c1549e..a02255e6e9e 100644 --- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java @@ -73,6 +73,16 @@ public final class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePrefe return sControllers; } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + final View rootView = getActivity().getWindow().peekDecorView(); + if (rootView != null) { + rootView.setAccessibilityPaneTitle(getString( + R.string.accessibility_display_daltonizer_preference_title)); + } + } + @Override public void onCheckedChanged(Preference preference) { for (AbstractPreferenceController controller : sControllers) {