refactor(magnification suw): hide follow typing toggle in setup wizard
Originally we cache mFollowingTypingSwitchPreference in fragment so in ToggleScreenMagnificationPreferenceFragmentForSetupWizard we can set the preference visible to false to hide it. After creating MagnificationFeaturePreferenceController, the MagnificationFollowTypingPreferenceController can extend it and check isInSetupWizard internally then dicide whether to hide. Therefore, we don't need to cache mFollowingTypingSwitchPreference in fragment and let the fragment control the preference visibility anymore. Bug: 340721852 Flag: NONE Test: manually atest MagnificationFollowTypingPreferenceControllerTest atest ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest atest ToggleScreenMagnificationPreferenceFragmentTest Change-Id: I44f7f0589b2df3d83a27139323fc68a0561f1cfa
This commit is contained in:
@@ -23,10 +23,10 @@ import android.content.Context;
|
|||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.TogglePreferenceController;
|
|
||||||
|
|
||||||
/** Controller that accesses and switches the preference status of following typing feature */
|
/** Controller that accesses and switches the preference status of following typing feature */
|
||||||
public class MagnificationFollowTypingPreferenceController extends TogglePreferenceController {
|
public class MagnificationFollowTypingPreferenceController extends
|
||||||
|
MagnificationFeaturePreferenceController {
|
||||||
|
|
||||||
private static final String TAG =
|
private static final String TAG =
|
||||||
MagnificationFollowTypingPreferenceController.class.getSimpleName();
|
MagnificationFollowTypingPreferenceController.class.getSimpleName();
|
||||||
@@ -38,7 +38,7 @@ public class MagnificationFollowTypingPreferenceController extends TogglePrefere
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return AVAILABLE;
|
return isInSetupWizard() ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -82,8 +82,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
|||||||
private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
|
private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
|
||||||
new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
|
new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
|
||||||
|
|
||||||
protected TwoStatePreference mFollowingTypingSwitchPreference;
|
|
||||||
|
|
||||||
// TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util.
|
// TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util.
|
||||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||||
private CheckBox mSoftwareTypeCheckBox;
|
private CheckBox mSoftwareTypeCheckBox;
|
||||||
@@ -243,17 +241,18 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addFollowTypingSetting(PreferenceCategory generalCategory) {
|
private void addFollowTypingSetting(PreferenceCategory generalCategory) {
|
||||||
mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext());
|
var followingTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext());
|
||||||
mFollowingTypingSwitchPreference.setTitle(
|
followingTypingSwitchPreference.setTitle(
|
||||||
R.string.accessibility_screen_magnification_follow_typing_title);
|
R.string.accessibility_screen_magnification_follow_typing_title);
|
||||||
mFollowingTypingSwitchPreference.setSummary(
|
followingTypingSwitchPreference.setSummary(
|
||||||
R.string.accessibility_screen_magnification_follow_typing_summary);
|
R.string.accessibility_screen_magnification_follow_typing_summary);
|
||||||
mFollowingTypingSwitchPreference.setKey(
|
followingTypingSwitchPreference.setKey(
|
||||||
MagnificationFollowTypingPreferenceController.PREF_KEY);
|
MagnificationFollowTypingPreferenceController.PREF_KEY);
|
||||||
generalCategory.addPreference(mFollowingTypingSwitchPreference);
|
generalCategory.addPreference(followingTypingSwitchPreference);
|
||||||
|
|
||||||
var followTypingPreferenceController = new MagnificationFollowTypingPreferenceController(
|
var followTypingPreferenceController = new MagnificationFollowTypingPreferenceController(
|
||||||
getContext(), MagnificationFollowTypingPreferenceController.PREF_KEY);
|
getContext(), MagnificationFollowTypingPreferenceController.PREF_KEY);
|
||||||
|
followTypingPreferenceController.setInSetupWizard(mInSetupWizard);
|
||||||
followTypingPreferenceController.displayPreference(getPreferenceScreen());
|
followTypingPreferenceController.displayPreference(getPreferenceScreen());
|
||||||
addPreferenceController(followTypingPreferenceController);
|
addPreferenceController(followTypingPreferenceController);
|
||||||
}
|
}
|
||||||
|
@@ -72,10 +72,6 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
|
|||||||
if (mSettingsPreference != null) {
|
if (mSettingsPreference != null) {
|
||||||
mSettingsPreference.setVisible(false);
|
mSettingsPreference.setVisible(false);
|
||||||
}
|
}
|
||||||
// Setting of following typing
|
|
||||||
if (mFollowingTypingSwitchPreference != null) {
|
|
||||||
mFollowingTypingSwitchPreference.setVisible(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -17,6 +17,8 @@
|
|||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
|
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
|
||||||
|
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
||||||
|
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
@@ -61,6 +63,17 @@ public class MagnificationFollowTypingPreferenceControllerTest {
|
|||||||
reset(mSwitchPreference);
|
reset(mSwitchPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getAvailableStatus_notInSetupWizard_returnAvailable() {
|
||||||
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getAvailableStatus_inSetupWizard_returnConditionallyUnavailable() {
|
||||||
|
mController.setInSetupWizard(true);
|
||||||
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void performClick_switchDefaultStateForFollowTyping_shouldReturnFalse() {
|
public void performClick_switchDefaultStateForFollowTyping_shouldReturnFalse() {
|
||||||
mSwitchPreference.performClick();
|
mSwitchPreference.performClick();
|
||||||
|
@@ -32,7 +32,6 @@ import androidx.lifecycle.LifecycleOwner;
|
|||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreferenceCompat;
|
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -97,7 +96,6 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
|
|||||||
verify(mFooterBarMixin).setPrimaryButton(any());
|
verify(mFooterBarMixin).setPrimaryButton(any());
|
||||||
assertThat(mFragment.mTopIntroPreference.isVisible()).isFalse();
|
assertThat(mFragment.mTopIntroPreference.isVisible()).isFalse();
|
||||||
assertThat(mFragment.mSettingsPreference.isVisible()).isFalse();
|
assertThat(mFragment.mSettingsPreference.isVisible()).isFalse();
|
||||||
assertThat(mFragment.mFollowingTypingSwitchPreference.isVisible()).isFalse();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -124,7 +122,6 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
|
|||||||
mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context));
|
mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context));
|
||||||
mTopIntroPreference = new TopIntroPreference(context);
|
mTopIntroPreference = new TopIntroPreference(context);
|
||||||
mSettingsPreference = new Preference(context);
|
mSettingsPreference = new Preference(context);
|
||||||
mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user