[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>
|
<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] -->
|
<!-- 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>
|
<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] -->
|
<!-- Summary text for the 'trackpad settings' page. [CHAR LIMIT=100] -->
|
||||||
<string name="trackpad_settings_summary">Pointer speed, gestures</string>
|
<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.InputMethodManager;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -80,6 +82,18 @@ public class NewKeyboardSettingsUtils {
|
|||||||
return false;
|
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")
|
@SuppressLint("MissingPermission")
|
||||||
@Nullable
|
@Nullable
|
||||||
static String getSelectedKeyboardLayoutLabelForUser(Context context, @UserIdInt int userId,
|
static String getSelectedKeyboardLayoutLabelForUser(Context context, @UserIdInt int userId,
|
||||||
|
@@ -18,8 +18,11 @@ package com.android.settings.inputmethod;
|
|||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.util.FeatureFlagUtils;
|
import android.util.FeatureFlagUtils;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
@@ -31,11 +34,18 @@ public class TrackpadSettings extends DashboardFragment {
|
|||||||
private static final String TAG = "TrackpadSettings";
|
private static final String TAG = "TrackpadSettings";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(@NonNull Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
use(TouchGesturesButtonPreferenceController.class).setFragment(this /*parent*/);
|
use(TouchGesturesButtonPreferenceController.class).setFragment(this /*parent*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(@NonNull Bundle icicle) {
|
||||||
|
super.onCreate(icicle);
|
||||||
|
getPreferenceScreen().setTitle(
|
||||||
|
NewKeyboardSettingsUtils.getTouchpadAndMouseTitleTitleResId());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.SETTINGS_KEYBOARDS_TOUCHPAD;
|
return SettingsEnums.SETTINGS_KEYBOARDS_TOUCHPAD;
|
||||||
|
@@ -77,6 +77,7 @@ public class TrackpadSettingsController extends BasePreferenceController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mPreference.setVisible(isAvailable());
|
mPreference.setVisible(isAvailable());
|
||||||
|
mPreference.setTitle(NewKeyboardSettingsUtils.getTouchpadAndMouseTitleTitleResId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -25,6 +25,7 @@ import static org.junit.Assume.assumeTrue;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.view.InputDevice;
|
import android.view.InputDevice;
|
||||||
|
|
||||||
|
import androidx.preference.Preference;
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
@@ -53,14 +54,31 @@ public class TrackpadSettingsControllerTest {
|
|||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private TrackpadSettingsController mController;
|
private TrackpadSettingsController mController;
|
||||||
|
private Preference mPreference;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mContext = ApplicationProvider.getApplicationContext();
|
mContext = ApplicationProvider.getApplicationContext();
|
||||||
mController = new TrackpadSettingsController(mContext, PREFERENCE_KEY);
|
mController = new TrackpadSettingsController(mContext, PREFERENCE_KEY);
|
||||||
|
mPreference = new Preference(mContext);
|
||||||
ShadowInputDevice.reset();
|
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
|
@Test
|
||||||
public void getAvailabilityStatus_isTouchpadAvailable() {
|
public void getAvailabilityStatus_isTouchpadAvailable() {
|
||||||
int deviceId = 1;
|
int deviceId = 1;
|
||||||
|
Reference in New Issue
Block a user