diff --git a/res/values/strings.xml b/res/values/strings.xml index 208073d05fb..459ff7a4a4b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4607,6 +4607,8 @@ Touchpad Touchpad & mouse + + Mouse Pointer speed, gestures diff --git a/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java b/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java index f7a9aca54d6..587370b19a2 100644 --- a/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java +++ b/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java @@ -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, diff --git a/src/com/android/settings/inputmethod/TrackpadSettings.java b/src/com/android/settings/inputmethod/TrackpadSettings.java index dca418a154d..0f9e9cf64a5 100644 --- a/src/com/android/settings/inputmethod/TrackpadSettings.java +++ b/src/com/android/settings/inputmethod/TrackpadSettings.java @@ -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; diff --git a/src/com/android/settings/inputmethod/TrackpadSettingsController.java b/src/com/android/settings/inputmethod/TrackpadSettingsController.java index d88b282a065..9a549ead4f2 100644 --- a/src/com/android/settings/inputmethod/TrackpadSettingsController.java +++ b/src/com/android/settings/inputmethod/TrackpadSettingsController.java @@ -77,6 +77,7 @@ public class TrackpadSettingsController extends BasePreferenceController return; } mPreference.setVisible(isAvailable()); + mPreference.setTitle(NewKeyboardSettingsUtils.getTouchpadAndMouseTitleTitleResId()); } @Override diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadSettingsControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSettingsControllerTest.java index bb97d716ead..5308d1f8f78 100644 --- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadSettingsControllerTest.java +++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSettingsControllerTest.java @@ -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;