"Change font size" tile should go to settings' font size page directly

Test: atest & manual test
Bug: 131374325
Change-Id: I878da8c22e315100ae50d3d34ff218c5d14e81d8
This commit is contained in:
cnchen
2019-04-29 15:45:26 +08:00
parent 5ed1e2db38
commit 1c67af1762
2 changed files with 51 additions and 0 deletions

View File

@@ -20,19 +20,26 @@ import android.os.Bundle;
import android.view.Menu; import android.view.Menu;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceFragmentCompat;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard;
import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.search.actionbar.SearchMenuController;
import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.support.actionbar.HelpResourceProvider;
import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.core.instrumentation.Instrumentable;
import com.google.android.setupcompat.util.WizardManagerHelper;
public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivity { public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivity {
private static final String SAVE_KEY_TITLE = "activity_title"; 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 @Override
protected void onSaveInstanceState(Bundle savedState) { protected void onSaveInstanceState(Bundle savedState) {
savedState.putCharSequence(SAVE_KEY_TITLE, getTitle()); savedState.putCharSequence(SAVE_KEY_TITLE, getTitle());
@@ -79,4 +86,27 @@ public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivit
.launch(); .launch();
return true; 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();
}
}
} }

View File

@@ -16,6 +16,8 @@
package com.android.settings.accessibility; 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 static com.google.common.truth.Truth.assertThat;
import android.content.Intent; import android.content.Intent;
@@ -23,11 +25,14 @@ import android.content.Intent;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.Shadows;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@SmallTest @SmallTest
@@ -41,4 +46,20 @@ public class AccessibilitySettingsForSetupWizardActivityTest {
assertThat(activity.getThemeResId()).isEqualTo(R.style.GlifV3Theme_Light); 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();
}
} }