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:
Yongshun Liu
2025-02-12 10:07:24 +00:00
parent 74e862de8d
commit b8ee801dfd
6 changed files with 204 additions and 146 deletions

View File

@@ -17,8 +17,6 @@
package com.android.settings.accessibility;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
import static com.android.settings.accessibility.MagnificationModePreferenceController.MagnificationModeInfo;
import static com.google.common.truth.Truth.assertThat;
@@ -37,6 +35,7 @@ import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
@@ -44,6 +43,9 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
import com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
import com.android.settings.accessibility.MagnificationModePreferenceController.MagnificationModeInfo;
import com.android.settings.utils.AnnotationSpan;
import org.junit.Before;
@@ -82,6 +84,8 @@ public class MagnificationModePreferenceControllerTest {
mScreen.addPreference(mModePreference);
MagnificationCapabilities.setCapabilities(mContext, MAGNIFICATION_MODE_DEFAULT);
mController = new MagnificationModePreferenceController(mContext, PREF_KEY);
mController.setDialogHelper(mDialogHelper);
mDialogHelper.setDialogDelegate(mController);
showPreferenceOnTheScreen(null);
}
@@ -107,7 +111,7 @@ public class MagnificationModePreferenceControllerTest {
performItemClickWith(MagnificationMode.WINDOW);
reshowPreferenceOnTheScreen();
mDialogHelper.showDialog(MagnificationModePreferenceController.DIALOG_MAGNIFICATION_MODE);
mDialogHelper.showDialog(DialogEnums.DIALOG_MAGNIFICATION_MODE);
assertThat(getCheckedModeFromDialog()).isEqualTo(
MagnificationMode.WINDOW);
@@ -123,7 +127,7 @@ public class MagnificationModePreferenceControllerTest {
DialogInterface.BUTTON_POSITIVE);
verify(mDialogHelper, never()).showDialog(
MagnificationModePreferenceController.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
DialogEnums.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
}
@Test
@@ -135,8 +139,7 @@ public class MagnificationModePreferenceControllerTest {
mController.onMagnificationModeDialogPositiveButtonClicked(mDialogHelper.getDialog(),
DialogInterface.BUTTON_POSITIVE);
verify(mDialogHelper).showDialog(
MagnificationModePreferenceController.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
verify(mDialogHelper).showDialog(DialogEnums.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
}
@Test
@@ -148,20 +151,17 @@ public class MagnificationModePreferenceControllerTest {
mController.onMagnificationModeDialogPositiveButtonClicked(mDialogHelper.getDialog(),
DialogInterface.BUTTON_POSITIVE);
verify(mDialogHelper).showDialog(
MagnificationModePreferenceController.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
verify(mDialogHelper).showDialog(DialogEnums.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
}
@Test
public void onTripleTapWarningDialogNegativeButtonClicked_showModeDialog() {
mDialogHelper.showDialog(
MagnificationModePreferenceController.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
mDialogHelper.showDialog(DialogEnums.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
mController.onMagnificationTripleTapWarningDialogNegativeButtonClicked(
mDialogHelper.getDialog(), DialogInterface.BUTTON_NEGATIVE);
verify(mDialogHelper).showDialog(
MagnificationModePreferenceController.DIALOG_MAGNIFICATION_MODE);
verify(mDialogHelper).showDialog(DialogEnums.DIALOG_MAGNIFICATION_MODE);
}
@Test
@@ -182,8 +182,7 @@ public class MagnificationModePreferenceControllerTest {
@Test
public void checkSpansInTripleTapWarningDialog_existAnnotationSpan() {
mDialogHelper.showDialog(
MagnificationModePreferenceController.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
mDialogHelper.showDialog(DialogEnums.DIALOG_MAGNIFICATION_TRIPLE_TAP_WARNING);
final View contentView = mDialogHelper.getDialog().findViewById(android.R.id.content);
final TextView messageView = contentView.findViewById(R.id.message);
final CharSequence textInTripleTapWarningDialog = messageView.getText();
@@ -256,13 +255,11 @@ public class MagnificationModePreferenceControllerTest {
}
private void showPreferenceOnTheScreen(Bundle savedInstanceState) {
mController.setDialogHelper(mDialogHelper);
mController.onCreate(savedInstanceState);
mController.displayPreference(mScreen);
}
private static class TestDialogHelper implements DialogCreatable,
MagnificationModePreferenceController.DialogHelper {
private static class TestDialogHelper implements DialogCreatable, DialogHelper {
private DialogCreatable mDialogDelegate;
private Dialog mDialog;
@@ -271,11 +268,11 @@ public class MagnificationModePreferenceControllerTest {
mDialog = onCreateDialog(dialogId);
}
@Override
public void setDialogDelegate(DialogCreatable delegate) {
public void setDialogDelegate(@NonNull DialogCreatable delegate) {
mDialogDelegate = delegate;
}
@NonNull
@Override
public Dialog onCreateDialog(int dialogId) {
return mDialogDelegate.onCreateDialog(dialogId);

View File

@@ -64,6 +64,8 @@ import com.android.server.accessibility.Flags;
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
import com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
import com.android.settings.testutils.shadow.ShadowAccessibilityManager;
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
import com.android.settings.testutils.shadow.ShadowStorageManager;
@@ -550,7 +552,8 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
ToggleScreenMagnificationPreferenceFragment fragment = mFragController.create(
R.id.main_content, /* bundle= */ null).start().resume().get();
DialogCreatable dialogDelegate = ReflectionHelpers.getField(fragment, "mDialogDelegate");
DialogCreatable dialogDelegate = ReflectionHelpers.getField(fragment,
"mMagnificationModeDialogDelegate");
List<LifecycleObserver> lifecycleObservers = ReflectionHelpers.getField(
fragment.getSettingsLifecycle(), "mObservers");
assertThat(dialogDelegate).isInstanceOf(MagnificationModePreferenceController.class);
@@ -592,19 +595,19 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
}
@Test
public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
public void onCreateDialog_setMagnificationModeDialogDelegate_invokeDialogDelegate() {
ToggleScreenMagnificationPreferenceFragment fragment =
mFragController.create(
R.id.main_content, /* bundle= */ null).start().resume().get();
final DialogCreatable dialogDelegate = mock(DialogCreatable.class, RETURNS_DEEP_STUBS);
when(dialogDelegate.getDialogMetricsCategory(anyInt())).thenReturn(1);
fragment.setDialogDelegate(dialogDelegate);
final int dialogId = DialogEnums.DIALOG_MAGNIFICATION_MODE;
when(dialogDelegate.getDialogMetricsCategory(anyInt())).thenReturn(dialogId);
fragment.setMagnificationModeDialogDelegate(dialogDelegate);
fragment.onCreateDialog(1);
fragment.getDialogMetricsCategory(1);
verify(dialogDelegate).onCreateDialog(1);
verify(dialogDelegate).getDialogMetricsCategory(1);
fragment.onCreateDialog(dialogId);
fragment.getDialogMetricsCategory(dialogId);
verify(dialogDelegate).onCreateDialog(dialogId);
verify(dialogDelegate).getDialogMetricsCategory(dialogId);
}
@Test