a11y: Hook ignore minor cursor movement setting to its controller

Change-Id: I2c0ac1c36cc600f551d2a89ab3ec6d1405ac58d9
Test: ToggleAutoclickIgnoreMinorCursorMovementControllerTest
Bug: b/388845718
Flag: com.android.server.accessibility.enable_autoclick_indicator
This commit is contained in:
Wenyu Zhang
2025-01-16 13:11:46 +00:00
parent 9c1447536a
commit 4de40b3959
2 changed files with 48 additions and 3 deletions

View File

@@ -16,7 +16,14 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import static android.view.accessibility.AccessibilityManager.AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT_DEFAULT;
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -29,9 +36,13 @@ public class ToggleAutoclickIgnoreMinorCursorMovementController extends TogglePr
private static final String TAG = private static final String TAG =
ToggleAutoclickIgnoreMinorCursorMovementController.class.getSimpleName(); ToggleAutoclickIgnoreMinorCursorMovementController.class.getSimpleName();
private final ContentResolver mContentResolver;
public ToggleAutoclickIgnoreMinorCursorMovementController( public ToggleAutoclickIgnoreMinorCursorMovementController(
@NonNull Context context, @NonNull String key) { @NonNull Context context, @NonNull String key) {
super(context, key); super(context, key);
mContentResolver = context.getContentResolver();
} }
@Override @Override
@@ -41,13 +52,19 @@ public class ToggleAutoclickIgnoreMinorCursorMovementController extends TogglePr
@Override @Override
public boolean isChecked() { public boolean isChecked() {
// TODO(b/388845718): retrieve check status from settings. return Settings.Secure.getInt(
return false; mContentResolver,
Settings.Secure.ACCESSIBILITY_AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT,
AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT_DEFAULT ? ON : OFF)
== ON;
} }
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
// TODO(b/388845718): Update settings. Settings.Secure.putInt(
mContentResolver,
Settings.Secure.ACCESSIBILITY_AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT,
isChecked ? ON : OFF);
return true; return true;
} }

View File

@@ -16,12 +16,17 @@
package com.android.settings.accessibility; package com.android.settings.accessibility;
import static android.view.accessibility.AccessibilityManager.AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT_DEFAULT;
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.content.Context; import android.content.Context;
import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags; import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule; import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
@@ -66,4 +71,27 @@ public class ToggleAutoclickIgnoreMinorCursorMovementControllerTest {
assertThat(mController.getAvailabilityStatus()) assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE); .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
} }
@Test
public void isChecked_matchesSetting() {
assertThat(mController.isChecked()).isEqualTo(readSetting() == ON);
}
@Test
public void setChecked_true_updatesSetting() {
mController.setChecked(true);
assertThat(readSetting()).isEqualTo(ON);
}
@Test
public void setChecked_false_updatesSetting() {
mController.setChecked(false);
assertThat(readSetting()).isEqualTo(OFF);
}
private int readSetting() {
return Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT,
AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT_DEFAULT ? ON : OFF);
}
} }