diff --git a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java index 8bcd8af4468..b6f6ff4b5a0 100644 --- a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java +++ b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java @@ -160,6 +160,37 @@ public final class AccessibilityGestureNavigationTutorial { return alertDialog; } + static AlertDialog createAccessibilityTutorialDialogForSetupWizard(Context context, + int shortcutTypes) { + return createAccessibilityTutorialDialogForSetupWizard(context, shortcutTypes, + mOnClickListener); + } + + static AlertDialog createAccessibilityTutorialDialogForSetupWizard(Context context, + int shortcutTypes, @Nullable DialogInterface.OnClickListener actionButtonListener) { + + final int category = SettingsEnums.SWITCH_SHORTCUT_DIALOG_ACCESSIBILITY_BUTTON_SETTINGS; + final DialogInterface.OnClickListener linkButtonListener = + (dialog, which) -> new SubSettingLauncher(context) + .setDestination(AccessibilityButtonFragment.class.getName()) + .setSourceMetricsCategory(category) + .launch(); + + final AlertDialog alertDialog = new AlertDialog.Builder(context) + .setPositiveButton(R.string.accessibility_tutorial_dialog_button, + actionButtonListener) + .create(); + + final List tutorialPages = + createShortcutTutorialPages(context, shortcutTypes); + Preconditions.checkArgument(!tutorialPages.isEmpty(), + /* errorMessage= */ "Unexpected tutorial pages size"); + + alertDialog.setView(createShortcutNavigationContentView(context, tutorialPages, null)); + + return alertDialog; + } + /** * Gets a content View for a dialog to confirm that they want to enable a service. * diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java index 43292d7a3be..13bfc5ef65e 100644 --- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java +++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java @@ -208,9 +208,17 @@ public abstract class AccessibilityShortcutPreferenceFragment extends DashboardF setupEditShortcutDialog(dialog); return dialog; case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL: - dialog = AccessibilityGestureNavigationTutorial - .createAccessibilityTutorialDialog(getPrefContext(), - getUserShortcutTypes(), this::callOnTutorialDialogButtonClicked); + if (WizardManagerHelper.isAnySetupWizard(getIntent())) { + dialog = AccessibilityGestureNavigationTutorial + .createAccessibilityTutorialDialogForSetupWizard( + getPrefContext(), getUserShortcutTypes(), + this::callOnTutorialDialogButtonClicked); + } else { + dialog = AccessibilityGestureNavigationTutorial + .createAccessibilityTutorialDialog( + getPrefContext(), getUserShortcutTypes(), + this::callOnTutorialDialogButtonClicked); + } dialog.setCanceledOnTouchOutside(false); return dialog; default: diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 9f38ac5ca0d..facf213d9e5 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -219,9 +219,17 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment setupEditShortcutDialog(mDialog); return mDialog; case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL: - mDialog = AccessibilityGestureNavigationTutorial - .createAccessibilityTutorialDialog(getPrefContext(), - getUserShortcutTypes(), this::callOnTutorialDialogButtonClicked); + if (WizardManagerHelper.isAnySetupWizard(getIntent())) { + mDialog = AccessibilityGestureNavigationTutorial + .createAccessibilityTutorialDialogForSetupWizard( + getPrefContext(), getUserShortcutTypes(), + this::callOnTutorialDialogButtonClicked); + } else { + mDialog = AccessibilityGestureNavigationTutorial + .createAccessibilityTutorialDialog( + getPrefContext(), getUserShortcutTypes(), + this::callOnTutorialDialogButtonClicked); + } mDialog.setCanceledOnTouchOutside(false); return mDialog; default: diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java index 3a112c87c10..5bc7f1855d5 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java @@ -17,6 +17,7 @@ package com.android.settings.accessibility; import static com.android.settings.accessibility.AccessibilityGestureNavigationTutorial.createAccessibilityTutorialDialog; +import static com.android.settings.accessibility.AccessibilityGestureNavigationTutorial.createAccessibilityTutorialDialogForSetupWizard; import static com.android.settings.accessibility.AccessibilityGestureNavigationTutorial.createShortcutTutorialPages; import static com.android.settings.accessibility.AccessibilityGestureNavigationTutorial.showGestureNavigationTutorialDialog; import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; @@ -149,6 +150,18 @@ public final class AccessibilityGestureNavigationTutorialTest { .isEqualTo(View.GONE); } + @Test + public void createTutorialPages_turnOnSoftwareShortcut_showFromSuW_linkButtonGone() { + mShortcutTypes |= UserShortcutType.SOFTWARE; + + final AlertDialog alertDialog = + createAccessibilityTutorialDialogForSetupWizard(mContext, mShortcutTypes); + alertDialog.show(); + + assertThat(alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).getVisibility()) + .isEqualTo(View.GONE); + } + @Test public void performClickOnPositiveButton_turnOnSoftwareShortcut_dismiss() { @@ -178,8 +191,7 @@ public final class AccessibilityGestureNavigationTutorialTest { public void performClickOnNegativeButton_turnOnSoftwareShortcut_directToSettingsPage() { mShortcutTypes |= UserShortcutType.SOFTWARE; Activity activity = Robolectric.buildActivity(Activity.class).create().get(); - final AlertDialog alertDialog = - createAccessibilityTutorialDialog(activity, mShortcutTypes, mOnClickListener); + final AlertDialog alertDialog = createAccessibilityTutorialDialog(activity, mShortcutTypes); alertDialog.show(); alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).performClick();