diff --git a/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeController.java b/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeController.java index 07ac4cfb97c..c9f358132d4 100644 --- a/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeController.java +++ b/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeController.java @@ -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) { diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeControllerTest.java index 9fc16f00298..675070f3b56 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickCursorAreaSizeControllerTest.java @@ -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() {