Merge "Remove LooperMode.Legacy usage from settings/biometrics/" into main
diff --git a/TEST_MAPPING b/TEST_MAPPING
index fd6bcbf..f84565f 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -15,6 +15,9 @@
         {
           "include-filter": "com.android.settings.password"
         },
+	 {
+          "include-filter": "com.android.settings.privatespace"
+        },
         {
           "include-filter": "com.android.settings.safetycenter"
         },
diff --git a/res/layout/apn_preference_layout.xml b/res/layout/apn_preference_layout.xml
index a958da1..d536234 100644
--- a/res/layout/apn_preference_layout.xml
+++ b/res/layout/apn_preference_layout.xml
@@ -57,14 +57,19 @@
 
     </RelativeLayout>
 
-    <RadioButton
-        android:id="@+id/apn_radiobutton"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dip"
-        android:layout_marginEnd="8dip"
-        android:layout_gravity="center_vertical"
-        android:focusable="true"
-        android:clickable="true" />
+    <FrameLayout
+        android:id="@+id/apn_radio_button_frame"
+        android:layout_width="@dimen/min_tap_target_size"
+        android:layout_height="@dimen/min_tap_target_size"
+        android:layout_margin="8dp">
+
+        <RadioButton
+            android:id="@+id/apn_radiobutton"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:clickable="false"
+            android:focusable="false" />
+    </FrameLayout>
 
 </LinearLayout>
diff --git a/res/layout/bluetooth_pin_confirm.xml b/res/layout/bluetooth_pin_confirm.xml
index 04f1b6f..fb3435b 100644
--- a/res/layout/bluetooth_pin_confirm.xml
+++ b/res/layout/bluetooth_pin_confirm.xml
@@ -98,6 +98,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:text="@string/bluetooth_pairing_phonebook_toggle_details"
+                    android:hyphenationFrequency="normalFast"
                     android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Caption" />
             </LinearLayout>
             <Switch
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f8c58ce..cbd9772 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3325,7 +3325,7 @@
 
     <!-- _satellite_setting_preference_layout -->
     <!-- _satellite_setting_preference_layout screen title-->
-    <string name="satellite_setting">Satellite Messaging</string>
+    <string name="satellite_setting">Satellite messaging</string>
 
     <!-- APN Settings -->
     <!-- APN settings screen title -->
@@ -4865,33 +4865,45 @@
     <!-- Accessibility label for paging indicator in accessibility tutorial page. [CHAR LIMIT=NONE] -->
     <string name="accessibility_tutorial_pager">Page <xliff:g id="current_page" example="2">%1$d</xliff:g> of <xliff:g id="num_pages" example="3">%2$d</xliff:g></string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with button. [CHAR LIMIT=50] -->
-    <string name="accessibility_tutorial_dialog_title_button">Use accessibility button to open</string>
+    <string name="accessibility_tutorial_dialog_title_button">Accessibility button shortcut</string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with volume keys. [CHAR LIMIT=100] -->
-    <string name="accessibility_tutorial_dialog_title_volume">Hold volume keys to open</string>
+    <string name="accessibility_tutorial_dialog_title_volume">Volume keys shortcut</string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with triple tap. [CHAR LIMIT=100] -->
-    <string name="accessibility_tutorial_dialog_title_triple">Triple tap screen to open</string>
+    <string name="accessibility_tutorial_dialog_title_triple">Triple tap shortcut</string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with two finger double tap. [CHAR LIMIT=100] -->
-    <string name="accessibility_tutorial_dialog_title_two_finger_double">Two finger double tap screen to open</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_double">%1$d-finger double tap shortcut</string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with quick setting shortcut. [CHAR LIMIT=100] -->
     <string name="accessibility_tutorial_dialog_title_quick_setting">Quick Settings shortcut</string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with gesture. [CHAR LIMIT=50] -->
-    <string name="accessibility_tutorial_dialog_title_gesture">Use gesture to open</string>
+    <string name="accessibility_tutorial_dialog_title_gesture">Accessibility gesture shortcut</string>
     <!-- Title for the accessibility tutorial dialog in gesture navigation settings. [CHAR LIMIT=50] -->
     <string name="accessibility_tutorial_dialog_title_gesture_settings">Use accessibility gesture</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using the 3-button nav bar. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_tutorial_dialog_message_button">To use this feature, tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> on the bottom of your screen.\n\nTo switch between features, touch &amp; hold the accessibility button.</string>
+    <string name="accessibility_tutorial_dialog_message_button">To use this feature, tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen.\n\nTo switch between features, touch &amp; hold the accessibility button.</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using the accessibility floating button. [CHAR LIMIT=100] -->
-    <string name="accessibility_tutorial_dialog_message_floating_button">To use this feature, tap the accessibility button on your screen.</string>
+    <string name="accessibility_tutorial_dialog_message_floating_button">To use this feature, tap the accessibility button on your screen</string>
     <!-- Instruction for the accessibility tutorial dialog in accessibility service with volume keys. [CHAR LIMIT=100] -->
-    <string name="accessibility_tutorial_dialog_message_volume">To use this feature, press &amp; hold both volume keys.</string>
-    <!-- Instruction for the accessibility tutorial dialog in accessibility service with triple tap. [CHAR LIMIT=100] -->
+    <string name="accessibility_tutorial_dialog_message_volume">To use this feature, press &amp; hold both volume keys</string>
+    <!-- Instruction for the accessibility tutorial dialog for the screen magnification feature with triple tap. [CHAR LIMIT=100] -->
     <string name="accessibility_tutorial_dialog_message_triple">To start and stop magnification, triple-tap anywhere on your screen.</string>
-    <!-- Instruction for the accessibility tutorial dialog in accessibility service with two finger double tap. [CHAR LIMIT=100] -->
-    <string name="accessibility_tutorial_dialog_message_two_finger_triple">To start and stop magnification, double-tap anywhere on your screen with two fingers.</string>
-    <!-- Instruction for the accessibility tutorial dialog in accessibility service with triple tap. [CHAR LIMIT=NONE]-->
-    <string name="accessibility_tutorial_dialog_message_quick_setting">To use this feature, swipe down from the top of your screen.</string>
+    <!-- Instruction for the accessibility tutorial dialog for the screen magnification feature with triple tap shortcut. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_tutorial_dialog_tripletap_instruction">To start and stop magnification, quickly tap the screen %1$d times</string>
+    <!-- Instruction for the accessibility tutorial dialog for the screen magnification feature with two finger double tap. [CHAR LIMIT=100] -->
+    <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction">To start and stop magnification, quickly tap the screen twice with %1$d fingers</string>
+    <!-- Instruction for the accessibility tutorial dialog in accessibility service with quick settings shortcut. [CHAR LIMIT=NONE]-->
+    <string name="accessibility_tutorial_dialog_message_quick_setting">{count, plural,
+      =1    {To use this feature, swipe down from the top of your screen. Then, find the {featureName} tile.}
+      other {To use this feature, swipe down from the top of your screen with # fingers. Then, find the {featureName} tile.}
+    }</string>
+    <!-- Warning for the accessibility shortcut type that is not available immediately during device setup when chosen, but will be available after setup. [CHAR LIMIT=NONE]-->
+    <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw">This shortcut will be available after you finish device setup.</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation and touch exploration is not enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_tutorial_dialog_message_gesture">To use this feature, swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
+    <!-- Instruction for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_tutorial_dialog_gesture_shortcut_instruction">{count, plural,
+      =1    {To use this feature, swipe up from the bottom of your screen}
+      other {To use this feature, swipe up with # fingers from the bottom of your screen}
+    }</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation and touch exploration is enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_tutorial_dialog_message_gesture_talkback">To use this feature, swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</string>
     <!-- Message for the accessibility tutorial dialog when user chooses gesture navigation in navigation settings, an accessibility service is using the accessibility button, and touch exploration is disabled. [CHAR LIMIT=NONE] -->
@@ -4901,7 +4913,9 @@
     <!-- Button for the accessibility tutorial dialog to dismiss the dialog when user clicks it. [CHAR LIMIT=10] -->
     <string name="accessibility_tutorial_dialog_button">Got it</string>
     <!-- Button for the accessibility tutorial dialog to open the Accessibility button settings page. [CHAR LIMIT=30] -->
-    <string name="accessibility_tutorial_dialog_link_button">Button settings</string>
+    <string name="accessibility_tutorial_dialog_link_button">Customize button</string>
+    <!-- Button for the accessibility tutorial dialog to open a page to select the different software shortcut type. [CHAR LIMIT=30] -->
+    <string name="accessibility_tutorial_dialog_configure_software_shortcut_type">More options</string>
     <!-- Title for accessibility shortcut preference for accessibility apps. [CHAR LIMIT=40] -->
     <string name="accessibility_shortcut_title"><xliff:g id="service" example="Select to Speak">%1$s</xliff:g> shortcut</string>
     <!-- Shown as one of the item in the chosen accessibility shortcut types list presented as a label next to the shortcut toggle. [CHAR LIMIT=NONE] -->
@@ -4912,16 +4926,23 @@
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture">Swipe up with 2 fingers</string>
     <!-- Title for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation and touch exploration are enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture_talkback">Swipe up with 3 fingers</string>
-    <!-- Summary for accessibility shortcut preference for software shortcut type. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_title_software">Tap accessibility button</string>
-    <!-- Summary for accessibility shortcut preference for software shortcut gesture type. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture">Use accessibility gesture</string>
+    <!-- Title for accessibility shortcut preference for software shortcut type. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_title_software">Accessibility button</string>
+    <!-- Summary for accessibility shortcut preference for floating button shortcut type. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_summary_floating_button">Tap the floating button</string>
+    <!-- Title for accessibility shortcut preference for software shortcut gesture type. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture">Accessibility gesture</string>
     <!-- Summary for software shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_summary_software">Tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen.\n\nTo switch between features, touch &amp; hold the accessibility button.</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_software">Tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen. To switch between features, touch &amp; hold the accessibility button.</string>
     <!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation is enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_software_gesture">Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
     <!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation and touch exploration are enabled [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback">Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</string>
+    <!-- Summary for gesture shortcut option -->
+    <string name="accessibility_shortcut_edit_dialog_summary_gesture">{count, plural,
+      =1      {Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}
+      other   {Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}
+    }</string>
     <!-- Summary for software shortcut in accessibility edit shortcut dialog when user had enabled the accessibility floating button mode (Floating over other apps). [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating"><annotation id="link">More options</annotation></string>
     <!-- Footer to show help link content description. [CHAR LIMIT=NONE] -->
@@ -4929,25 +4950,41 @@
     <!-- Title for quick settings shortcut option in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_title_quick_settings">Quick Settings</string>
     <!-- Summary for quick settings shortcut option in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_summary_quick_settings">Swipe down from the top of your screen</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_quick_settings">{count, plural,
+      =1      {Swipe down from the top of your screen}
+      other   {Swipe down with # fingers from the top of your screen}
+    }</string>
+    <!-- Summary for quick settings shortcut option in accessibility edit shortcut dialog in Setup Wizard. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_summary_quick_settings_suw">{count, plural,
+      =1      {Swipe down from the top of your screen. This shortcut will be available after you finish device setup.}
+      other   {Swipe down with # fingers from the top of your screen. This shortcut will be available after you finish device setup.}
+    }</string>
     <!-- Shown as one of the item in the chosen accessibility shortcut types list presented as a label next to the shortcut toggle. [CHAR LIMIT=NONE] -->
     <string name="accessibility_feature_shortcut_setting_summary_quick_settings">Quick Settings</string>
     <!-- Title for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_title_hardware">Hold volume keys</string>
+    <string name="accessibility_shortcut_edit_dialog_title_hardware">Volume keys</string>
     <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_hardware_keyword">hold volume keys</string>
+    <string name="accessibility_shortcut_hardware_keyword">volume keys</string>
     <!-- Summary for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_hardware">Press &amp; hold both volume keys</string>
     <!-- Title for two finger double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap">Two-finger double-tap screen</string>
-    <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_two_finger_double_tap_keyword">two-finger double-tap screen</string>
+    <!-- Title for 2-finger double tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap">%1$d-finger double tap</string>
+    <!-- Summary for 2-finger double tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap">Quickly tap the screen twice with %1$d fingers</string>
+    <!-- Title for triple tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_screen_title_triple_tap">Triple tap</string>
+    <!-- Summary for triple tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_screen_summary_triple_tap">Quickly tap the screen %1$d times. This may slow down your device.</string>
+    <!-- 2-finger double tap is shown as part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword">%1$d-finger double tap</string>
     <!-- Summary for two finger double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap">Quickly tap screen {0,number,integer} times with two fingers</string>
     <!-- Title for triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap">Triple-tap screen</string>
     <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_triple_tap_keyword">triple-tap screen</string>
+    <string name="accessibility_shortcut_triple_tap_keyword">triple tap</string>
     <!-- Summary for triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap">Quickly tap screen {0,number,integer} times. This shortcut may slow down your device</string>
     <!-- Title for the accessibility edit shortcut dialog to save the preference when user clicks it. [CHAR LIMIT=20] -->
@@ -11654,7 +11691,7 @@
     <!-- Summary for satellite supported service [CHAR_LIMIT=NONE] -->
     <string name="summary_supported_service">You can text anyone, including emergency services. Your phone will reconnect to a mobile network when available.</string>
     <!-- learn more text - more about satellite messaging [CHAR_LIMIT=NONE] -->
-    <string name="satellite_setting_summary_more_information">Satellite messaging may take longer and is available only in some areas, Weather and certain structures may affect your satellite connection. Calling by satellite isn\u2019t available.\n\nIt may take some time for changes to your account to show in Settings. Contact <xliff:g id="carrier_name" example="T-Mobile">%1$s</xliff:g> for details.</string>
+    <string name="satellite_setting_summary_more_information">Satellite messaging may take longer and is available only in some areas. Weather and certain structures may affect your satellite connection. Calling by satellite isn\u2019t available. Emergency calls may still connect.\n\nIt may take some time for account changes to show in Settings. Contact your carrier for details.</string>
     <!-- more about satellite messaging [CHAR_LIMIT=NONE] -->
     <string name="more_about_satellite_messaging">More about satellite messaging</string>
     <!-- URL for more info about satellite messaging [CHAR LIMIT=60] -->
diff --git a/res/xml/accessibility_edit_shortcuts.xml b/res/xml/accessibility_edit_shortcuts.xml
index 37e25af..bb55527 100644
--- a/res/xml/accessibility_edit_shortcuts.xml
+++ b/res/xml/accessibility_edit_shortcuts.xml
@@ -24,7 +24,7 @@
         android:selectable="false"
         settings:allowDividerAbove="false"
         settings:allowDividerBelow="false"/>
-
+    <!-- LINT.IfChange(shortcut_type_ui_order) -->
     <com.android.settings.accessibility.shortcuts.ShortcutOptionPreference
         android:key="@string/accessibility_shortcut_quick_settings_pref"
         android:persistent="false"
@@ -90,4 +90,11 @@
         settings:allowDividerAbove="false"
         settings:allowDividerBelow="false"
         settings:controller="com.android.settings.accessibility.shortcuts.TripleTapShortcutOptionController" />
+    <!--
+        LINT.ThenChange(
+            /src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java:shortcut_type_ui_order,
+            /src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java:shortcut_type_ui_order,
+            /src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java:shortcut_type_ui_order
+        )
+    -->
 </PreferenceScreen>
\ No newline at end of file
diff --git a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
index 4b394a0..3bb03de 100644
--- a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
+++ b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
@@ -29,12 +29,14 @@
 import android.text.SpannableString;
 import android.text.SpannableStringBuilder;
 import android.text.style.ImageSpan;
+import android.util.ArrayMap;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
+import android.widget.Button;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -57,6 +59,7 @@
 import com.android.server.accessibility.Flags;
 import com.android.settings.R;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.utils.StringUtil;
 import com.android.settingslib.widget.LottieColorUtils;
 
 import com.airbnb.lottie.LottieAnimationView;
@@ -66,6 +69,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Utility class for creating the dialog that guides users for gesture navigation for
@@ -117,12 +121,17 @@
         return createDialog(context, DialogType.LAUNCH_SERVICE_BY_ACCESSIBILITY_GESTURE);
     }
 
-    static AlertDialog createAccessibilityTutorialDialog(Context context, int shortcutTypes) {
-        return createAccessibilityTutorialDialog(context, shortcutTypes, mOnClickListener);
+    static AlertDialog createAccessibilityTutorialDialog(
+            @NonNull Context context, int shortcutTypes, @NonNull CharSequence featureName) {
+        return createAccessibilityTutorialDialog(
+                context, shortcutTypes, mOnClickListener, featureName);
     }
 
-    static AlertDialog createAccessibilityTutorialDialog(Context context, int shortcutTypes,
-            @Nullable DialogInterface.OnClickListener actionButtonListener) {
+    static AlertDialog createAccessibilityTutorialDialog(
+            @NonNull Context context,
+            int shortcutTypes,
+            @Nullable DialogInterface.OnClickListener actionButtonListener,
+            @NonNull CharSequence featureName) {
 
         final int category = SettingsEnums.SWITCH_SHORTCUT_DIALOG_ACCESSIBILITY_BUTTON_SETTINGS;
         final DialogInterface.OnClickListener linkButtonListener =
@@ -138,46 +147,59 @@
                         linkButtonListener)
                 .create();
 
-        final List<TutorialPage> tutorialPages =
-                createShortcutTutorialPages(context, shortcutTypes);
+        final List<TutorialPage> tutorialPages = createShortcutTutorialPages(
+                context, shortcutTypes, featureName, /* isInSetupWizard= */ false);
         Preconditions.checkArgument(!tutorialPages.isEmpty(),
                 /* errorMessage= */ "Unexpected tutorial pages size");
 
-        final TutorialPageChangeListener.OnPageSelectedCallback callback = index -> {
-            final int pageType = tutorialPages.get(index).getType();
-            alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setVisibility(
-                    pageType == UserShortcutType.SOFTWARE ? VISIBLE : GONE);
-        };
+        final TutorialPageChangeListener.OnPageSelectedCallback callback =
+                index -> updateTutorialNegativeButtonTextAndVisibility(
+                        alertDialog, tutorialPages, index);
 
         alertDialog.setView(createShortcutNavigationContentView(context, tutorialPages, callback));
 
         // Showing first page won't invoke onPageSelectedCallback. Need to check the first tutorial
         // page type manually to set correct visibility of the link button.
-        alertDialog.setOnShowListener(dialog -> {
-            final int firstPageType = tutorialPages.get(0).getType();
-            alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setVisibility(
-                    firstPageType == UserShortcutType.SOFTWARE ? VISIBLE : GONE);
-        });
+        alertDialog.setOnShowListener(
+                dialog -> updateTutorialNegativeButtonTextAndVisibility(
+                        alertDialog, tutorialPages, /* selectedPageIndex= */ 0));
 
         return alertDialog;
     }
 
-    static AlertDialog createAccessibilityTutorialDialogForSetupWizard(Context context,
-            int shortcutTypes) {
-        return createAccessibilityTutorialDialogForSetupWizard(context, shortcutTypes,
-                mOnClickListener);
+    private static void updateTutorialNegativeButtonTextAndVisibility(
+            AlertDialog dialog, List<TutorialPage> pages, int selectedPageIndex) {
+        final Button button = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+        final int pageType = pages.get(selectedPageIndex).getType();
+        final int buttonVisibility = pageType == UserShortcutType.SOFTWARE ? VISIBLE : GONE;
+        button.setVisibility(buttonVisibility);
+        if (buttonVisibility == VISIBLE) {
+            final int textResId = AccessibilityUtil.isFloatingMenuEnabled(dialog.getContext())
+                    ? R.string.accessibility_tutorial_dialog_link_button
+                    : R.string.accessibility_tutorial_dialog_configure_software_shortcut_type;
+            button.setText(textResId);
+        }
     }
 
     static AlertDialog createAccessibilityTutorialDialogForSetupWizard(Context context,
-            int shortcutTypes, @Nullable DialogInterface.OnClickListener actionButtonListener) {
+            int shortcutTypes, CharSequence featureName) {
+        return createAccessibilityTutorialDialogForSetupWizard(context, shortcutTypes,
+                mOnClickListener, featureName);
+    }
+
+    static AlertDialog createAccessibilityTutorialDialogForSetupWizard(
+            @NonNull Context context,
+            int shortcutTypes,
+            @Nullable DialogInterface.OnClickListener actionButtonListener,
+            @NonNull CharSequence featureName) {
 
         final AlertDialog alertDialog = new AlertDialog.Builder(context)
                 .setPositiveButton(R.string.accessibility_tutorial_dialog_button,
                         actionButtonListener)
                 .create();
 
-        final List<TutorialPage> tutorialPages =
-                createShortcutTutorialPages(context, shortcutTypes);
+        final List<TutorialPage> tutorialPages = createShortcutTutorialPages(
+                context, shortcutTypes, featureName, /* inSetupWizard= */ true);
         Preconditions.checkArgument(!tutorialPages.isEmpty(),
                 /* errorMessage= */ "Unexpected tutorial pages size");
 
@@ -403,8 +425,8 @@
         final View image =
                 createIllustrationViewWithImageRawResource(context,
                         R.raw.a11y_shortcut_type_triple_tap);
-        final CharSequence instruction =
-                context.getText(R.string.accessibility_tutorial_dialog_message_triple);
+        final CharSequence instruction = context.getString(
+                R.string.accessibility_tutorial_dialog_tripletap_instruction, 3);
         final ImageView indicatorIcon =
                 createImageView(context, R.drawable.ic_accessibility_page_indicator);
         indicatorIcon.setEnabled(false);
@@ -413,15 +435,16 @@
     }
 
     private static TutorialPage createTwoFingerTripleTapTutorialPage(@NonNull Context context) {
-        // TODO(b/308088945): Update tutorial string and image when UX provides them
         final int type = UserShortcutType.TWOFINGER_DOUBLETAP;
-        final CharSequence title =
-                context.getText(R.string.accessibility_tutorial_dialog_title_two_finger_double);
+        final int numFingers = 2;
+        final CharSequence title = context.getString(
+                R.string.accessibility_tutorial_dialog_title_two_finger_double, numFingers);
+        // TODO(b/308088945): Update tutorial image when UX provides them
         final View image =
                 createIllustrationViewWithImageRawResource(context,
                         R.raw.a11y_shortcut_type_triple_tap);
-        final CharSequence instruction =
-                context.getText(R.string.accessibility_tutorial_dialog_message_two_finger_triple);
+        final CharSequence instruction = context.getString(
+                R.string.accessibility_tutorial_dialog_twofinger_doubletap_instruction, numFingers);
         final ImageView indicatorIcon =
                 createImageView(context, R.drawable.ic_accessibility_page_indicator);
         indicatorIcon.setEnabled(false);
@@ -429,30 +452,50 @@
         return new TutorialPage(type, title, image, indicatorIcon, instruction);
     }
 
-    private static TutorialPage createQuickSettingTutorialPage(@NonNull Context context) {
+    private static TutorialPage createQuickSettingsTutorialPage(
+            @NonNull Context context, @NonNull CharSequence featureName, boolean inSetupWizard) {
         final int type = UserShortcutType.QUICK_SETTINGS;
         final CharSequence title =
                 context.getText(R.string.accessibility_tutorial_dialog_title_quick_setting);
         final View image =
                 createIllustrationView(context,
                         R.drawable.a11y_shortcut_type_quick_settings);
-        final CharSequence instruction =
-                context.getText(R.string.accessibility_tutorial_dialog_message_quick_setting);
+        final int numFingers = AccessibilityUtil.isTouchExploreEnabled(context) ? 2 : 1;
+        Map<String, Object> arguments = new ArrayMap<>();
+        arguments.put("count", numFingers);
+        arguments.put("featureName", featureName);
+        final CharSequence instruction = StringUtil.getIcuPluralsString(context,
+                arguments,
+                R.string.accessibility_tutorial_dialog_message_quick_setting);
+        final SpannableStringBuilder tutorialText = new SpannableStringBuilder();
+        if (inSetupWizard) {
+            tutorialText.append(context.getText(
+                            R.string.accessibility_tutorial_dialog_shortcut_unavailable_in_suw))
+                    .append("\n\n");
+        }
+        tutorialText.append(instruction);
         final ImageView indicatorIcon =
                 createImageView(context, R.drawable.ic_accessibility_page_indicator);
         indicatorIcon.setEnabled(false);
 
-        return new TutorialPage(type, title, image, indicatorIcon, instruction);
+        return new TutorialPage(type, title, image, indicatorIcon, tutorialText);
     }
 
+    /**
+     * Create the tutorial pages for selected shortcut types in the same order as shown in the
+     * edit shortcut screen.
+     */
     @VisibleForTesting
-    static List<TutorialPage> createShortcutTutorialPages(@NonNull Context context,
-            int shortcutTypes) {
+    static List<TutorialPage> createShortcutTutorialPages(
+            @NonNull Context context, int shortcutTypes, @NonNull CharSequence featureName,
+            boolean inSetupWizard) {
+        // LINT.IfChange(shortcut_type_ui_order)
         final List<TutorialPage> tutorialPages = new ArrayList<>();
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
             if ((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
                     == UserShortcutType.QUICK_SETTINGS) {
-                tutorialPages.add(createQuickSettingTutorialPage(context));
+                tutorialPages.add(
+                        createQuickSettingsTutorialPage(context, featureName, inSetupWizard));
             }
         }
         if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
@@ -463,10 +506,6 @@
             tutorialPages.add(createHardwareTutorialPage(context));
         }
 
-        if ((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP) {
-            tutorialPages.add(createTripleTapTutorialPage(context));
-        }
-
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
             if ((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
                     == UserShortcutType.TWOFINGER_DOUBLETAP) {
@@ -474,6 +513,11 @@
             }
         }
 
+        if ((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP) {
+            tutorialPages.add(createTripleTapTutorialPage(context));
+        }
+        // LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
+
         return tutorialPages;
     }
 
@@ -509,10 +553,11 @@
             final int resId = R.string.accessibility_tutorial_dialog_message_floating_button;
             sb.append(context.getText(resId));
         } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
-            final int resId = AccessibilityUtil.isTouchExploreEnabled(context)
-                    ? R.string.accessibility_tutorial_dialog_message_gesture_talkback
-                    : R.string.accessibility_tutorial_dialog_message_gesture;
-            sb.append(context.getText(resId));
+            final int numFingers = AccessibilityUtil.isTouchExploreEnabled(context) ? 3 : 2;
+            sb.append(StringUtil.getIcuPluralsString(
+                    context,
+                    numFingers,
+                    R.string.accessibility_tutorial_dialog_gesture_shortcut_instruction));
         } else {
             final int resId = R.string.accessibility_tutorial_dialog_message_button;
             sb.append(getSoftwareInstructionWithIcon(context, context.getText(resId)));
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
index 41c5d75..603ff7a 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -223,12 +223,12 @@
                     mDialog = AccessibilityGestureNavigationTutorial
                             .createAccessibilityTutorialDialogForSetupWizard(
                                     getPrefContext(), getUserShortcutTypes(),
-                                    this::callOnTutorialDialogButtonClicked);
+                                    this::callOnTutorialDialogButtonClicked, getLabelName());
                 } else {
                     mDialog = AccessibilityGestureNavigationTutorial
                             .createAccessibilityTutorialDialog(
                                     getPrefContext(), getUserShortcutTypes(),
-                                    this::callOnTutorialDialogButtonClicked);
+                                    this::callOnTutorialDialogButtonClicked, getLabelName());
                 }
                 mDialog.setCanceledOnTouchOutside(false);
                 return mDialog;
@@ -454,6 +454,7 @@
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(context,
                 getComponentName().flattenToString());
 
+        // LINT.IfChange(shortcut_type_ui_order)
         final List<CharSequence> list = new ArrayList<>();
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
             if (hasShortcutType(shortcutTypes, AccessibilityUtil.UserShortcutType.QUICK_SETTINGS)) {
@@ -470,6 +471,7 @@
                     R.string.accessibility_shortcut_hardware_keyword);
             list.add(hardwareTitle);
         }
+        // LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
 
         // Show software shortcut if first time to use.
         if (list.isEmpty()) {
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index ef828db..a7fce6f 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -228,12 +228,12 @@
                     mDialog = AccessibilityGestureNavigationTutorial
                             .createAccessibilityTutorialDialogForSetupWizard(
                                     getPrefContext(), getUserShortcutTypes(),
-                                    this::callOnTutorialDialogButtonClicked);
+                                    this::callOnTutorialDialogButtonClicked, mPackageName);
                 } else {
                     mDialog = AccessibilityGestureNavigationTutorial
                             .createAccessibilityTutorialDialog(
                                     getPrefContext(), getUserShortcutTypes(),
-                                    this::callOnTutorialDialogButtonClicked);
+                                    this::callOnTutorialDialogButtonClicked, mPackageName);
                 }
                 mDialog.setCanceledOnTouchOutside(false);
                 return mDialog;
@@ -711,6 +711,7 @@
             return context.getText(R.string.accessibility_shortcut_state_off);
         }
 
+        // LINT.IfChange(shortcut_type_ui_order)
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(
                 context, mComponentName.flattenToString(), getDefaultShortcutTypes());
 
@@ -730,6 +731,7 @@
                     R.string.accessibility_shortcut_hardware_keyword);
             list.add(hardwareTitle);
         }
+        // LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
 
         // Show software shortcut if first time to use.
         if (list.isEmpty()) {
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 6ef764e..0da55af 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -484,6 +484,7 @@
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(context,
                 MAGNIFICATION_CONTROLLER_NAME);
 
+        // LINT.IfChange(shortcut_type_ui_order)
         final List<CharSequence> list = new ArrayList<>();
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
             if (hasShortcutType(shortcutTypes, UserShortcutType.QUICK_SETTINGS)) {
@@ -500,18 +501,19 @@
                     R.string.accessibility_shortcut_hardware_keyword);
             list.add(hardwareTitle);
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (hasShortcutType(shortcutTypes, UserShortcutType.TWOFINGER_DOUBLETAP)) {
+                final CharSequence twoFingerDoubleTapTitle = context.getString(
+                        R.string.accessibility_shortcut_two_finger_double_tap_keyword, 2);
+                list.add(twoFingerDoubleTapTitle);
+            }
+        }
         if (hasShortcutType(shortcutTypes, UserShortcutType.TRIPLETAP)) {
             final CharSequence tripleTapTitle = context.getText(
                     R.string.accessibility_shortcut_triple_tap_keyword);
             list.add(tripleTapTitle);
         }
-        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (hasShortcutType(shortcutTypes, UserShortcutType.TWOFINGER_DOUBLETAP)) {
-                final CharSequence twoFingerTripleTapTitle = context.getText(
-                        R.string.accessibility_shortcut_two_finger_double_tap_keyword);
-                list.add(twoFingerTripleTapTitle);
-            }
-        }
+        // LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
 
         // Show software shortcut if first time to use.
         if (list.isEmpty()) {
diff --git a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
index 976fffb..036190b 100644
--- a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
@@ -258,8 +258,10 @@
     @Override
     public void onResume() {
         super.onResume();
-        mTouchExplorationStateChangeListener = isTouchExplorationEnabled ->
-                refreshPreferenceController(GestureShortcutOptionController.class);
+        mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
+            refreshPreferenceController(QuickSettingsShortcutOptionController.class);
+            refreshPreferenceController(GestureShortcutOptionController.class);
+        };
 
         final AccessibilityManager am = getSystemService(
                 AccessibilityManager.class);
diff --git a/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
index e72a85d..f3c427a 100644
--- a/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
@@ -57,9 +57,12 @@
     @Nullable
     @Override
     public CharSequence getSummary() {
-        if (isInSetupWizard()) {
-            return null;
+        final SpannableStringBuilder sb = new SpannableStringBuilder();
+        sb.append(mContext.getText(
+                R.string.accessibility_shortcut_edit_dialog_summary_floating_button));
+        if (!isInSetupWizard()) {
+            sb.append("\n\n").append(getCustomizeAccessibilityButtonLink());
         }
-        return new SpannableStringBuilder().append(getCustomizeAccessibilityButtonLink());
+        return sb;
     }
 }
diff --git a/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
index fb312c6..7ea30b6 100644
--- a/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
@@ -24,6 +24,7 @@
 
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil;
+import com.android.settingslib.utils.StringUtil;
 
 /**
  * A controller handles displaying the gesture shortcut option preference and
@@ -59,13 +60,18 @@
 
     @Override
     public CharSequence getSummary() {
+        int numFingers = AccessibilityUtil.isTouchExploreEnabled(mContext) ? 3 : 2;
+        String instruction = StringUtil.getIcuPluralsString(
+                mContext,
+                numFingers,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture);
+
         final SpannableStringBuilder sb = new SpannableStringBuilder();
-        final int resId = AccessibilityUtil.isTouchExploreEnabled(mContext)
-                ? R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback
-                : R.string.accessibility_shortcut_edit_dialog_summary_software_gesture;
-        sb.append(mContext.getText(resId));
-        sb.append("\n\n");
-        sb.append(getCustomizeAccessibilityButtonLink());
+        sb.append(instruction);
+        if (!isInSetupWizard()) {
+            sb.append("\n\n");
+            sb.append(getCustomizeAccessibilityButtonLink());
+        }
 
         return sb;
     }
diff --git a/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionController.java
index 27f6bc9..f96e1b0 100644
--- a/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionController.java
@@ -34,6 +34,8 @@
 import com.android.internal.accessibility.common.ShortcutConstants;
 import com.android.internal.accessibility.util.AccessibilityUtils;
 import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+import com.android.settingslib.utils.StringUtil;
 
 import java.util.List;
 import java.util.Map;
@@ -62,14 +64,23 @@
         if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
             shortcutOptionPreference.setTitle(
                     R.string.accessibility_shortcut_edit_dialog_title_quick_settings);
-            shortcutOptionPreference.setSummary(
-                    R.string.accessibility_shortcut_edit_dialog_summary_quick_settings);
             shortcutOptionPreference.setIntroImageResId(
                     R.drawable.a11y_shortcut_type_quick_settings);
         }
     }
 
     @Override
+    public CharSequence getSummary() {
+        int numFingers = AccessibilityUtil.isTouchExploreEnabled(mContext) ? 2 : 1;
+        return StringUtil.getIcuPluralsString(
+                mContext,
+                numFingers,
+                isInSetupWizard()
+                        ? R.string.accessibility_shortcut_edit_dialog_summary_quick_settings_suw
+                        : R.string.accessibility_shortcut_edit_dialog_summary_quick_settings);
+    }
+
+    @Override
     protected boolean isShortcutAvailable() {
         return Flags.a11yQsShortcut()
                 && TileService.isQuickSettingsSupported()
@@ -91,7 +102,8 @@
         }
         for (String target : getShortcutTargets()) {
             ComponentName targetComponentName = ComponentName.unflattenFromString(target);
-            if (!a11yFeatureToTileMap.containsKey(targetComponentName)) {
+            if (targetComponentName == null
+                    || !a11yFeatureToTileMap.containsKey(targetComponentName)) {
                 return false;
             }
         }
diff --git a/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionController.java
index e43aeb2..a4cc70b 100644
--- a/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionController.java
@@ -19,7 +19,6 @@
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
 
 import android.content.Context;
-import android.icu.text.MessageFormat;
 import android.provider.Settings;
 import android.view.accessibility.Flags;
 
@@ -52,12 +51,9 @@
         final Preference preference = screen.findPreference(getPreferenceKey());
         if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
             shortcutOptionPreference.setTitle(
-                    R.string.accessibility_shortcut_edit_dialog_title_triple_tap);
+                    R.string.accessibility_shortcut_edit_screen_title_triple_tap);
             String summary = mContext.getString(
-                    R.string.accessibility_shortcut_edit_dialog_summary_triple_tap);
-            // Format the number '3' in the summary.
-            final Object[] arguments = {3};
-            summary = MessageFormat.format(summary, arguments);
+                    R.string.accessibility_shortcut_edit_screen_summary_triple_tap, 3);
 
             shortcutOptionPreference.setSummary(summary);
             shortcutOptionPreference.setIntroImageRawResId(
diff --git a/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionController.java
index 83ba6e4..0fc9f8e 100644
--- a/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionController.java
@@ -19,7 +19,6 @@
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
 
 import android.content.Context;
-import android.icu.text.MessageFormat;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
@@ -54,16 +53,17 @@
         super.displayPreference(screen);
         final Preference preference = screen.findPreference(getPreferenceKey());
         if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
-            // TODO (b/306153204): Update shortcut string and image when UX provides them
-            shortcutOptionPreference.setTitle(
-                    R.string.accessibility_shortcut_edit_dialog_title_two_finger_double_tap);
+            int numFingers = 2;
+            String title = mContext.getString(
+                    R.string.accessibility_shortcut_edit_screen_title_two_finger_double_tap,
+                    numFingers);
+            shortcutOptionPreference.setTitle(title);
             String summary = mContext.getString(
-                    R.string.accessibility_shortcut_edit_dialog_summary_two_finger_double_tap);
-            // Format the number '2' in the summary.
-            final Object[] arguments = {2};
-            summary = MessageFormat.format(summary, arguments);
+                    R.string.accessibility_shortcut_edit_screen_summary_two_finger_double_tap,
+                    numFingers);
 
             shortcutOptionPreference.setSummary(summary);
+            // TODO (b/306153204): Update shortcut image when UX provides them
             shortcutOptionPreference.setIntroImageRawResId(
                     R.raw.a11y_shortcut_type_triple_tap);
         }
diff --git a/src/com/android/settings/display/EvenDimmerPreferenceController.java b/src/com/android/settings/display/EvenDimmerPreferenceController.java
index b86c845..9f239b2 100644
--- a/src/com/android/settings/display/EvenDimmerPreferenceController.java
+++ b/src/com/android/settings/display/EvenDimmerPreferenceController.java
@@ -47,7 +47,16 @@
         // enable based on flag and config.xml
         final boolean enabledInConfig = mResources.getBoolean(
                 com.android.internal.R.bool.config_evenDimmerEnabled);
-        return (Flags.evenDimmer() && enabledInConfig) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+
+        if (Flags.evenDimmer() && enabledInConfig) {
+            return Settings.System.getInt(mContext.getContentResolver(),
+                    Settings.System.SCREEN_BRIGHTNESS_MODE,
+                    Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL)
+                    == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC ? AVAILABLE
+                    : DISABLED_DEPENDENT_SETTING;
+        } else {
+            return UNSUPPORTED_ON_DEVICE;
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index a04d8f8..35a173b 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.fuelgauge;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
@@ -110,8 +111,9 @@
     /** Returns {@code true} if delay the hourly job when device is booting */
     boolean delayHourlyJobWhenBooting();
 
-    /** Returns {@link Bundle} for settings anomaly detection result */
-    PowerAnomalyEventList detectSettingsAnomaly(
+    /** Returns {@link Bundle} for power anomaly detection result */
+    @Nullable
+    PowerAnomalyEventList detectPowerAnomaly(
             Context context, double displayDrain, DetectRequestSourceType detectRequestSourceType);
 
     /** Gets an intent for one time bypass charge limited to resume charging. */
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 75ebabb..f0616ed 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -18,6 +18,7 @@
 
 import static com.android.settings.Utils.SYSTEMUI_PACKAGE_NAME;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -179,7 +180,8 @@
     }
 
     @Override
-    public PowerAnomalyEventList detectSettingsAnomaly(
+    @Nullable
+    public PowerAnomalyEventList detectPowerAnomaly(
             Context context, double displayDrain, DetectRequestSourceType detectRequestSourceType) {
         return null;
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
index d1bf0d2..5b1a6a7 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
@@ -137,7 +137,7 @@
                                                                             .isEmpty()))) {
                                 FeatureFactory.getFeatureFactory()
                                         .getPowerUsageFeatureProvider()
-                                        .detectSettingsAnomaly(
+                                        .detectPowerAnomaly(
                                                 context,
                                                 /* displayDrain= */ 0,
                                                 DetectRequestSourceType.TYPE_DATA_LOADER);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
index f5ed06d..65d941d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
@@ -262,7 +262,7 @@
                     final PowerUsageFeatureProvider powerUsageFeatureProvider =
                             FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
                     final PowerAnomalyEventList anomalyEventList =
-                            powerUsageFeatureProvider.detectSettingsAnomaly(
+                            powerUsageFeatureProvider.detectPowerAnomaly(
                                     getContext(),
                                     /* displayDrain= */ 0,
                                     DetectRequestSourceType.TYPE_USAGE_UI);
diff --git a/src/com/android/settings/network/apn/ApnPreference.java b/src/com/android/settings/network/apn/ApnPreference.java
old mode 100755
new mode 100644
index dcc50cd..7cc4823
--- a/src/com/android/settings/network/apn/ApnPreference.java
+++ b/src/com/android/settings/network/apn/ApnPreference.java
@@ -49,7 +49,7 @@
     private static CompoundButton sCurrentChecked = null;
     private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private boolean mProtectFromCheckedChange = false;
-    private boolean mSelectable = true;
+    private boolean mDefaultSelectable = true;
     private boolean mHideDetails = false;
 
     /**
@@ -57,6 +57,9 @@
      */
     public ApnPreference(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
+        // Primary target and radio button could be selectable, but entire preference itself is not
+        // selectable.
+        setSelectable(false);
     }
 
     /**
@@ -80,25 +83,25 @@
         final RelativeLayout textArea = (RelativeLayout) view.findViewById(R.id.text_layout);
         textArea.setOnClickListener(this);
 
-        final View widget = view.findViewById(R.id.apn_radiobutton);
-        if ((widget != null) && widget instanceof RadioButton) {
-            final RadioButton rb = (RadioButton) widget;
-            if (mSelectable) {
-                rb.setOnCheckedChangeListener(this);
+        final RadioButton rb = view.itemView.requireViewById(R.id.apn_radiobutton);
+        if (mDefaultSelectable) {
+            view.itemView.requireViewById(R.id.apn_radio_button_frame).setOnClickListener((v) -> {
+                rb.performClick();
+            });
+            rb.setOnCheckedChangeListener(this);
 
-                final boolean isChecked = getKey().equals(sSelectedKey);
-                if (isChecked) {
-                    sCurrentChecked = rb;
-                    sSelectedKey = getKey();
-                }
-
-                mProtectFromCheckedChange = true;
-                rb.setChecked(isChecked);
-                mProtectFromCheckedChange = false;
-                rb.setVisibility(View.VISIBLE);
-            } else {
-                rb.setVisibility(View.GONE);
+            final boolean isChecked = getKey().equals(sSelectedKey);
+            if (isChecked) {
+                sCurrentChecked = rb;
+                sSelectedKey = getKey();
             }
+
+            mProtectFromCheckedChange = true;
+            rb.setChecked(isChecked);
+            mProtectFromCheckedChange = false;
+            rb.setVisibility(View.VISIBLE);
+        } else {
+            rb.setVisibility(View.GONE);
         }
     }
 
@@ -167,12 +170,8 @@
         }
     }
 
-    public boolean getSelectable() {
-        return mSelectable;
-    }
-
-    public void setSelectable(boolean selectable) {
-        mSelectable = selectable;
+    public void setDefaultSelectable(boolean defaultSelectable) {
+        mDefaultSelectable = defaultSelectable;
     }
 
     public void setSubId(int subId) {
diff --git a/src/com/android/settings/network/apn/ApnSettings.java b/src/com/android/settings/network/apn/ApnSettings.java
old mode 100755
new mode 100644
index c3feae8..be90653
--- a/src/com/android/settings/network/apn/ApnSettings.java
+++ b/src/com/android/settings/network/apn/ApnSettings.java
@@ -369,10 +369,10 @@
                     pref.setSummary(apn);
                 }
 
-                final boolean selectable =
+                final boolean defaultSelectable =
                         ((type == null) || type.contains(ApnSetting.TYPE_DEFAULT_STRING));
-                pref.setSelectable(selectable);
-                if (selectable) {
+                pref.setDefaultSelectable(defaultSelectable);
+                if (defaultSelectable) {
                     if ((mSelectedKey != null) && mSelectedKey.equals(key)) {
                         pref.setChecked();
                     }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
index edefec2..18a3c3a 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
@@ -32,18 +32,27 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.platform.test.annotations.RequiresFlagsEnabled;
-import android.platform.test.flag.junit.CheckFlagsRule;
-import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.text.SpannableStringBuilder;
+import android.util.ArrayMap;
 import android.view.View;
+import android.view.accessibility.AccessibilityManager;
+import android.widget.Button;
+import android.widget.TextSwitcher;
+import android.widget.TextView;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.server.accessibility.Flags;
+import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SubSettings;
+import com.android.settings.testutils.AccessibilityTestUtils;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.utils.StringUtil;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -54,16 +63,22 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAccessibilityManager;
 import org.robolectric.shadows.ShadowLooper;
 
+import java.util.Map;
+
 /** Tests for {@link AccessibilityGestureNavigationTutorial}. */
+@Config(shadows = SettingsShadowResources.class)
 @RunWith(RobolectricTestRunner.class)
 public final class AccessibilityGestureNavigationTutorialTest {
+    private static final String FAKE_FEATURE_NAME = "Fake Feature Name";
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Rule
-    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     @Mock
     private DialogInterface.OnClickListener mOnClickListener;
     @Mock
@@ -79,7 +94,7 @@
 
     @Test(expected = IllegalArgumentException.class)
     public void createTutorialPages_shortcutListIsEmpty_throwsException() {
-        createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+        createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
     }
 
     @Test
@@ -87,36 +102,42 @@
         mShortcutTypes |= UserShortcutType.TRIPLETAP;
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
 
-        assertThat(createShortcutTutorialPages(mContext,
-                mShortcutTypes)).hasSize(/* expectedSize= */ 1);
+        assertThat(
+                createShortcutTutorialPages(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME, /* inSetupWizard= */ false)
+        ).hasSize(/* expectedSize= */ 1);
         assertThat(alertDialog).isNotNull();
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
     public void createTutorialPages_turnOnTwoFingerTripleTapShortcut_hasOnePage() {
         mShortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
 
-        assertThat(createShortcutTutorialPages(mContext,
-                mShortcutTypes)).hasSize(/* expectedSize= */ 1);
+        assertThat(
+                createShortcutTutorialPages(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME, /* inSetupWizard= */ false)
+        ).hasSize(/* expectedSize= */ 1);
         assertThat(alertDialog).isNotNull();
     }
 
     @Test
-    @RequiresFlagsEnabled(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
+    @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void createTutorialPages_turnOnQuickSettingShortcut_hasOnePage() {
         mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
 
-        assertThat(createShortcutTutorialPages(mContext,
-                mShortcutTypes)).hasSize(/* expectedSize= */ 1);
+        assertThat(
+                createShortcutTutorialPages(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME, /* inSetupWizard= */ false)
+        ).hasSize(/* expectedSize= */ 1);
         assertThat(alertDialog).isNotNull();
     }
 
@@ -125,10 +146,12 @@
         mShortcutTypes |= UserShortcutType.SOFTWARE;
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
 
-        assertThat(createShortcutTutorialPages(mContext,
-                mShortcutTypes)).hasSize(/* expectedSize= */ 1);
+        assertThat(
+                createShortcutTutorialPages(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME, /* inSetupWizard= */ false)
+        ).hasSize(/* expectedSize= */ 1);
         assertThat(alertDialog).isNotNull();
     }
 
@@ -138,36 +161,69 @@
         mShortcutTypes |= UserShortcutType.HARDWARE;
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
 
-        assertThat(createShortcutTutorialPages(mContext,
-                mShortcutTypes)).hasSize(/* expectedSize= */ 2);
+        assertThat(
+                createShortcutTutorialPages(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME, /* inSetupWizard= */ false)
+        ).hasSize(/* expectedSize= */ 2);
         assertThat(alertDialog).isNotNull();
     }
 
     @Test
-    public void createTutorialPages_turnOnSoftwareShortcut_linkButtonVisible() {
+    public void createTutorialPages_turnOnA11yGestureShortcut_linkButtonShownWithText() {
         mShortcutTypes |= UserShortcutType.SOFTWARE;
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
         alertDialog.show();
+        ShadowLooper.idleMainLooper();
 
-        assertThat(alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).getVisibility())
-                .isEqualTo(View.VISIBLE);
+        Button btn = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+        assertThat(btn).isNotNull();
+        assertThat(btn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(btn.getText().toString()).isEqualTo(
+                mContext.getString(
+                        R.string.accessibility_tutorial_dialog_configure_software_shortcut_type));
     }
 
     @Test
-    public void createTutorialPages_turnOnSoftwareAndHardwareShortcut_linkButtonVisible() {
+    public void createTutorialPages_turnOnA11yNavButtonShortcut_linkButtonShownWithText() {
         mShortcutTypes |= UserShortcutType.SOFTWARE;
-        mShortcutTypes |= UserShortcutType.HARDWARE;
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
         alertDialog.show();
+        ShadowLooper.idleMainLooper();
 
-        assertThat(alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).getVisibility())
-                .isEqualTo(View.VISIBLE);
+        Button btn = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+        assertThat(btn).isNotNull();
+        assertThat(btn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(btn.getText().toString()).isEqualTo(
+                mContext.getString(
+                        R.string.accessibility_tutorial_dialog_configure_software_shortcut_type));
+    }
+
+    @Test
+    public void createTutorialPages_turnOnFloatingButtonShortcut_linkButtonShownWithText() {
+        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        Button btn = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+        assertThat(btn).isNotNull();
+        assertThat(btn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(btn.getText().toString()).isEqualTo(
+                mContext.getString(R.string.accessibility_tutorial_dialog_link_button));
     }
 
     @Test
@@ -175,7 +231,7 @@
         mShortcutTypes |= UserShortcutType.HARDWARE;
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
         alertDialog.show();
         ShadowLooper.idleMainLooper();
 
@@ -188,20 +244,293 @@
         mShortcutTypes |= UserShortcutType.SOFTWARE;
 
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialogForSetupWizard(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialogForSetupWizard(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
         alertDialog.show();
+        ShadowLooper.idleMainLooper();
 
         assertThat(alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).getVisibility())
                 .isEqualTo(View.GONE);
     }
 
+    @Test
+    @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void createAccessibilityTutorialDialog_qsShortcut_inSuwTalkbackOn_verifyText() {
+        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        setTouchExplorationEnabled(true);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_quick_setting);
+        Map<String, Object> arguments = new ArrayMap<>();
+        arguments.put("count", 2);
+        arguments.put("featureName", FAKE_FEATURE_NAME);
+        final CharSequence instruction = StringUtil.getIcuPluralsString(mContext,
+                arguments,
+                R.string.accessibility_tutorial_dialog_message_quick_setting);
+        final SpannableStringBuilder expectedInstruction = new SpannableStringBuilder();
+        expectedInstruction
+                .append(mContext.getText(
+                        R.string.accessibility_tutorial_dialog_shortcut_unavailable_in_suw))
+                .append("\n\n");
+        expectedInstruction.append(instruction);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialogForSetupWizard(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction.toString());
+    }
+
+    @Test
+    @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void createAccessibilityTutorialDialog_qsShortcut_notInSuwTalkbackOn_verifyText() {
+        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        setTouchExplorationEnabled(true);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_quick_setting);
+        Map<String, Object> arguments = new ArrayMap<>();
+        arguments.put("count", 2);
+        arguments.put("featureName", FAKE_FEATURE_NAME);
+        final CharSequence expectedInstruction = StringUtil.getIcuPluralsString(mContext,
+                arguments,
+                R.string.accessibility_tutorial_dialog_message_quick_setting);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction.toString());
+    }
+
+    @Test
+    @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void createAccessibilityTutorialDialog_qsShortcut_inSuwTalkbackOff_verifyText() {
+        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        setTouchExplorationEnabled(false);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_quick_setting);
+        Map<String, Object> arguments = new ArrayMap<>();
+        arguments.put("count", 1);
+        arguments.put("featureName", FAKE_FEATURE_NAME);
+        final CharSequence instruction = StringUtil.getIcuPluralsString(mContext,
+                arguments,
+                R.string.accessibility_tutorial_dialog_message_quick_setting);
+        final SpannableStringBuilder expectedInstruction = new SpannableStringBuilder();
+        expectedInstruction.append(mContext.getText(
+                        R.string.accessibility_tutorial_dialog_shortcut_unavailable_in_suw))
+                .append("\n\n");
+        expectedInstruction.append(instruction);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialogForSetupWizard(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction.toString());
+    }
+
+    @Test
+    @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void createAccessibilityTutorialDialog_qsShortcut_notInSuwTalkbackOff_verifyText() {
+        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        setTouchExplorationEnabled(false);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_quick_setting);
+        Map<String, Object> arguments = new ArrayMap<>();
+        arguments.put("count", 1);
+        arguments.put("featureName", FAKE_FEATURE_NAME);
+        final CharSequence expectedInstruction = StringUtil.getIcuPluralsString(mContext,
+                arguments,
+                R.string.accessibility_tutorial_dialog_message_quick_setting);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction.toString());
+    }
+
+    @Test
+    public void createAccessibilityTutorialDialog_volumeKeysShortcut_verifyText() {
+        mShortcutTypes |= UserShortcutType.HARDWARE;
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_volume);
+        final CharSequence expectedInstruction = mContext.getString(
+                R.string.accessibility_tutorial_dialog_message_volume);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction.toString());
+    }
+
+    @Test
+    public void createAccessibilityTutorialDialog_tripleTapShortcut_verifyText() {
+        mShortcutTypes |= UserShortcutType.TRIPLETAP;
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_triple);
+        final CharSequence expectedInstruction = mContext.getString(
+                R.string.accessibility_tutorial_dialog_tripletap_instruction, 3);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction.toString());
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void createAccessibilityTutorialDialog_twoFingerDoubleTapShortcut_verifyText() {
+        mShortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
+        final int numFingers = 2;
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_two_finger_double, numFingers);
+        final String expectedInstruction = mContext.getString(
+                R.string.accessibility_tutorial_dialog_twofinger_doubletap_instruction, numFingers);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction);
+    }
+
+    @Test
+    public void createAccessibilityTutorialDialog_floatingButtonShortcut_verifyText() {
+        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_button);
+        final String expectedInstruction = mContext.getString(
+                R.string.accessibility_tutorial_dialog_message_floating_button);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction);
+    }
+
+    @Test
+    public void createAccessibilityTutorialDialog_navA11yButtonShortcut_verifyText() {
+        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_button);
+        final String expectedInstruction = mContext.getString(
+                R.string.accessibility_tutorial_dialog_message_button);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction);
+    }
+
+    @Test
+    public void createAccessibilityTutorialDialog_gestureShortcut_talkbackOn_verifyText() {
+        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        setTouchExplorationEnabled(true);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_gesture);
+        final String expectedInstruction = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 3,
+                R.string.accessibility_tutorial_dialog_gesture_shortcut_instruction);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction);
+    }
+
+    @Test
+    public void createAccessibilityTutorialDialog_gestureShortcut_talkbackOff_verifyText() {
+        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        setTouchExplorationEnabled(false);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
+        final String expectedTitle = mContext.getString(
+                R.string.accessibility_tutorial_dialog_title_gesture);
+        final String expectedInstruction = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 2,
+                R.string.accessibility_tutorial_dialog_gesture_shortcut_instruction);
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, FAKE_FEATURE_NAME);
+        alertDialog.show();
+        ShadowLooper.idleMainLooper();
+
+        verifyTutorialTitleAndInstruction(
+                alertDialog,
+                expectedTitle,
+                expectedInstruction);
+    }
 
     @Test
     public void performClickOnPositiveButton_turnOnSoftwareShortcut_dismiss() {
         mShortcutTypes |= UserShortcutType.SOFTWARE;
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
         alertDialog.show();
+        ShadowLooper.idleMainLooper();
 
         alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
         ShadowLooper.idleMainLooper();
@@ -213,8 +542,10 @@
     public void performClickOnPositiveButton_turnOnSoftwareShortcut_callOnClickListener() {
         mShortcutTypes |= UserShortcutType.SOFTWARE;
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes, mOnClickListener);
+                createAccessibilityTutorialDialog(
+                        mContext, mShortcutTypes, mOnClickListener, FAKE_FEATURE_NAME);
         alertDialog.show();
+        ShadowLooper.idleMainLooper();
 
         alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
         ShadowLooper.idleMainLooper();
@@ -226,7 +557,8 @@
     public void performClickOnNegativeButton_turnOnSoftwareShortcut_directToSettingsPage() {
         mShortcutTypes |= UserShortcutType.SOFTWARE;
         Activity activity = Robolectric.buildActivity(Activity.class).create().get();
-        final AlertDialog alertDialog = createAccessibilityTutorialDialog(activity, mShortcutTypes);
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(activity, mShortcutTypes, FAKE_FEATURE_NAME);
         alertDialog.show();
 
         alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).performClick();
@@ -251,4 +583,22 @@
         assertThat(alertDialog.isShowing()).isFalse();
         verify(mOnDismissListener).onDismiss(alertDialog);
     }
+
+    private void setTouchExplorationEnabled(boolean enable) {
+        ShadowAccessibilityManager am = shadowOf(
+                mContext.getSystemService(AccessibilityManager.class));
+        am.setTouchExplorationEnabled(enable);
+    }
+
+    private void verifyTutorialTitleAndInstruction(AlertDialog alertDialog, String expectedTitle,
+            String expectedInstruction) {
+        TextSwitcher titleView = alertDialog.findViewById(R.id.title);
+        assertThat(titleView).isNotNull();
+        assertThat(((TextView) titleView.getCurrentView()).getText().toString()).isEqualTo(
+                expectedTitle);
+        TextSwitcher instructionView = alertDialog.findViewById(R.id.instruction);
+        assertThat(instructionView).isNotNull();
+        assertThat(((TextView) instructionView.getCurrentView()).getText().toString()).isEqualTo(
+                expectedInstruction);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
index 526b431..b461cab 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.accessibility.shortcuts;
 
-import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
-
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
 import static com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment.SHORTCUT_SETTINGS;
@@ -38,10 +36,12 @@
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 import android.util.Pair;
 import android.view.accessibility.AccessibilityManager;
+import android.view.accessibility.Flags;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.testing.FragmentScenario;
@@ -58,9 +58,11 @@
 import com.android.settings.SubSettings;
 import com.android.settings.accessibility.AccessibilityUtil;
 import com.android.settings.accessibility.PreferredShortcuts;
+import com.android.settings.testutils.AccessibilityTestUtils;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.utils.StringUtil;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
@@ -72,6 +74,7 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAccessibilityManager;
 import org.robolectric.shadows.ShadowContentResolver;
 import org.robolectric.shadows.ShadowLooper;
@@ -81,6 +84,7 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -96,6 +100,8 @@
     private static final CharSequence SCREEN_TITLE = "Fake shortcut title";
     private static final ComponentName TARGET_FAKE_COMPONENT =
             new ComponentName("FakePackage", "FakeClass");
+    private static final ComponentName TARGET_FAKE_COMPONENT_TILE =
+            new ComponentName("FakePackage", "FakeTile");
     private static final String TARGET = MAGNIFICATION_CONTROLLER_NAME;
     private static final Set<String> TARGETS = Set.of(TARGET);
 
@@ -109,12 +115,14 @@
 
     @Before
     public void setUp() {
+        AccessibilityTestUtils.setSoftwareShortcutMode(mContext, /* gestureNavEnabled= */
+                true, /* floatingButtonEnabled= */ false);
         SettingsShadowResources.overrideResource(
-                com.android.internal.R.integer.config_navBarInteractionMode,
-                NAV_BAR_MODE_GESTURAL);
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
-                Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE);
+                com.android.internal.R.bool.config_quickSettingsSupported, true);
+        com.android.settings.testutils.shadow.ShadowAccessibilityManager a11yManager =
+                Shadow.extract(mContext.getSystemService(AccessibilityManager.class));
+        a11yManager.setA11yFeatureToTileMap(
+                Map.of(TARGET_FAKE_COMPONENT, TARGET_FAKE_COMPONENT_TILE));
 
         mActivity = Robolectric.buildActivity(FragmentActivity.class).get();
     }
@@ -158,7 +166,7 @@
 
     @Test
     public void fragmentCreated_inSuw_controllersTargetsSet() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ true);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ true, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         mFragmentScenario.onFragment(fragment -> {
@@ -174,7 +182,7 @@
 
     @Test
     public void fragmentCreated_notInSuw_controllersTargetsSet() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         mFragmentScenario.onFragment(fragment -> {
@@ -195,7 +203,7 @@
             assertThat(contentResolver.getContentObservers(uri)).isEmpty();
         }
 
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         for (Uri uri : SHORTCUT_SETTINGS) {
@@ -207,7 +215,7 @@
     public void fragmentDestroyed_unregisterSettingsObserver() {
         ShadowContentResolver contentResolver = shadowOf(mContext.getContentResolver());
 
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false)
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET)
                 .moveToState(Lifecycle.State.CREATED);
         mFragmentScenario.onFragment(EditShortcutsPreferenceFragment::onDestroy);
 
@@ -218,7 +226,7 @@
 
     @Test
     public void onVolumeKeysShortcutSettingChanged_volumeKeyControllerUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         ShortcutUtils.optInValueToSettings(
@@ -233,7 +241,7 @@
 
     @Test
     public void onSoftwareShortcutSettingChanged_softwareControllersUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         ShortcutUtils.optInValueToSettings(
@@ -249,7 +257,7 @@
 
     @Test
     public void onSoftwareShortcutModeChanged_softwareControllersUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         ShortcutUtils.optInValueToSettings(
@@ -265,7 +273,7 @@
 
     @Test
     public void onTripleTapShortcutSettingChanged_tripleTapShortcutControllerUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         Settings.Secure.putInt(
@@ -283,7 +291,7 @@
 
     @Test
     public void onTwoFingersShortcutSettingChanged_twoFingersDoubleTapShortcutControllerUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
         Settings.Secure.putInt(
@@ -302,12 +310,12 @@
 
     @Test
     public void fragmentResumed_enableTouchExploration_gestureShortcutOptionSummaryUpdated() {
-        String expectedSummary = mContext.getString(
-                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback)
+        String expectedSummary = StringUtil.getIcuPluralsString(mContext, 3,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture)
                 + "\n\n"
                 + mContext.getString(
-                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+                R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
 
         ShadowAccessibilityManager am = shadowOf(
@@ -323,12 +331,12 @@
 
     @Test
     public void fragmentPaused_enableTouchExploration_gestureShortcutOptionSummaryNotUpdated() {
-        String expectedSummary = mContext.getString(
-                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture)
+        String expectedSummary = StringUtil.getIcuPluralsString(mContext, 2,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture)
                 + "\n\n"
                 + mContext.getString(
-                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+                R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.RESUMED).moveToState(Lifecycle.State.STARTED);
 
         ShadowAccessibilityManager am = shadowOf(
@@ -343,8 +351,48 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void fragmentResumed_enableTouchExploration_qsShortcutOptionSummaryUpdated() {
+        String expectedSummary = StringUtil.getIcuPluralsString(mContext, 2,
+                R.string.accessibility_shortcut_edit_dialog_summary_quick_settings);
+        mFragmentScenario = createFragScenario(
+                /* isInSuw= */ false, TARGET_FAKE_COMPONENT.flattenToString());
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
+
+        ShadowAccessibilityManager am = shadowOf(
+                mContext.getSystemService(AccessibilityManager.class));
+        am.setTouchExplorationEnabled(true);
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_quick_settings_pref));
+            assertThat(preference.getSummary().toString()).isEqualTo(expectedSummary);
+        });
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void fragmentPaused_enableTouchExploration_qsShortcutOptionSummaryNotUpdated() {
+        String expectedSummary = StringUtil.getIcuPluralsString(mContext, 1,
+                R.string.accessibility_shortcut_edit_dialog_summary_quick_settings);
+        mFragmentScenario = createFragScenario(
+                /* isInSuw= */ false, TARGET_FAKE_COMPONENT.flattenToString());
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED).moveToState(Lifecycle.State.STARTED);
+
+        ShadowAccessibilityManager am = shadowOf(
+                mContext.getSystemService(AccessibilityManager.class));
+        am.setTouchExplorationEnabled(true);
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_quick_settings_pref));
+            assertThat(preference.getSummary().toString()).isEqualTo(expectedSummary);
+        });
+    }
+
+    @Test
     public void onAdvancedPreferenceClicked_advancedShouldBecomeInvisible() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
         mFragmentScenario.onFragment(fragment -> {
             Preference advanced = fragment.findPreference(
@@ -372,7 +420,7 @@
 
     @Test
     public void fragmentRecreated_collapsed_advancedRemainVisible() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
 
         mFragmentScenario.recreate();
@@ -386,7 +434,7 @@
 
     @Test
     public void fragmentResumed_preferredShortcutsUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
         // Move the fragment to the background
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
@@ -408,7 +456,7 @@
 
     @Test
     public void onVolumeKeysShortcutSettingChanged_preferredShortcutsUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
         assertThat(
                 PreferredShortcuts.retrieveUserShortcutType(
@@ -481,22 +529,25 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void onQuickSettingsShortcutSettingChanged_preferredShortcutsUpdated() {
-        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        final String target = TARGET_FAKE_COMPONENT.flattenToString();
+        mFragmentScenario = createFragScenario(
+                /* isInSuw= */ false, TARGET_FAKE_COMPONENT.flattenToString());
         mFragmentScenario.moveToState(Lifecycle.State.CREATED);
         int currentPreferredShortcut =
-                PreferredShortcuts.retrieveUserShortcutType(mContext, TARGET);
+                PreferredShortcuts.retrieveUserShortcutType(mContext, target);
         assertThat(currentPreferredShortcut
                 & ShortcutConstants.UserShortcutType.QUICK_SETTINGS).isEqualTo(0);
 
         ShortcutUtils.optInValueToSettings(
-                mContext, ShortcutConstants.UserShortcutType.QUICK_SETTINGS, TARGET);
+                mContext, ShortcutConstants.UserShortcutType.QUICK_SETTINGS, target);
 
         // Calls onFragment so that the change to Setting is notified to its observer
         mFragmentScenario.onFragment(fragment ->
                 assertThat(
                         PreferredShortcuts.retrieveUserShortcutType(
-                                mContext, TARGET)
+                                mContext, target)
                 ).isEqualTo(ShortcutConstants.UserShortcutType.QUICK_SETTINGS)
         );
     }
@@ -537,10 +588,11 @@
         return retControllers;
     }
 
-    private FragmentScenario<EditShortcutsPreferenceFragment> createFragScenario(boolean isInSuw) {
+    private FragmentScenario<EditShortcutsPreferenceFragment> createFragScenario(
+            boolean isInSuw, String target) {
         Bundle args = new Bundle();
         args.putStringArray(
-                EditShortcutsPreferenceFragment.ARG_KEY_SHORTCUT_TARGETS, new String[]{TARGET});
+                EditShortcutsPreferenceFragment.ARG_KEY_SHORTCUT_TARGETS, new String[]{target});
         FragmentScenario<EditShortcutsPreferenceFragment> scenario =
                 FragmentScenario.launch(
                         EditShortcutsPreferenceFragment.class, args,
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
index b39aa22..20f5d5d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
@@ -24,7 +24,6 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.provider.Settings;
-import android.text.TextUtils;
 
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
@@ -74,19 +73,24 @@
     }
 
     @Test
-    public void getSummary_inSuw_verifySummaryEmpty() {
+    public void getSummary_inSuw_verifySummary() {
+        String expectedSummary = mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_floating_button);
         mController.setInSetupWizard(true);
 
-        assertThat(TextUtils.isEmpty(mController.getSummary())).isTrue();
+        assertThat(mController.getSummary().toString()).isEqualTo(expectedSummary);
     }
 
     @Test
     public void getSummary_notInSuw_verifySummary() {
+        String expectedSummary = mContext.getText(
+                R.string.accessibility_shortcut_edit_dialog_summary_floating_button)
+                + "\n\n"
+                + mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
         mController.setInSetupWizard(false);
 
-        assertThat(mController.getSummary().toString()).isEqualTo(
-                mContext.getString(
-                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating));
+        assertThat(mController.getSummary().toString()).isEqualTo(expectedSummary);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
index 155cb22..0149cc3 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
@@ -34,6 +34,7 @@
 import com.android.settings.R;
 import com.android.settings.testutils.AccessibilityTestUtils;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settingslib.utils.StringUtil;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -82,10 +83,13 @@
     }
 
     @Test
-    public void getSummary_touchExplorationDisabled_verifySummary() {
+    public void getSummary_touchExplorationDisabled_notInSuw_verifySummary() {
         enableTouchExploration(false);
-        String expected = mContext.getString(
-                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture)
+        mController.setInSetupWizard(false);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 2,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture)
                 + "\n\n"
                 + mContext.getString(
                 R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
@@ -94,10 +98,25 @@
     }
 
     @Test
-    public void getSummary_touchExplorationEnabled_verifySummary() {
+    public void getSummary_touchExplorationDisabled_inSuw_verifySummary() {
+        enableTouchExploration(false);
+        mController.setInSetupWizard(true);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 2,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void getSummary_touchExplorationEnabled_notInSuw_verifySummary() {
         enableTouchExploration(true);
-        String expected = mContext.getString(
-                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback)
+        mController.setInSetupWizard(false);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 3,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture)
                 + "\n\n"
                 + mContext.getString(
                 R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
@@ -106,6 +125,18 @@
     }
 
     @Test
+    public void getSummary_touchExplorationEnabled_inSuw_verifySummary() {
+        enableTouchExploration(true);
+        mController.setInSetupWizard(true);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 3,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
     public void isShortcutAvailable_inSuw_returnFalse() {
         mController.setInSetupWizard(true);
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionControllerTest.java
index 6086b17..55fbd8e 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/QuickSettingsShortcutOptionControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.accessibility.shortcuts;
 
+import static com.android.settings.testutils.AccessibilityTestUtils.setupMockAccessibilityManager;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
@@ -40,12 +42,14 @@
 import com.android.settings.R;
 import com.android.settings.testutils.AccessibilityTestUtils;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settingslib.utils.StringUtil;
 
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 import java.util.Collections;
 import java.util.List;
@@ -55,6 +59,7 @@
 /**
  * Tests for {@link QuickSettingsShortcutOptionController}
  */
+@Config(shadows = SettingsShadowResources.class)
 @RunWith(RobolectricTestRunner.class)
 public class QuickSettingsShortcutOptionControllerTest {
     private static final String PREF_KEY = "prefKey";
@@ -87,15 +92,60 @@
     }
 
     @Test
-    public void displayPreference_verifyScreenTextSet() {
+    public void displayPreference_verifyScreenTitleSet() {
         mController.displayPreference(mPreferenceScreen);
 
         assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
                 mContext.getString(
                         R.string.accessibility_shortcut_edit_dialog_title_quick_settings));
-        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(
-                mContext.getString(
-                        R.string.accessibility_shortcut_edit_dialog_summary_quick_settings));
+    }
+
+    @Test
+    public void getSummary_touchExplorationDisabled_inSuw_verifySummary() {
+        enableTouchExploration(false);
+        mController.setInSetupWizard(true);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 1,
+                R.string.accessibility_shortcut_edit_dialog_summary_quick_settings_suw);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void getSummary_touchExplorationDisabled_notInSuw_verifySummary() {
+        enableTouchExploration(false);
+        mController.setInSetupWizard(false);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 1,
+                R.string.accessibility_shortcut_edit_dialog_summary_quick_settings);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void getSummary_touchExplorationEnabled_inSuw_verifySummary() {
+        enableTouchExploration(true);
+        mController.setInSetupWizard(true);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 2,
+                R.string.accessibility_shortcut_edit_dialog_summary_quick_settings_suw);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void getSummary_touchExplorationEnabled_notInSuw_verifySummary() {
+        enableTouchExploration(true);
+        mController.setInSetupWizard(false);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 2,
+                R.string.accessibility_shortcut_edit_dialog_summary_quick_settings);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
     }
 
     @Test
@@ -177,4 +227,9 @@
 
         assertThat(mController.isChecked()).isFalse();
     }
+
+    private void enableTouchExploration(boolean enable) {
+        AccessibilityManager am = setupMockAccessibilityManager(mContext);
+        when(am.isTouchExplorationEnabled()).thenReturn(enable);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionControllerTest.java
index b5daac5..1ffd042 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionControllerTest.java
@@ -27,7 +27,6 @@
 
 import android.content.ComponentName;
 import android.content.Context;
-import android.icu.text.MessageFormat;
 import android.os.UserHandle;
 import android.platform.test.annotations.DisableFlags;
 import android.platform.test.annotations.EnableFlags;
@@ -83,16 +82,16 @@
     }
 
     @Test
-    public void displayPreference_verifyScreenTestSet() {
+    public void displayPreference_verifyTitleSummaryText() {
+        String expectedTitle = mContext.getString(
+                R.string.accessibility_shortcut_edit_screen_title_triple_tap);
+        String expectedSummary = mContext.getString(
+                R.string.accessibility_shortcut_edit_screen_summary_triple_tap, 3);
+
         mController.displayPreference(mPreferenceScreen);
 
-        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
-                mContext.getString(R.string.accessibility_shortcut_edit_dialog_title_triple_tap));
-        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(
-                MessageFormat.format(
-                        mContext.getString(
-                                R.string.accessibility_shortcut_edit_dialog_summary_triple_tap),
-                        3));
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(expectedTitle);
+        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(expectedSummary);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionControllerTest.java
index 716dcdb..dde60e9 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TwoFingerDoubleTapShortcutOptionControllerTest.java
@@ -24,7 +24,6 @@
 
 import android.content.ComponentName;
 import android.content.Context;
-import android.icu.text.MessageFormat;
 import android.os.UserHandle;
 import android.platform.test.annotations.DisableFlags;
 import android.platform.test.annotations.EnableFlags;
@@ -82,15 +81,15 @@
 
     @Test
     public void displayPreference_verifyScreenTextSet() {
+        String expectedTitle = mContext.getString(
+                R.string.accessibility_shortcut_edit_screen_title_two_finger_double_tap, 2);
+        String expectedSummary = mContext.getString(
+                R.string.accessibility_shortcut_edit_screen_summary_two_finger_double_tap, 2);
+
         mController.displayPreference(mPreferenceScreen);
 
-        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
-                mContext.getString(
-                        R.string.accessibility_shortcut_edit_dialog_title_two_finger_double_tap));
-        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(
-                MessageFormat.format(mContext.getString(
-                        R.string.accessibility_shortcut_edit_dialog_summary_two_finger_double_tap),
-                        2));
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(expectedTitle);
+        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(expectedSummary);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java
index a3cf151..af84ac0 100644
--- a/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/EvenDimmerPreferenceControllerTest.java
@@ -18,6 +18,7 @@
 
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
 import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -111,4 +112,18 @@
         assertThat(Settings.Secure.getFloat(mContext.getContentResolver(),
                 Settings.Secure.EVEN_DIMMER_ACTIVATED)).isEqualTo(0.0f); // false
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_EVEN_DIMMER)
+    public void testDisabledIfAutobrightnessIsOff() {
+        // Autobrightness off
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.SCREEN_BRIGHTNESS_MODE,
+                Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
+        // Try turn controller on
+        mController.setChecked(true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                DISABLED_DEPENDENT_SETTING);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java
index d6e17d4..de7792c 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java
@@ -16,14 +16,15 @@
 
 package com.android.settings.testutils.shadow;
 
+import android.annotation.NonNull;
 import android.annotation.UserIdInt;
 import android.content.ComponentName;
+import android.util.ArrayMap;
 import android.view.accessibility.AccessibilityManager;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 
-import java.util.Collections;
 import java.util.Map;
 
 /**
@@ -31,12 +32,21 @@
  */
 @Implements(AccessibilityManager.class)
 public class ShadowAccessibilityManager extends org.robolectric.shadows.ShadowAccessibilityManager {
+    private Map<ComponentName, ComponentName> mA11yFeatureToTileMap = new ArrayMap<>();
+
     /**
-     * Implements a hidden method {@link AccessibilityManager.getA11yFeatureToTileMap} and returns
-     * an empty map.
+     * Implements a hidden method {@link AccessibilityManager.getA11yFeatureToTileMap}
      */
     @Implementation
     public Map<ComponentName, ComponentName> getA11yFeatureToTileMap(@UserIdInt int userId) {
-        return Collections.emptyMap();
+        return mA11yFeatureToTileMap;
+    }
+
+    /**
+     * Set fake a11y feature to tile mapping
+     */
+    public void setA11yFeatureToTileMap(
+            @NonNull Map<ComponentName, ComponentName> a11yFeatureToTileMap) {
+        mA11yFeatureToTileMap = a11yFeatureToTileMap;
     }
 }
diff --git a/tests/unit/src/com/android/settings/privatespace/FaceFingerprintUnlockControllerTest.java b/tests/unit/src/com/android/settings/privatespace/FaceFingerprintUnlockControllerTest.java
index 857135f..f6242ef 100644
--- a/tests/unit/src/com/android/settings/privatespace/FaceFingerprintUnlockControllerTest.java
+++ b/tests/unit/src/com/android/settings/privatespace/FaceFingerprintUnlockControllerTest.java
@@ -35,6 +35,7 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -71,6 +72,7 @@
     }
 
     /** Tests that the controller is always available. */
+    @Ignore("b/323652985")
     @Test
     public void getAvailabilityStatus_whenFlagsEnabled_returnsAvailable() {
         mSetFlagsRule.enableFlags(
@@ -131,6 +133,7 @@
     }
 
     /** Tests that preference is enabled and summary is not same as device lock. */
+    @Ignore("b/323652985")
     @Test
     public void getSummary_whenSeparateProfileLock() {
         doReturn(true).when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
diff --git a/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java b/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java
index 5c2a15c..d029552 100644
--- a/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java
+++ b/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java
@@ -40,6 +40,7 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -82,6 +83,7 @@
 
 
     /** Tests that summary in controller is Pattern. */
+    @Ignore("b/323652985")
     @Test
     public void getSummary_whenProfileLockPattern() {
         doReturn(true)
@@ -96,6 +98,7 @@
     }
 
     /** Tests that summary in controller is PIN. */
+    @Ignore("b/323652985")
     @Test
     public void getSummary_whenProfileLockPin() {
         doReturn(true)
@@ -109,6 +112,7 @@
     }
 
     /** Tests that summary in controller is Password. */
+    @Ignore("b/323652985")
     @Test
     public void getSummary_whenProfileLockPassword() {
         doReturn(true)