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;