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:
Roy Chou
2024-05-21 05:25:12 +00:00
committed by Android (Google) Code Review
12 changed files with 119 additions and 29 deletions

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}

View File

@@ -72,10 +72,6 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
if (mSettingsPreference != null) {
mSettingsPreference.setVisible(false);
}
// Setting of following typing
if (mFollowingTypingSwitchPreference != null) {
mFollowingTypingSwitchPreference.setVisible(false);
}
}
@Override