From 1c67af17623a88ef1281a7c9ecf3603b02f1d709 Mon Sep 17 00:00:00 2001 From: cnchen Date: Mon, 29 Apr 2019 15:45:26 +0800 Subject: [PATCH] "Change font size" tile should go to settings' font size page directly Test: atest & manual test Bug: 131374325 Change-Id: I878da8c22e315100ae50d3d34ff218c5d14e81d8 --- ...ibilitySettingsForSetupWizardActivity.java | 30 +++++++++++++++++++ ...itySettingsForSetupWizardActivityTest.java | 21 +++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java index fc68d2caf04..8f0819ee83c 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java +++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java @@ -20,19 +20,26 @@ import android.os.Bundle; import android.view.Menu; import android.view.accessibility.AccessibilityEvent; +import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import com.android.settings.SettingsActivity; import com.android.settings.core.SubSettingLauncher; +import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard; import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settingslib.core.instrumentation.Instrumentable; +import com.google.android.setupcompat.util.WizardManagerHelper; + public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivity { private static final String SAVE_KEY_TITLE = "activity_title"; + @VisibleForTesting + static final String EXTRA_GO_TO_FONT_SIZE_PREFERENCE = "go_to_font_size_preference"; + @Override protected void onSaveInstanceState(Bundle savedState) { savedState.putCharSequence(SAVE_KEY_TITLE, getTitle()); @@ -79,4 +86,27 @@ public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivit .launch(); return true; } + + @Override + protected void onCreate(Bundle savedState) { + super.onCreate(savedState); + + tryLaunchFontSizePreference(); + } + + @VisibleForTesting + void tryLaunchFontSizePreference() { + if (WizardManagerHelper.isAnySetupWizard(getIntent()) && getIntent().getBooleanExtra( + EXTRA_GO_TO_FONT_SIZE_PREFERENCE, false)) { + Bundle args = new Bundle(); + args.putInt(HelpResourceProvider.HELP_URI_RESOURCE_KEY, 0); + args.putBoolean(SearchMenuController.NEED_SEARCH_ICON_IN_ACTION_BAR, false); + new SubSettingLauncher(this) + .setDestination(FontSizePreferenceFragmentForSetupWizard.class.getName()) + .setArguments(args) + .setSourceMetricsCategory(Instrumentable.METRICS_CATEGORY_UNKNOWN) + .launch(); + finish(); + } + } } diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java index a0a9de9c88a..daf8471c69b 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java @@ -16,6 +16,8 @@ package com.android.settings.accessibility; +import static com.android.settings.accessibility.AccessibilitySettingsForSetupWizardActivity.EXTRA_GO_TO_FONT_SIZE_PREFERENCE; + import static com.google.common.truth.Truth.assertThat; import android.content.Intent; @@ -23,11 +25,14 @@ import android.content.Intent; import androidx.test.filters.SmallTest; import com.android.settings.R; +import com.android.settings.SettingsActivity; +import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; +import org.robolectric.Shadows; @RunWith(RobolectricTestRunner.class) @SmallTest @@ -41,4 +46,20 @@ public class AccessibilitySettingsForSetupWizardActivityTest { assertThat(activity.getThemeResId()).isEqualTo(R.style.GlifV3Theme_Light); } + + @Test + public void onCreate_whenHasFontSizeExtra_shouldGoToFontSizePreferenceDirectly() { + AccessibilitySettingsForSetupWizardActivity activity = + Robolectric.buildActivity(AccessibilitySettingsForSetupWizardActivity.class, + new Intent().putExtra(EXTRA_GO_TO_FONT_SIZE_PREFERENCE, true). + putExtra("isSetupFlow", true)).get(); + + activity.tryLaunchFontSizePreference(); + + final Intent launchIntent = Shadows.shadowOf(activity).getNextStartedActivity(); + assertThat(launchIntent).isNotNull(); + assertThat(launchIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo( + FontSizePreferenceFragmentForSetupWizard.class.getName()); + assertThat(activity.isFinishing()).isTrue(); + } }