[Touchpad & Mouse] Update title based on conditions
Update preference and page title based on device condition. Bug: 364536531 Flag: NONE, bug fix for string title. Test: verify on device Change-Id: Id5b01680314c45f1b86661c60f9e7acedca8b6eb
This commit is contained in:
committed by
Shaowei Shen
parent
1c57667439
commit
3ec1567922
@@ -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 & 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>
|
||||
|
||||
|
@@ -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,
|
||||
|
@@ -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;
|
||||
|
@@ -77,6 +77,7 @@ public class TrackpadSettingsController extends BasePreferenceController
|
||||
return;
|
||||
}
|
||||
mPreference.setVisible(isAvailable());
|
||||
mPreference.setTitle(NewKeyboardSettingsUtils.getTouchpadAndMouseTitleTitleResId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user