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

Commit 03e7eacc authored by Shaowei Shen's avatar Shaowei Shen Committed by Android (Google) Code Review
Browse files

Merge "[Touchpad & Mouse] Update title based on conditions" into main

parents a1abfdca 3ec15679
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -4607,6 +4607,8 @@
    <string name="trackpad_settings">Touchpad</string>
    <!-- Title for the button to trigger the 'trackpad settings' page if connect with a touchpad and a mouse. [CHAR LIMIT=35] -->
    <string name="trackpad_mouse_settings">Touchpad &amp; mouse</string>
    <!-- Title for the button to trigger the 'mouse settings' page if connect with a mouse. [CHAR LIMIT=35] -->
    <string name="mouse_settings">Mouse</string>
    <!-- Summary text for the 'trackpad settings' page. [CHAR LIMIT=100] -->
    <string name="trackpad_settings_summary">Pointer speed, gestures</string>
+14 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
import android.view.inputmethod.InputMethodSubtype;

import androidx.annotation.StringRes;

import com.android.settings.R;

import java.util.Arrays;
@@ -80,6 +82,18 @@ public class NewKeyboardSettingsUtils {
        return false;
    }

    static @StringRes int getTouchpadAndMouseTitleTitleResId() {
        boolean isMouse = isMouse();
        boolean isTouchpad = isTouchpad();
        if (isMouse && isTouchpad) {
            return R.string.trackpad_mouse_settings;
        } else if (isMouse) {
            return R.string.mouse_settings;
        } else {
            return R.string.trackpad_settings;
        }
    }

    @SuppressLint("MissingPermission")
    @Nullable
    static String getSelectedKeyboardLayoutLabelForUser(Context context, @UserIdInt int userId,
+11 −1
Original line number Diff line number Diff line
@@ -18,8 +18,11 @@ package com.android.settings.inputmethod;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
import android.util.FeatureFlagUtils;

import androidx.annotation.NonNull;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -31,11 +34,18 @@ public class TrackpadSettings extends DashboardFragment {
    private static final String TAG = "TrackpadSettings";

    @Override
    public void onAttach(Context context) {
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        use(TouchGesturesButtonPreferenceController.class).setFragment(this /*parent*/);
    }

    @Override
    public void onCreate(@NonNull Bundle icicle) {
        super.onCreate(icicle);
        getPreferenceScreen().setTitle(
                NewKeyboardSettingsUtils.getTouchpadAndMouseTitleTitleResId());
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.SETTINGS_KEYBOARDS_TOUCHPAD;
+1 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ public class TrackpadSettingsController extends BasePreferenceController
            return;
        }
        mPreference.setVisible(isAvailable());
        mPreference.setTitle(NewKeyboardSettingsUtils.getTouchpadAndMouseTitleTitleResId());
    }

    @Override
+18 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import static org.junit.Assume.assumeTrue;
import android.content.Context;
import android.view.InputDevice;

import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.core.BasePreferenceController;
@@ -53,14 +54,31 @@ public class TrackpadSettingsControllerTest {

    private Context mContext;
    private TrackpadSettingsController mController;
    private Preference mPreference;

    @Before
    public void setUp() {
        mContext = ApplicationProvider.getApplicationContext();
        mController = new TrackpadSettingsController(mContext, PREFERENCE_KEY);
        mPreference = new Preference(mContext);
        ShadowInputDevice.reset();
    }

    @Test
    public void updateState_setTitleBasedOnDeviceSource() {
        int deviceId = 1;
        ShadowInputDevice.sDeviceIds = new int[]{deviceId};
        InputDevice device = ShadowInputDevice.makeInputDevicebyIdWithSources(deviceId,
                InputDevice.SOURCE_TOUCHPAD);
        ShadowInputDevice.addDevice(deviceId, device);
        String expectedTitle = mContext.getString(
                NewKeyboardSettingsUtils.getTouchpadAndMouseTitleTitleResId());

        mController.updateState(mPreference);

        assertThat(mPreference.getTitle()).isEqualTo(expectedTitle);
    }

    @Test
    public void getAvailabilityStatus_isTouchpadAvailable() {
        int deviceId = 1;