Merge changes I5409c1e8,I8ed80b44

* changes:
  Refactor CaptionAppearanceFragment to improve maintainability (4/n)
  Refactor CaptionAppearanceFragment to improve maintainability (3/n)
diff --git a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
index bceed73..dd8a3ea 100644
--- a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
+++ b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
@@ -95,18 +95,20 @@
      * Displays a dialog that guides users to use accessibility features with accessibility
      * gestures under system gesture navigation mode.
      */
-    public static void showGestureNavigationTutorialDialog(Context context,
+    public static AlertDialog showGestureNavigationTutorialDialog(Context context,
             DialogInterface.OnDismissListener onDismissListener) {
         final AlertDialog alertDialog = new AlertDialog.Builder(context)
                 .setView(createTutorialDialogContentView(context,
                         DialogType.GESTURE_NAVIGATION_SETTINGS))
-                .setNegativeButton(R.string.accessibility_tutorial_dialog_button, mOnClickListener)
+                .setPositiveButton(R.string.accessibility_tutorial_dialog_button, mOnClickListener)
                 .setOnDismissListener(onDismissListener)
                 .create();
 
         alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
         alertDialog.setCanceledOnTouchOutside(false);
         alertDialog.show();
+
+        return alertDialog;
     }
 
     static AlertDialog showAccessibilityGestureTutorialDialog(Context context) {
@@ -128,10 +130,10 @@
                         .launch();
 
         final AlertDialog alertDialog = new AlertDialog.Builder(context)
-                .setNegativeButton(R.string.accessibility_tutorial_dialog_link_button,
-                        linkButtonListener)
                 .setPositiveButton(R.string.accessibility_tutorial_dialog_button,
                         actionButtonListener)
+                .setNegativeButton(R.string.accessibility_tutorial_dialog_link_button,
+                        linkButtonListener)
                 .create();
 
         final TutorialPageChangeListener.OnPageSelectedCallback callback =
@@ -194,7 +196,7 @@
     private static AlertDialog createDialog(Context context, int dialogType) {
         final AlertDialog alertDialog = new AlertDialog.Builder(context)
                 .setView(createTutorialDialogContentView(context, dialogType))
-                .setNegativeButton(R.string.accessibility_tutorial_dialog_button, mOnClickListener)
+                .setPositiveButton(R.string.accessibility_tutorial_dialog_button, mOnClickListener)
                 .create();
 
         alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
index ceb630c..81cd864 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
@@ -18,6 +18,7 @@
 
 import static com.android.settings.accessibility.AccessibilityGestureNavigationTutorial.createAccessibilityTutorialDialog;
 import static com.android.settings.accessibility.AccessibilityGestureNavigationTutorial.createShortcutTutorialPages;
+import static com.android.settings.accessibility.AccessibilityGestureNavigationTutorial.showGestureNavigationTutorialDialog;
 import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -55,10 +56,10 @@
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
-
     @Mock
-    private DialogInterface.OnClickListener mMockOnClickListener;
-
+    private DialogInterface.OnClickListener mOnClickListener;
+    @Mock
+    private DialogInterface.OnDismissListener mOnDismissListener;
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private int mShortcutTypes;
 
@@ -126,12 +127,12 @@
     public void performClickOnPositiveButton_turnOnSoftwareShortcut_callOnClickListener() {
         mShortcutTypes |= UserShortcutType.SOFTWARE;
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(mContext, mShortcutTypes, mMockOnClickListener);
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes, mOnClickListener);
         alertDialog.show();
 
         alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
 
-        verify(mMockOnClickListener).onClick(alertDialog, DialogInterface.BUTTON_POSITIVE);
+        verify(mOnClickListener).onClick(alertDialog, DialogInterface.BUTTON_POSITIVE);
     }
 
     @Test
@@ -139,7 +140,7 @@
         mShortcutTypes |= UserShortcutType.SOFTWARE;
         Activity activity = Robolectric.buildActivity(Activity.class).create().get();
         final AlertDialog alertDialog =
-                createAccessibilityTutorialDialog(activity, mShortcutTypes, mMockOnClickListener);
+                createAccessibilityTutorialDialog(activity, mShortcutTypes, mOnClickListener);
         alertDialog.show();
 
         alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).performClick();
@@ -151,4 +152,15 @@
         assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, -1))
                 .isEqualTo(SettingsEnums.SWITCH_SHORTCUT_DIALOG_ACCESSIBILITY_BUTTON_SETTINGS);
     }
+
+    @Test
+    public void performClickOnPositiveButton_turnOnGestureShortcut_callOnDismissListener() {
+        final AlertDialog alertDialog =
+                showGestureNavigationTutorialDialog(mContext, mOnDismissListener);
+
+        alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
+
+        assertThat(alertDialog.isShowing()).isFalse();
+        verify(mOnDismissListener).onDismiss(alertDialog);
+    }
 }