Merge changes Ife935485,Ic9b44d73,I44f7f058,I39868ac1,I05c59a76 into main
* changes: chore(magnification suw): hide joystick toggle in setup wizard chore(magnification suw): hide one finger pan toggle in setup wizard refactor(magnification suw): hide follow typing toggle in setup wizard chore(magnification suw): hide always on toggle in setup wizard chore(magnification suw): create MagnificationFeaturePreferenceController
This commit is contained in:
@@ -34,7 +34,6 @@ import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
@@ -44,8 +43,8 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
* feature, where the magnifier will not deactivate on Activity transitions; it will only zoom out
|
||||
* to 100%.
|
||||
*/
|
||||
public class MagnificationAlwaysOnPreferenceController extends TogglePreferenceController
|
||||
implements LifecycleObserver, OnResume, OnPause {
|
||||
public class MagnificationAlwaysOnPreferenceController extends
|
||||
MagnificationFeaturePreferenceController implements LifecycleObserver, OnResume, OnPause {
|
||||
|
||||
private static final String TAG =
|
||||
MagnificationAlwaysOnPreferenceController.class.getSimpleName();
|
||||
@@ -89,7 +88,7 @@ public class MagnificationAlwaysOnPreferenceController extends TogglePreferenceC
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE;
|
||||
return isInSetupWizard() ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.accessibility;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
|
||||
/**
|
||||
* A base preference controller of magnification feature with common methods.
|
||||
*/
|
||||
public abstract class MagnificationFeaturePreferenceController extends TogglePreferenceController {
|
||||
|
||||
private boolean mInSetupWizard;
|
||||
|
||||
protected MagnificationFeaturePreferenceController(Context context,
|
||||
String preferenceKey) {
|
||||
super(context, preferenceKey);
|
||||
}
|
||||
|
||||
protected final boolean isInSetupWizard() {
|
||||
return mInSetupWizard;
|
||||
}
|
||||
|
||||
protected final void setInSetupWizard(boolean inSetupWizard) {
|
||||
mInSetupWizard = inSetupWizard;
|
||||
}
|
||||
}
|
||||
@@ -23,10 +23,10 @@ import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
|
||||
/** 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 =
|
||||
MagnificationFollowTypingPreferenceController.class.getSimpleName();
|
||||
@@ -38,7 +38,7 @@ public class MagnificationFollowTypingPreferenceController extends TogglePrefere
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE;
|
||||
return isInSetupWizard() ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -23,12 +23,12 @@ import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
|
||||
/**
|
||||
* Controller that accesses and switches the preference status of the magnification joystick feature
|
||||
*/
|
||||
public class MagnificationJoystickPreferenceController extends TogglePreferenceController {
|
||||
public class MagnificationJoystickPreferenceController extends
|
||||
MagnificationFeaturePreferenceController {
|
||||
|
||||
private static final String TAG =
|
||||
MagnificationJoystickPreferenceController.class.getSimpleName();
|
||||
@@ -40,7 +40,7 @@ public class MagnificationJoystickPreferenceController extends TogglePreferenceC
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE;
|
||||
return isInSetupWizard() ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -35,13 +35,12 @@ import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
|
||||
public class MagnificationOneFingerPanningPreferenceController
|
||||
extends TogglePreferenceController implements LifecycleObserver, OnResume, OnPause {
|
||||
public class MagnificationOneFingerPanningPreferenceController extends
|
||||
MagnificationFeaturePreferenceController implements LifecycleObserver, OnResume, OnPause {
|
||||
static final String PREF_KEY = Settings.Secure.ACCESSIBILITY_SINGLE_FINGER_PANNING_ENABLED;
|
||||
|
||||
private TwoStatePreference mSwitchPreference;
|
||||
@@ -82,7 +81,7 @@ public class MagnificationOneFingerPanningPreferenceController
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE;
|
||||
return isInSetupWizard() ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -82,8 +82,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
|
||||
new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
|
||||
|
||||
protected TwoStatePreference mFollowingTypingSwitchPreference;
|
||||
|
||||
// TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util.
|
||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||
private CheckBox mSoftwareTypeCheckBox;
|
||||
@@ -92,10 +90,13 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
@Nullable private CheckBox mTwoFingerTripleTapTypeCheckBox;
|
||||
private DialogCreatable mDialogDelegate;
|
||||
|
||||
private boolean mInSetupWizard;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getActivity().setTitle(R.string.accessibility_screen_magnification_title);
|
||||
mInSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -169,7 +170,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
.showAccessibilityGestureTutorialDialog(getPrefContext());
|
||||
case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
|
||||
final CharSequence dialogTitle = getShortcutTitle();
|
||||
final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
|
||||
final int dialogType = mInSetupWizard
|
||||
? DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW
|
||||
: DialogType.EDIT_SHORTCUT_MAGNIFICATION;
|
||||
mDialog = AccessibilityDialogUtils.showEditShortcutDialog(getPrefContext(),
|
||||
@@ -240,17 +241,18 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
}
|
||||
|
||||
private void addFollowTypingSetting(PreferenceCategory generalCategory) {
|
||||
mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext());
|
||||
mFollowingTypingSwitchPreference.setTitle(
|
||||
var followingTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext());
|
||||
followingTypingSwitchPreference.setTitle(
|
||||
R.string.accessibility_screen_magnification_follow_typing_title);
|
||||
mFollowingTypingSwitchPreference.setSummary(
|
||||
followingTypingSwitchPreference.setSummary(
|
||||
R.string.accessibility_screen_magnification_follow_typing_summary);
|
||||
mFollowingTypingSwitchPreference.setKey(
|
||||
followingTypingSwitchPreference.setKey(
|
||||
MagnificationFollowTypingPreferenceController.PREF_KEY);
|
||||
generalCategory.addPreference(mFollowingTypingSwitchPreference);
|
||||
generalCategory.addPreference(followingTypingSwitchPreference);
|
||||
|
||||
var followTypingPreferenceController = new MagnificationFollowTypingPreferenceController(
|
||||
getContext(), MagnificationFollowTypingPreferenceController.PREF_KEY);
|
||||
followTypingPreferenceController.setInSetupWizard(mInSetupWizard);
|
||||
followTypingPreferenceController.displayPreference(getPreferenceScreen());
|
||||
addPreferenceController(followTypingPreferenceController);
|
||||
}
|
||||
@@ -282,6 +284,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
|
||||
var alwaysOnPreferenceController = new MagnificationAlwaysOnPreferenceController(
|
||||
getContext(), MagnificationAlwaysOnPreferenceController.PREF_KEY);
|
||||
alwaysOnPreferenceController.setInSetupWizard(mInSetupWizard);
|
||||
getSettingsLifecycle().addObserver(alwaysOnPreferenceController);
|
||||
alwaysOnPreferenceController.displayPreference(getPreferenceScreen());
|
||||
addPreferenceController(alwaysOnPreferenceController);
|
||||
@@ -301,6 +304,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
|
||||
var oneFingerPanningPreferenceController =
|
||||
new MagnificationOneFingerPanningPreferenceController(getContext());
|
||||
oneFingerPanningPreferenceController.setInSetupWizard(mInSetupWizard);
|
||||
getSettingsLifecycle().addObserver(oneFingerPanningPreferenceController);
|
||||
oneFingerPanningPreferenceController.displayPreference(getPreferenceScreen());
|
||||
addPreferenceController(oneFingerPanningPreferenceController);
|
||||
@@ -329,6 +333,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
getContext(),
|
||||
MagnificationJoystickPreferenceController.PREF_KEY
|
||||
);
|
||||
joystickPreferenceController.setInSetupWizard(mInSetupWizard);
|
||||
joystickPreferenceController.displayPreference(getPreferenceScreen());
|
||||
addPreferenceController(joystickPreferenceController);
|
||||
}
|
||||
|
||||
@@ -72,10 +72,6 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
|
||||
if (mSettingsPreference != null) {
|
||||
mSettingsPreference.setVisible(false);
|
||||
}
|
||||
// Setting of following typing
|
||||
if (mFollowingTypingSwitchPreference != null) {
|
||||
mFollowingTypingSwitchPreference.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -18,6 +18,8 @@ package com.android.settings.accessibility;
|
||||
|
||||
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
|
||||
import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
|
||||
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;
|
||||
|
||||
@@ -148,4 +150,15 @@ public class MagnificationAlwaysOnPreferenceControllerTest {
|
||||
mController.updateState(mSwitchPreference);
|
||||
assertThat(mSwitchPreference.isEnabled()).isTrue();
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
package com.android.settings.accessibility;
|
||||
|
||||
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;
|
||||
|
||||
@@ -61,6 +63,17 @@ public class MagnificationFollowTypingPreferenceControllerTest {
|
||||
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
|
||||
public void performClick_switchDefaultStateForFollowTyping_shouldReturnFalse() {
|
||||
mSwitchPreference.performClick();
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
package com.android.settings.accessibility;
|
||||
|
||||
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;
|
||||
|
||||
@@ -80,4 +82,15 @@ public class MagnificationJoystickPreferenceControllerTest {
|
||||
assertThat(mController.isChecked()).isFalse();
|
||||
assertThat(mSwitchPreference.isChecked()).isFalse();
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ package com.android.settings.accessibility;
|
||||
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
|
||||
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
|
||||
import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
|
||||
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;
|
||||
|
||||
@@ -186,6 +188,17 @@ public class MagnificationOneFingerPanningPreferenceControllerTest {
|
||||
assertThat(mSwitchPreference.isChecked()).isFalse();
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
private String enabledSummary() {
|
||||
return mContext.getString(
|
||||
R.string.accessibility_magnification_one_finger_panning_summary_on);
|
||||
|
||||
@@ -32,7 +32,6 @@ import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SwitchPreferenceCompat;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -97,7 +96,6 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
|
||||
verify(mFooterBarMixin).setPrimaryButton(any());
|
||||
assertThat(mFragment.mTopIntroPreference.isVisible()).isFalse();
|
||||
assertThat(mFragment.mSettingsPreference.isVisible()).isFalse();
|
||||
assertThat(mFragment.mFollowingTypingSwitchPreference.isVisible()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -124,7 +122,6 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
|
||||
mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context));
|
||||
mTopIntroPreference = new TopIntroPreference(context);
|
||||
mSettingsPreference = new Preference(context);
|
||||
mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user