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

Commit f47182fe authored by Michael Checo's avatar Michael Checo
Browse files

Add preference toggle for touchpad acceleration setting

Bug: 387184135
Test: verified on DUT
Flag: com.android.hardware.input.pointer_acceleration
Change-Id: Ic49af4676eaeca6135296fa825d28c8a52af7dc2
parent fbf2a461
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4745,6 +4745,10 @@
    <string name="trackpad_pointer_speed">Cursor speed</string>
    <!-- Title text for 'Three finger tap' touchpad preference. This preference allows the user to select an action that will trigger when they tap three fingers on a touchpad. [CHAR LIMIT=60] -->
    <string name="three_finger_tap_preference_title">Customise 3-finger tap</string>
    <!-- Title for the 'Touchpad acceleration' preference switch, which dynamically adjusts cursor movement based on speed. [CHAR LIMIT=60] -->
    <string name="touchpad_acceleration_title">Touchpad acceleration</string>
    <!-- Summary text for the 'Touchpad acceleration' preference switch indicating to users that when this switch is enabled, faster movements with your fingers will move the cursor farther. [CHAR LIMIT=NONE] -->
    <string name="touchpad_acceleration_summary">Faster movements on your touchpad will move the cursor farther</string>
    <!-- Title text for mouse pointer color. [CHAR LIMIT=35] -->
    <string name="pointer_fill_style">Pointer color</string>
    <!-- Content description for black pointer fill style. [CHAR LIMIT=60] -->
+7 −0
Original line number Diff line number Diff line
@@ -54,6 +54,13 @@
        settings:controller="com.android.settings.inputmethod.TouchpadThreeFingerTapPreferenceController"
        android:order="37"/>

    <SwitchPreferenceCompat
        android:key="touchpad_acceleration"
        android:title="@string/touchpad_acceleration_title"
        android:summary="@string/touchpad_acceleration_summary"
        settings:controller="com.android.settings.inputmethod.TouchpadAccelerationPreferenceController"
        android:order="38"/>

    <com.android.settings.widget.SeekBarPreference
        android:key="trackpad_pointer_speed"
        android:title="@string/trackpad_pointer_speed"
+56 −0
Original line number Diff line number Diff line
/*
 * Copyright 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.inputmethod;

import android.content.Context;
import android.hardware.input.InputSettings;

import androidx.annotation.NonNull;

import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;

public class TouchpadAccelerationPreferenceController extends TogglePreferenceController {

    public TouchpadAccelerationPreferenceController(@NonNull Context context, @NonNull String key) {
        super(context, key);
    }

    @Override
    public boolean isChecked() {
        return InputSettings.isTouchpadAccelerationEnabled(mContext);
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        InputSettings.setTouchpadAccelerationEnabled(mContext, isChecked);
        return true;
    }

    @Override
    public int getAvailabilityStatus() {
        if (!InputSettings.isPointerAccelerationFeatureFlagEnabled()) {
            return UNSUPPORTED_ON_DEVICE;
        }
        return InputPeripheralsSettingsUtils.isTouchpad() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
    }

    @Override
    public int getSliceHighlightMenuRes() {
        return R.string.menu_key_system;
    }
}