Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92754dec authored by Yuhan Yang's avatar Yuhan Yang Committed by Android (Google) Code Review
Browse files

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

parents b968400c c3f467dd
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -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) {
+9 −0
Original line number Diff line number Diff line
@@ -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() {