a11y: Clean up magnification mode controller and fix lint errors
This cleans up the magnification mode controller and related code. It also fixes most of the lint errors in the files. NO_IFTTT=linter not working Bug: b/388335935 Flag: EXEMPT refactor Test: com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentTest & com.android.settings.accessibility.MagnificationModePreferenceControllerTest Change-Id: I368128c3c71285a9511a7831e1d01232e7536d2f
This commit is contained in:
@@ -19,7 +19,6 @@ package com.android.settings.accessibility;
|
||||
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
|
||||
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
|
||||
import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
|
||||
import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
|
||||
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
|
||||
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
|
||||
import static com.android.settings.accessibility.AccessibilityUtil.getShortcutSummaryList;
|
||||
@@ -42,8 +41,10 @@ import android.view.ViewGroup;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.core.util.Preconditions;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.SwitchPreferenceCompat;
|
||||
@@ -53,6 +54,7 @@ import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.server.accessibility.Flags;
|
||||
import com.android.settings.DialogCreatable;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
|
||||
import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
@@ -74,10 +76,10 @@ import java.util.stream.Stream;
|
||||
*/
|
||||
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
||||
public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
ToggleFeaturePreferenceFragment implements
|
||||
MagnificationModePreferenceController.DialogHelper {
|
||||
ToggleFeaturePreferenceFragment implements DialogHelper {
|
||||
|
||||
private static final String TAG = "ToggleScreenMagnificationPreferenceFragment";
|
||||
private static final String TAG =
|
||||
ToggleScreenMagnificationPreferenceFragment.class.getSimpleName();
|
||||
@VisibleForTesting
|
||||
static final String KEY_MAGNIFICATION_SHORTCUT_PREFERENCE = "magnification_shortcut_preference";
|
||||
private static final char COMPONENT_NAME_SEPARATOR = ':';
|
||||
@@ -86,23 +88,30 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
|
||||
// TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util.
|
||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||
private DialogCreatable mDialogDelegate;
|
||||
@Nullable
|
||||
private DialogCreatable mMagnificationModeDialogDelegate;
|
||||
|
||||
@Nullable
|
||||
MagnificationOneFingerPanningPreferenceController mOneFingerPanningPreferenceController;
|
||||
|
||||
private boolean mInSetupWizard;
|
||||
|
||||
@VisibleForTesting
|
||||
public void setMagnificationModeDialogDelegate(@NonNull DialogCreatable delegate) {
|
||||
mMagnificationModeDialogDelegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getActivity().setTitle(R.string.accessibility_screen_magnification_title);
|
||||
mInSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@NonNull Bundle savedInstanceState) {
|
||||
mFeatureName = getString(R.string.accessibility_screen_magnification_title);
|
||||
mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
|
||||
.authority(getPrefContext().getPackageName())
|
||||
@@ -161,15 +170,14 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(int dialogId) {
|
||||
if (mDialogDelegate != null) {
|
||||
mDialog = mDialogDelegate.onCreateDialog(dialogId);
|
||||
if (mDialog != null) {
|
||||
return mDialog;
|
||||
}
|
||||
}
|
||||
switch (dialogId) {
|
||||
case DialogEnums.DIALOG_MAGNIFICATION_MODE:
|
||||
case DialogEnums.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING:
|
||||
return Preconditions.checkNotNull(mMagnificationModeDialogDelegate)
|
||||
.onCreateDialog(dialogId);
|
||||
case DialogEnums.GESTURE_NAVIGATION_TUTORIAL:
|
||||
return AccessibilityShortcutsTutorial
|
||||
.showAccessibilityGestureTutorialDialog(getPrefContext());
|
||||
@@ -238,9 +246,10 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
generalCategory.addPreference(mSettingsPreference);
|
||||
|
||||
final MagnificationModePreferenceController magnificationModePreferenceController =
|
||||
new MagnificationModePreferenceController(getContext(),
|
||||
new MagnificationModePreferenceController(Preconditions.checkNotNull(getContext()),
|
||||
MagnificationModePreferenceController.PREF_KEY);
|
||||
magnificationModePreferenceController.setDialogHelper(this);
|
||||
magnificationModePreferenceController.setDialogHelper(/* dialogHelper= */this);
|
||||
mMagnificationModeDialogDelegate = magnificationModePreferenceController;
|
||||
getSettingsLifecycle().addObserver(magnificationModePreferenceController);
|
||||
magnificationModePreferenceController.displayPreference(getPreferenceScreen());
|
||||
addPreferenceController(magnificationModePreferenceController);
|
||||
@@ -388,11 +397,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
super.showDialog(dialogId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDialogDelegate(DialogCreatable delegate) {
|
||||
mDialogDelegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerKeysToObserverCallback(
|
||||
AccessibilitySettingsContentObserver contentObserver) {
|
||||
@@ -470,14 +474,11 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
|
||||
@Override
|
||||
public int getDialogMetricsCategory(int dialogId) {
|
||||
if (mDialogDelegate != null) {
|
||||
final int category = mDialogDelegate.getDialogMetricsCategory(dialogId);
|
||||
if (category != 0) {
|
||||
return category;
|
||||
}
|
||||
}
|
||||
|
||||
switch (dialogId) {
|
||||
case DialogEnums.DIALOG_MAGNIFICATION_MODE:
|
||||
case DialogEnums.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING:
|
||||
return Preconditions.checkNotNull(mMagnificationModeDialogDelegate)
|
||||
.getDialogMetricsCategory(dialogId);
|
||||
case DialogEnums.GESTURE_NAVIGATION_TUTORIAL:
|
||||
return SettingsEnums.DIALOG_TOGGLE_SCREEN_MAGNIFICATION_GESTURE_NAVIGATION;
|
||||
case DialogEnums.ACCESSIBILITY_BUTTON_TUTORIAL:
|
||||
@@ -514,7 +515,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onToggleClicked(ShortcutPreference preference) {
|
||||
public void onToggleClicked(@NonNull ShortcutPreference preference) {
|
||||
final int shortcutTypes = getUserPreferredShortcutTypes();
|
||||
getPrefContext().getSystemService(AccessibilityManager.class).enableShortcutsForTargets(
|
||||
preference.isChecked(), shortcutTypes,
|
||||
@@ -527,7 +528,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSettingsClicked(ShortcutPreference preference) {
|
||||
public void onSettingsClicked(@NonNull ShortcutPreference preference) {
|
||||
EditShortcutsPreferenceFragment.showEditShortcutScreen(
|
||||
requireContext(),
|
||||
getMetricsCategory(),
|
||||
@@ -581,7 +582,8 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
*
|
||||
* @param context The current context.
|
||||
*/
|
||||
public static CharSequence getServiceSummary(Context context) {
|
||||
@NonNull
|
||||
public static CharSequence getServiceSummary(@NonNull Context context) {
|
||||
// Get the user shortcut type from settings provider.
|
||||
final int userShortcutType = ShortcutUtils.getEnabledShortcutTypes(
|
||||
context, MAGNIFICATION_CONTROLLER_NAME);
|
||||
@@ -604,8 +606,9 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider() {
|
||||
// LINT.IfChange(search_data)
|
||||
@NonNull
|
||||
@Override
|
||||
public List<SearchIndexableRaw> getRawDataToIndex(Context context,
|
||||
public List<SearchIndexableRaw> getRawDataToIndex(@NonNull Context context,
|
||||
boolean enabled) {
|
||||
final List<SearchIndexableRaw> rawData =
|
||||
super.getRawDataToIndex(context, enabled);
|
||||
@@ -628,8 +631,9 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
return rawData;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
public List<String> getNonIndexableKeys(@NonNull Context context) {
|
||||
final List<String> niks = super.getNonIndexableKeys(context);
|
||||
|
||||
if (!com.android.settings.accessibility.Flags.fixA11ySettingsSearch()) {
|
||||
|
||||
Reference in New Issue
Block a user