Add a done button to vision setting pages in setup flow

Root cause: User feels confused because the particular screen doesn't have a back button but at that moment of the setup flow the regular UI gestures didn't even work.
Solution: Add a done button to the vision settings pages for clearer navigation.

Bug: 262995569
Test: make RunSettingsRoboTests ROBOTEST_FILTER=FragmentForSetupWizardTest
Change-Id: Id3a0d78389e0e6c11b5b5cf016b37673fde7f286
This commit is contained in:
menghanli
2023-02-13 17:18:40 +08:00
parent d3ff83eb4f
commit dd2ec775c8
11 changed files with 119 additions and 33 deletions

View File

@@ -23,6 +23,7 @@ import static com.android.settings.accessibility.AccessibilitySettingsForSetupWi
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -45,6 +46,7 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
import com.android.settingslib.RestrictedPreference;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupdesign.GlifPreferenceLayout;
import org.junit.Before;
@@ -79,6 +81,8 @@ public class AccessibilitySettingsForSetupWizardTest {
private FragmentActivity mActivity;
@Mock
private GlifPreferenceLayout mGlifLayoutView;
@Mock
private FooterBarMixin mFooterBarMixin;
private AccessibilitySettingsForSetupWizard mFragment;
@Before
@@ -89,6 +93,7 @@ public class AccessibilitySettingsForSetupWizardTest {
when(mAccessibilityManager.getInstalledAccessibilityServiceList()).thenReturn(
mAccessibilityServices);
doReturn(mActivity).when(mFragment).getActivity();
doReturn(mFooterBarMixin).when(mGlifLayoutView).getMixin(FooterBarMixin.class);
}
@Test
@@ -99,6 +104,7 @@ public class AccessibilitySettingsForSetupWizardTest {
mContext.getString(R.string.vision_settings_title));
verify(mGlifLayoutView).setDescriptionText(
mContext.getString(R.string.vision_settings_description));
verify(mFooterBarMixin).setPrimaryButton(any());
}
@Test

View File

@@ -100,19 +100,10 @@ public class TextReadingPreferenceFragmentForSetupWizardTest {
}
@Test
public void onViewCreated_verifySetSecondaryButton() {
mFragment.onViewCreated(mGlifLayoutView, null);
verify(mFooterBarMixin).setSecondaryButton(any());
}
@Test
public void onViewCreated_verifySetPrimaryButton() {
doReturn(mActivity).when(mFragment).getActivity();
doReturn("setupwizard").when(mActivity).getCallingPackage();
public void onViewCreated_verifyAction() {
mFragment.onViewCreated(mGlifLayoutView, null);
verify(mFooterBarMixin).setPrimaryButton(any());
verify(mFooterBarMixin).setSecondaryButton(any());
}
}

View File

@@ -18,6 +18,7 @@ package com.android.settings.accessibility;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -38,6 +39,7 @@ import com.android.settings.testutils.shadow.ShadowSettingsPreferenceFragment;
import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settingslib.widget.TopIntroPreference;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupdesign.GlifPreferenceLayout;
import org.junit.Before;
@@ -64,6 +66,8 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
private GlifPreferenceLayout mGlifLayoutView;
@Mock
private SettingsMainSwitchBar mSwitchBar;
@Mock
private FooterBarMixin mFooterBarMixin;
private ToggleScreenMagnificationPreferenceFragmentForSetupWizard mFragment;
@Before
@@ -72,6 +76,7 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
spy(new TestToggleScreenMagnificationPreferenceFragmentForSetupWizard(mContext));
doReturn(mActivity).when(mFragment).getActivity();
when(mActivity.getSwitchBar()).thenReturn(mSwitchBar);
doReturn(mFooterBarMixin).when(mGlifLayoutView).getMixin(FooterBarMixin.class);
}
@Test
@@ -83,6 +88,7 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
verify(mGlifLayoutView).setDescriptionText(
mContext.getString(R.string.accessibility_screen_magnification_intro_text));
verify(mGlifLayoutView).setDividerInsets(Integer.MAX_VALUE, 0);
verify(mFooterBarMixin).setPrimaryButton(any());
assertThat(mFragment.mTopIntroPreference.isVisible()).isFalse();
assertThat(mFragment.mSettingsPreference.isVisible()).isFalse();
assertThat(mFragment.mFollowingTypingSwitchPreference.isVisible()).isFalse();

View File

@@ -18,6 +18,7 @@ package com.android.settings.accessibility;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -37,6 +38,7 @@ import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.widget.TopIntroPreference;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupdesign.GlifPreferenceLayout;
import org.junit.Before;
@@ -62,6 +64,8 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizardTest {
private GlifPreferenceLayout mGlifLayoutView;
@Mock
private SettingsMainSwitchBar mSwitchBar;
@Mock
private FooterBarMixin mFooterBarMixin;
private ToggleScreenReaderPreferenceFragmentForSetupWizard mFragment;
@Before
@@ -69,6 +73,7 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizardTest {
mFragment = spy(new TestToggleScreenReaderPreferenceFragmentForSetupWizard(mContext));
doReturn(mActivity).when(mFragment).getActivity();
when(mActivity.getSwitchBar()).thenReturn(mSwitchBar);
doReturn(mFooterBarMixin).when(mGlifLayoutView).getMixin(FooterBarMixin.class);
}
@Test
@@ -79,6 +84,7 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizardTest {
verify(mGlifLayoutView).setDescriptionText(
mContext.getString(R.string.talkback_summary));
verify(mGlifLayoutView).setDividerInsets(Integer.MAX_VALUE, 0);
verify(mFooterBarMixin).setPrimaryButton(any());
assertThat(mFragment.mTopIntroPreference.isVisible()).isFalse();
}

View File

@@ -18,6 +18,7 @@ package com.android.settings.accessibility;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -37,6 +38,7 @@ import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.widget.TopIntroPreference;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupdesign.GlifPreferenceLayout;
import org.junit.Before;
@@ -62,6 +64,8 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest {
private GlifPreferenceLayout mGlifLayoutView;
@Mock
private SettingsMainSwitchBar mSwitchBar;
@Mock
private FooterBarMixin mFooterBarMixin;
private ToggleSelectToSpeakPreferenceFragmentForSetupWizard mFragment;
@Before
@@ -69,6 +73,7 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest {
mFragment = spy(new TestToggleSelectToSpeakPreferenceFragmentForSetupWizard(mContext));
doReturn(mActivity).when(mFragment).getActivity();
when(mActivity.getSwitchBar()).thenReturn(mSwitchBar);
doReturn(mFooterBarMixin).when(mGlifLayoutView).getMixin(FooterBarMixin.class);
}
@Test
@@ -79,6 +84,7 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest {
verify(mGlifLayoutView).setDescriptionText(
mContext.getString(R.string.select_to_speak_summary));
verify(mGlifLayoutView).setDividerInsets(Integer.MAX_VALUE, 0);
verify(mFooterBarMixin).setPrimaryButton(any());
assertThat(mFragment.mTopIntroPreference.isVisible()).isFalse();
}