Merge "Add summary for autoclick cursor size row" into main

This commit is contained in:
Yuhan Yang
2025-02-07 14:13:50 -08:00
committed by Android (Google) Code Review
2 changed files with 38 additions and 0 deletions

View File

@@ -35,6 +35,7 @@ import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.server.accessibility.Flags;
import com.android.settings.R;
@@ -59,6 +60,7 @@ public class ToggleAutoclickCursorAreaSizeController extends BasePreferenceContr
private final ContentResolver mContentResolver;
private final SharedPreferences mSharedPreferences;
private Preference mPreference;
protected AlertDialog mAlertDialog;
public ToggleAutoclickCursorAreaSizeController(@NonNull Context context,
@@ -83,6 +85,13 @@ public class ToggleAutoclickCursorAreaSizeController extends BasePreferenceContr
}
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey());
}
protected void constructDialog(Context context) {
mAlertDialog = new AlertDialog.Builder(context)
.setView(R.layout.dialog_autoclick_cursor_area_size)
@@ -139,12 +148,32 @@ public class ToggleAutoclickCursorAreaSizeController extends BasePreferenceContr
// TODO(b/383901288): Update slider if interested preference has changed.
}
@Override
public CharSequence getSummary() {
int autoclickCursorSize = validateSize(Settings.Secure.getInt(mContentResolver,
Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE,
AccessibilityManager.AUTOCLICK_CURSOR_AREA_SIZE_DEFAULT));
int summaryStringId;
switch (autoclickCursorSize) {
case 100 -> summaryStringId =
R.string.autoclick_cursor_area_size_dialog_option_extra_large;
case 80 -> summaryStringId = R.string.autoclick_cursor_area_size_dialog_option_large;
case 40 -> summaryStringId = R.string.autoclick_cursor_area_size_dialog_option_small;
case 20 -> summaryStringId =
R.string.autoclick_cursor_area_size_dialog_option_extra_small;
default -> summaryStringId = R.string.autoclick_cursor_area_size_dialog_option_default;
}
return mContext.getString(summaryStringId);
}
/** Updates autoclick cursor area size. */
public void updateAutoclickCursorAreaSize(int size) {
Settings.Secure.putInt(
mContentResolver,
Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE,
validateSize(size));
refreshSummary(mPreference);
}
private int validateSize(int size) {

View File

@@ -80,6 +80,15 @@ public class ToggleAutoclickCursorAreaSizeControllerTest {
.isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
public void getSummary() {
mController.updateAutoclickCursorAreaSize(
mController.RADIO_BUTTON_ID_TO_CURSOR_SIZE.get(
R.id.autoclick_cursor_area_size_value_large));
assertThat(mController.getSummary()).isEqualTo(
mContext.getString(R.string.autoclick_cursor_area_size_dialog_option_large));
}
@Test
@DisableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
public void getAvailabilityStatus_conditionallyUnavailableWhenFlagOn() {