Revert "[PK settings] Remove metrics."

1. This reverts commit bdf89255a0.
2. Modify ACTION_USE_SPECIFIC_KEYBOARD to log vendor and product id.

Reason for revert: <Add metrics>
Test: atest

Change-Id: I187b990eec7dd0c0009f6c695f595d95420cb4ab
This commit is contained in:
Daniel Huang
2023-11-01 11:50:26 +00:00
committed by danielwbhuang
parent 7b6440649e
commit 6b9d8c530f
25 changed files with 347 additions and 4 deletions

View File

@@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.hardware.input.InputManager; import android.hardware.input.InputManager;
@@ -47,6 +48,7 @@ import androidx.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.Utils; import com.android.settingslib.Utils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -68,6 +70,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
private TextView mLeftBracket; private TextView mLeftBracket;
private TextView mRightBracket; private TextView mRightBracket;
private ImageView mActionKeyIcon; private ImageView mActionKeyIcon;
private MetricsFeatureProvider mMetricsFeatureProvider;
private List<int[]> mRemappableKeyList = private List<int[]> mRemappableKeyList =
new ArrayList<>(Arrays.asList( new ArrayList<>(Arrays.asList(
@@ -92,6 +95,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
mActivity = getActivity(); mActivity = getActivity();
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory(); FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider(); mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
InputManager inputManager = mActivity.getSystemService(InputManager.class); InputManager inputManager = mActivity.getSystemService(InputManager.class);
mKeyDefaultName = getArguments().getString(DEFAULT_KEY); mKeyDefaultName = getArguments().getString(DEFAULT_KEY);
@@ -139,6 +143,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
doneButton.setOnClickListener(v -> { doneButton.setOnClickListener(v -> {
String selectedItem = modifierKeys.get(adapter.getCurrentItem()); String selectedItem = modifierKeys.get(adapter.getCurrentItem());
Spannable itemSummary; Spannable itemSummary;
logMetricsForRemapping(selectedItem);
if (selectedItem.equals(mKeyDefaultName)) { if (selectedItem.equals(mKeyDefaultName)) {
itemSummary = new SpannableString( itemSummary = new SpannableString(
mActivity.getString(R.string.modifier_keys_default_summary)); mActivity.getString(R.string.modifier_keys_default_summary));
@@ -189,6 +194,28 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
return modifierKeyDialog; return modifierKeyDialog;
} }
private void logMetricsForRemapping(String selectedItem) {
if (mKeyDefaultName.equals("Caps lock")) {
mMetricsFeatureProvider.action(
mActivity, SettingsEnums.ACTION_FROM_CAPS_LOCK_TO, selectedItem);
}
if (mKeyDefaultName.equals("Ctrl")) {
mMetricsFeatureProvider.action(
mActivity, SettingsEnums.ACTION_FROM_CTRL_TO, selectedItem);
}
if (mKeyDefaultName.equals("Action key")) {
mMetricsFeatureProvider.action(
mActivity, SettingsEnums.ACTION_FROM_ACTION_KEY_TO, selectedItem);
}
if (mKeyDefaultName.equals("Alt")) {
mMetricsFeatureProvider.action(
mActivity, SettingsEnums.ACTION_FROM_ALT_TO, selectedItem);
}
}
private void setInitialFocusItem( private void setInitialFocusItem(
List<String> modifierKeys, ModifierKeyAdapter adapter) { List<String> modifierKeys, ModifierKeyAdapter adapter) {
if (modifierKeys.indexOf(mKeyFocus) == -1) { if (modifierKeys.indexOf(mKeyFocus) == -1) {

View File

@@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.hardware.input.InputManager; import android.hardware.input.InputManager;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -31,6 +32,8 @@ import android.widget.Button;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class ModifierKeysResetDialogFragment extends DialogFragment { public class ModifierKeysResetDialogFragment extends DialogFragment {
@@ -39,6 +42,8 @@ public class ModifierKeysResetDialogFragment extends DialogFragment {
private static final String MODIFIER_KEYS_META = "modifier_keys_meta"; private static final String MODIFIER_KEYS_META = "modifier_keys_meta";
private static final String MODIFIER_KEYS_ALT = "modifier_keys_alt"; private static final String MODIFIER_KEYS_ALT = "modifier_keys_alt";
private MetricsFeatureProvider mMetricsFeatureProvider;
private String[] mKeys = { private String[] mKeys = {
MODIFIER_KEYS_CAPS_LOCK, MODIFIER_KEYS_CAPS_LOCK,
MODIFIER_KEYS_CTRL, MODIFIER_KEYS_CTRL,
@@ -52,6 +57,7 @@ public class ModifierKeysResetDialogFragment extends DialogFragment {
super.onCreateDialog(savedInstanceState); super.onCreateDialog(savedInstanceState);
Activity activity = getActivity(); Activity activity = getActivity();
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
InputManager inputManager = activity.getSystemService(InputManager.class); InputManager inputManager = activity.getSystemService(InputManager.class);
View dialoglayout = View dialoglayout =
LayoutInflater.from(activity).inflate(R.layout.modifier_key_reset_dialog, null); LayoutInflater.from(activity).inflate(R.layout.modifier_key_reset_dialog, null);
@@ -61,6 +67,7 @@ public class ModifierKeysResetDialogFragment extends DialogFragment {
Button restoreButton = dialoglayout.findViewById(R.id.modifier_key_reset_restore_button); Button restoreButton = dialoglayout.findViewById(R.id.modifier_key_reset_restore_button);
restoreButton.setOnClickListener(v -> { restoreButton.setOnClickListener(v -> {
mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_CLEAR_REMAPPINGS);
inputManager.clearAllModifierKeyRemappings(); inputManager.clearAllModifierKeyRemappings();
dismiss(); dismiss();
activity.recreate(); activity.recreate();

View File

@@ -16,6 +16,7 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager; import android.hardware.input.InputManager;
@@ -30,7 +31,9 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.TickButtonPreference; import com.android.settings.widget.TickButtonPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -53,13 +56,16 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController
private KeyboardLayout[] mKeyboardLayouts; private KeyboardLayout[] mKeyboardLayouts;
private PreferenceScreen mScreen; private PreferenceScreen mScreen;
private String mPreviousSelection; private String mPreviousSelection;
private String mFinalSelectedLayout;
private String mLayout; private String mLayout;
private MetricsFeatureProvider mMetricsFeatureProvider;
public NewKeyboardLayoutPickerController(Context context, String key) { public NewKeyboardLayoutPickerController(Context context, String key) {
super(context, key); super(context, key);
mIm = context.getSystemService(InputManager.class); mIm = context.getSystemService(InputManager.class);
mInputDeviceId = -1; mInputDeviceId = -1;
mPreferenceMap = new HashMap<>(); mPreferenceMap = new HashMap<>();
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
public void initialize(Fragment parent) { public void initialize(Fragment parent) {
@@ -74,6 +80,7 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController
mInputMethodSubtype = mInputMethodSubtype =
arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_SUBTYPE); arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_SUBTYPE);
mLayout = getSelectedLayoutLabel(); mLayout = getSelectedLayoutLabel();
mFinalSelectedLayout = mLayout;
mKeyboardLayouts = mIm.getKeyboardLayoutListForInputDevice( mKeyboardLayouts = mIm.getKeyboardLayoutListForInputDevice(
mInputDeviceIdentifier, mUserId, mInputMethodInfo, mInputMethodSubtype); mInputDeviceIdentifier, mUserId, mInputMethodInfo, mInputMethodSubtype);
parent.getActivity().setTitle(mTitle); parent.getActivity().setTitle(mTitle);
@@ -92,6 +99,11 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController
@Override @Override
public void onStop() { public void onStop() {
if (!mLayout.equals(mFinalSelectedLayout)) {
String change = "From:" + mLayout + ", to:" + mFinalSelectedLayout;
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_PK_LAYOUT_CHANGED, change);
}
mIm.unregisterInputDeviceListener(this); mIm.unregisterInputDeviceListener(this);
mInputDeviceId = -1; mInputDeviceId = -1;
} }
@@ -122,6 +134,7 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController
} }
setLayout(pref); setLayout(pref);
mPreviousSelection = preference.getKey(); mPreviousSelection = preference.getKey();
mFinalSelectedLayout = pref.getTitle().toString();
return true; return true;
} }

View File

@@ -108,6 +108,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
SHOW_VIRTUAL_KEYBOARD_SWITCH)); SHOW_VIRTUAL_KEYBOARD_SWITCH));
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory(); FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider(); mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate(); mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate();
if (mSupportsFirmwareUpdate) { if (mSupportsFirmwareUpdate) {
@@ -124,6 +125,10 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER); KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER);
int intentFromWhere = int intentFromWhere =
activity.getIntent().getIntExtra(android.provider.Settings.EXTRA_ENTRYPOINT, -1); activity.getIntent().getIntExtra(android.provider.Settings.EXTRA_ENTRYPOINT, -1);
if (intentFromWhere != -1) {
mMetricsFeatureProvider.action(
getContext(), SettingsEnums.ACTION_OPEN_PK_SETTINGS_FROM, intentFromWhere);
}
if (inputDeviceIdentifier != null) { if (inputDeviceIdentifier != null) {
mAutoInputDeviceIdentifier = inputDeviceIdentifier; mAutoInputDeviceIdentifier = inputDeviceIdentifier;
} }
@@ -254,6 +259,16 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
}); });
} }
category.addPreference(pref); category.addPreference(pref);
StringBuilder vendorAndProductId = new StringBuilder();
String vendorId = String.valueOf(hardKeyboardDeviceInfo.mVendorId);
String productId = String.valueOf(hardKeyboardDeviceInfo.mProductId);
vendorAndProductId.append(vendorId);
vendorAndProductId.append("-");
vendorAndProductId.append(productId);
mMetricsFeatureProvider.action(
getContext(),
SettingsEnums.ACTION_USE_SPECIFIC_KEYBOARD,
vendorAndProductId.toString());
} }
mKeyboardAssistanceCategory.setOrder(1); mKeyboardAssistanceCategory.setOrder(1);
preferenceScreen.addPreference(mKeyboardAssistanceCategory); preferenceScreen.addPreference(mKeyboardAssistanceCategory);
@@ -374,7 +389,9 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
device.getName(), device.getName(),
device.getIdentifier(), device.getIdentifier(),
getLayoutLabel(device, context, im), getLayoutLabel(device, context, im),
device.getBluetoothAddress())); device.getBluetoothAddress(),
device.getVendorId(),
device.getProductId()));
} }
// We intentionally don't reuse Comparator because Collator may not be thread-safe. // We intentionally don't reuse Comparator because Collator may not be thread-safe.
@@ -403,16 +420,24 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
public final String mLayoutLabel; public final String mLayoutLabel;
@Nullable @Nullable
public final String mBluetoothAddress; public final String mBluetoothAddress;
@NonNull
public final int mVendorId;
@NonNull
public final int mProductId;
public HardKeyboardDeviceInfo( public HardKeyboardDeviceInfo(
@Nullable String deviceName, @Nullable String deviceName,
@NonNull InputDeviceIdentifier deviceIdentifier, @NonNull InputDeviceIdentifier deviceIdentifier,
@NonNull String layoutLabel, @NonNull String layoutLabel,
@Nullable String bluetoothAddress) { @Nullable String bluetoothAddress,
@NonNull int vendorId,
@NonNull int productId) {
mDeviceName = TextUtils.emptyIfNull(deviceName); mDeviceName = TextUtils.emptyIfNull(deviceName);
mDeviceIdentifier = deviceIdentifier; mDeviceIdentifier = deviceIdentifier;
mLayoutLabel = layoutLabel; mLayoutLabel = layoutLabel;
mBluetoothAddress = bluetoothAddress; mBluetoothAddress = bluetoothAddress;
mVendorId = vendorId;
mProductId = productId;
} }
@Override @Override

View File

@@ -16,6 +16,7 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
@@ -23,6 +24,8 @@ import androidx.fragment.app.Fragment;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.ButtonPreference; import com.android.settingslib.widget.ButtonPreference;
public class TouchGesturesButtonPreferenceController extends BasePreferenceController { public class TouchGesturesButtonPreferenceController extends BasePreferenceController {
@@ -33,9 +36,11 @@ public class TouchGesturesButtonPreferenceController extends BasePreferenceContr
private static final String GESTURE_DIALOG_TAG = "GESTURE_DIALOG_TAG"; private static final String GESTURE_DIALOG_TAG = "GESTURE_DIALOG_TAG";
private Fragment mParent; private Fragment mParent;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TouchGesturesButtonPreferenceController(Context context, String key) { public TouchGesturesButtonPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
public void setFragment(Fragment parent) { public void setFragment(Fragment parent) {
@@ -67,6 +72,7 @@ public class TouchGesturesButtonPreferenceController extends BasePreferenceContr
} }
private void showTouchpadGestureEducation() { private void showTouchpadGestureEducation() {
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LEARN_TOUCHPAD_GESTURE_CLICK);
TrackpadGestureDialogFragment fragment = new TrackpadGestureDialogFragment(); TrackpadGestureDialogFragment fragment = new TrackpadGestureDialogFragment();
fragment.setTargetFragment(mParent, 0); fragment.setTargetFragment(mParent, 0);
fragment.show(mParent.getActivity().getSupportFragmentManager(), GESTURE_DIALOG_TAG); fragment.show(mParent.getActivity().getSupportFragmentManager(), GESTURE_DIALOG_TAG);

View File

@@ -16,16 +16,22 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadBottomPreferenceController extends TogglePreferenceController { public class TrackpadBottomPreferenceController extends TogglePreferenceController {
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadBottomPreferenceController(Context context, String key) { public TrackpadBottomPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -36,6 +42,8 @@ public class TrackpadBottomPreferenceController extends TogglePreferenceControll
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
InputSettings.setTouchpadRightClickZone(mContext, isChecked); InputSettings.setTouchpadRightClickZone(mContext, isChecked);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -16,18 +16,24 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadGoBackPreferenceController extends TogglePreferenceController { public class TrackpadGoBackPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadGoBackPreferenceController(Context context, String key) { public TrackpadGoBackPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -38,6 +44,8 @@ public class TrackpadGoBackPreferenceController extends TogglePreferenceControll
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0); Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -16,18 +16,24 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadGoHomePreferenceController extends TogglePreferenceController { public class TrackpadGoHomePreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadGoHomePreferenceController(Context context, String key) { public TrackpadGoHomePreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -38,6 +44,8 @@ public class TrackpadGoHomePreferenceController extends TogglePreferenceControll
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0); Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -16,18 +16,24 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadNotificationsPreferenceController extends TogglePreferenceController { public class TrackpadNotificationsPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadNotificationsPreferenceController(Context context, String key) { public TrackpadNotificationsPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -38,6 +44,8 @@ public class TrackpadNotificationsPreferenceController extends TogglePreferenceC
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0); Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -16,20 +16,25 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.core.SliderPreferenceController; import com.android.settings.core.SliderPreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.SeekBarPreference; import com.android.settings.widget.SeekBarPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadPointerSpeedPreferenceController extends SliderPreferenceController { public class TrackpadPointerSpeedPreferenceController extends SliderPreferenceController {
private SeekBarPreference mPreference; private SeekBarPreference mPreference;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadPointerSpeedPreferenceController(Context context, String key) { public TrackpadPointerSpeedPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -53,6 +58,8 @@ public class TrackpadPointerSpeedPreferenceController extends SliderPreferenceCo
return false; return false;
} }
InputSettings.setTouchpadPointerSpeed(mContext, position); InputSettings.setTouchpadPointerSpeed(mContext, position);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_POINTER_SPEED_CHANGED, position);
return true; return true;
} }

View File

@@ -16,18 +16,24 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadRecentAppsPreferenceController extends TogglePreferenceController { public class TrackpadRecentAppsPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadRecentAppsPreferenceController(Context context, String key) { public TrackpadRecentAppsPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -38,6 +44,8 @@ public class TrackpadRecentAppsPreferenceController extends TogglePreferenceCont
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0); Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -16,16 +16,22 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadReverseScrollingPreferenceController extends TogglePreferenceController { public class TrackpadReverseScrollingPreferenceController extends TogglePreferenceController {
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadReverseScrollingPreferenceController(Context context, String key) { public TrackpadReverseScrollingPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -36,6 +42,8 @@ public class TrackpadReverseScrollingPreferenceController extends TogglePreferen
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
InputSettings.setTouchpadNaturalScrolling(mContext, !isChecked); InputSettings.setTouchpadNaturalScrolling(mContext, !isChecked);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -16,18 +16,24 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadSwitchAppsPreferenceController extends TogglePreferenceController { public class TrackpadSwitchAppsPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadSwitchAppsPreferenceController(Context context, String key) { public TrackpadSwitchAppsPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -38,6 +44,8 @@ public class TrackpadSwitchAppsPreferenceController extends TogglePreferenceCont
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0); Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -16,16 +16,22 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadTapToClickPreferenceController extends TogglePreferenceController { public class TrackpadTapToClickPreferenceController extends TogglePreferenceController {
private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadTapToClickPreferenceController(Context context, String key) { public TrackpadTapToClickPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -36,6 +42,8 @@ public class TrackpadTapToClickPreferenceController extends TogglePreferenceCont
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
InputSettings.setTouchpadTapToClick(mContext, isChecked); InputSettings.setTouchpadTapToClick(mContext, isChecked);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED, isChecked);
return true; return true;
} }

View File

@@ -56,6 +56,9 @@ import java.util.List;
}) })
public class KeyboardSettingsPreferenceControllerTest { public class KeyboardSettingsPreferenceControllerTest {
private static final int VENDOR_ID = 123;
private static final int PRODUCT_ID = 456;
@Rule @Rule
public MockitoRule mMockitoRule = MockitoJUnit.rule(); public MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -88,7 +91,9 @@ public class KeyboardSettingsPreferenceControllerTest {
"TEST_DEVICE", "TEST_DEVICE",
mInputDeviceIdentifier, mInputDeviceIdentifier,
"TEST_DEVICE_LABEL", "TEST_DEVICE_LABEL",
address); address,
VENDOR_ID,
PRODUCT_ID);
List<HardKeyboardDeviceInfo> keyboards = new ArrayList<>(); List<HardKeyboardDeviceInfo> keyboards = new ArrayList<>();
keyboards.add(deviceInfo); keyboards.add(deviceInfo);
when(mController.getHardKeyboardList()).thenReturn(keyboards); when(mController.getHardKeyboardList()).thenReturn(keyboards);

View File

@@ -52,6 +52,8 @@ public class PhysicalKeyboardPreferenceControllerTest {
private static final String DEVICE_NAME = "deviceName"; private static final String DEVICE_NAME = "deviceName";
private static final String LAYOUT_LABEL = "deviceLayutLabel"; private static final String LAYOUT_LABEL = "deviceLayutLabel";
private static final String BLUETOOTHADDRESS = "deviceBluetoothAddress"; private static final String BLUETOOTHADDRESS = "deviceBluetoothAddress";
private static final int VENDOR_ID = 123;
private static final int PRODUCT_ID = 456;
@Mock @Mock
private Context mContext; private Context mContext;
@@ -84,7 +86,9 @@ public class PhysicalKeyboardPreferenceControllerTest {
DEVICE_NAME, DEVICE_NAME,
mIdentifier, mIdentifier,
LAYOUT_LABEL, LAYOUT_LABEL,
BLUETOOTHADDRESS)); BLUETOOTHADDRESS,
VENDOR_ID,
PRODUCT_ID));
mController = spy(new PhysicalKeyboardPreferenceController(context, null)); mController = spy(new PhysicalKeyboardPreferenceController(context, null));
when(mController.getKeyboards()).thenReturn(keyboards); when(mController.getKeyboards()).thenReturn(keyboards);

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
@@ -26,10 +31,14 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@@ -39,16 +48,20 @@ import org.robolectric.annotation.Config;
com.android.settings.testutils.shadow.ShadowSystemSettings.class, com.android.settings.testutils.shadow.ShadowSystemSettings.class,
}) })
public class TrackpadBottomPreferenceControllerTest { public class TrackpadBottomPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_bottom_right_tap"; private static final String PREFERENCE_KEY = "trackpad_bottom_right_tap";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_RIGHT_CLICK_ZONE; private static final String SETTING_KEY = Settings.System.TOUCHPAD_RIGHT_CLICK_ZONE;
private Context mContext; private Context mContext;
private TrackpadBottomPreferenceController mController; private TrackpadBottomPreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadBottomPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadBottomPreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -74,6 +87,10 @@ public class TrackpadBottomPreferenceControllerTest {
UserHandle.USER_CURRENT); UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED),
eq(true));
} }
@Test @Test
@@ -87,6 +104,10 @@ public class TrackpadBottomPreferenceControllerTest {
UserHandle.USER_CURRENT); UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED),
eq(false));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
@@ -25,25 +30,33 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadGoBackPreferenceController} */ /** Tests for {@link TrackpadGoBackPreferenceController} */
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class TrackpadGoBackPreferenceControllerTest { public class TrackpadGoBackPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_go_back"; private static final String PREFERENCE_KEY = "gesture_go_back";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED;
private Context mContext; private Context mContext;
private TrackpadGoBackPreferenceController mController; private TrackpadGoBackPreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadGoBackPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadGoBackPreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -65,6 +78,10 @@ public class TrackpadGoBackPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED),
eq(true));
} }
@Test @Test
@@ -74,6 +91,10 @@ public class TrackpadGoBackPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED),
eq(false));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
@@ -25,25 +30,33 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadGoHomePreferenceController} */ /** Tests for {@link TrackpadGoHomePreferenceController} */
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class TrackpadGoHomePreferenceControllerTest { public class TrackpadGoHomePreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_go_home"; private static final String PREFERENCE_KEY = "gesture_go_home";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED;
private Context mContext; private Context mContext;
private TrackpadGoHomePreferenceController mController; private TrackpadGoHomePreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadGoHomePreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadGoHomePreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -65,6 +78,10 @@ public class TrackpadGoHomePreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED),
eq(true));
} }
@Test @Test
@@ -74,6 +91,10 @@ public class TrackpadGoHomePreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED),
eq(false));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
@@ -25,25 +30,33 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadNotificationsPreferenceController} */ /** Tests for {@link TrackpadNotificationsPreferenceController} */
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class TrackpadNotificationsPreferenceControllerTest { public class TrackpadNotificationsPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_notifications"; private static final String PREFERENCE_KEY = "gesture_notifications";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED;
private Context mContext; private Context mContext;
private TrackpadNotificationsPreferenceController mController; private TrackpadNotificationsPreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadNotificationsPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadNotificationsPreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -65,6 +78,10 @@ public class TrackpadNotificationsPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED),
eq(true));
} }
@Test @Test
@@ -74,6 +91,10 @@ public class TrackpadNotificationsPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED),
eq(false));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import android.os.UserHandle; import android.os.UserHandle;
@@ -26,10 +31,14 @@ import android.provider.Settings;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@@ -39,6 +48,8 @@ import org.robolectric.annotation.Config;
com.android.settings.testutils.shadow.ShadowSystemSettings.class, com.android.settings.testutils.shadow.ShadowSystemSettings.class,
}) })
public class TrackpadPointerSpeedPreferenceControllerTest { public class TrackpadPointerSpeedPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_pointer_speed"; private static final String PREFERENCE_KEY = "trackpad_pointer_speed";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_POINTER_SPEED; private static final String SETTING_KEY = Settings.System.TOUCHPAD_POINTER_SPEED;
@@ -46,10 +57,12 @@ public class TrackpadPointerSpeedPreferenceControllerTest {
private Context mContext; private Context mContext;
private TrackpadPointerSpeedPreferenceController mController; private TrackpadPointerSpeedPreferenceController mController;
private int mDefaultSpeed; private int mDefaultSpeed;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadPointerSpeedPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadPointerSpeedPreferenceController(mContext, PREFERENCE_KEY);
mDefaultSpeed = Settings.System.getIntForUser( mDefaultSpeed = Settings.System.getIntForUser(
mContext.getContentResolver(), mContext.getContentResolver(),
@@ -89,6 +102,10 @@ public class TrackpadPointerSpeedPreferenceControllerTest {
assertThat(result).isTrue(); assertThat(result).isTrue();
assertThat(mController.getSliderPosition()).isEqualTo(inputSpeed); assertThat(mController.getSliderPosition()).isEqualTo(inputSpeed);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_POINTER_SPEED_CHANGED),
eq(1));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
@@ -25,25 +30,33 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadRecentAppsPreferenceController} */ /** Tests for {@link TrackpadRecentAppsPreferenceController} */
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class TrackpadRecentAppsPreferenceControllerTest { public class TrackpadRecentAppsPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_recent_apps"; private static final String PREFERENCE_KEY = "gesture_recent_apps";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED;
private Context mContext; private Context mContext;
private TrackpadRecentAppsPreferenceController mController; private TrackpadRecentAppsPreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadRecentAppsPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadRecentAppsPreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -65,6 +78,10 @@ public class TrackpadRecentAppsPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED),
eq(true));
} }
@Test @Test
@@ -74,6 +91,10 @@ public class TrackpadRecentAppsPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED),
eq(false));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
@@ -26,10 +31,14 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@@ -39,16 +48,20 @@ import org.robolectric.annotation.Config;
com.android.settings.testutils.shadow.ShadowSystemSettings.class, com.android.settings.testutils.shadow.ShadowSystemSettings.class,
}) })
public class TrackpadReverseScrollingPreferenceControllerTest { public class TrackpadReverseScrollingPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_reverse_scrolling"; private static final String PREFERENCE_KEY = "trackpad_reverse_scrolling";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_NATURAL_SCROLLING; private static final String SETTING_KEY = Settings.System.TOUCHPAD_NATURAL_SCROLLING;
private Context mContext; private Context mContext;
private TrackpadReverseScrollingPreferenceController mController; private TrackpadReverseScrollingPreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadReverseScrollingPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadReverseScrollingPreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -74,6 +87,10 @@ public class TrackpadReverseScrollingPreferenceControllerTest {
UserHandle.USER_CURRENT); UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED),
eq(true));
} }
@Test @Test
@@ -87,6 +104,10 @@ public class TrackpadReverseScrollingPreferenceControllerTest {
UserHandle.USER_CURRENT); UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED),
eq(false));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
@@ -25,25 +30,33 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadSwitchAppsPreferenceController} */ /** Tests for {@link TrackpadSwitchAppsPreferenceController} */
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class TrackpadSwitchAppsPreferenceControllerTest { public class TrackpadSwitchAppsPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_switch_apps"; private static final String PREFERENCE_KEY = "gesture_switch_apps";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED; private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED;
private Context mContext; private Context mContext;
private TrackpadSwitchAppsPreferenceController mController; private TrackpadSwitchAppsPreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadSwitchAppsPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadSwitchAppsPreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -65,6 +78,10 @@ public class TrackpadSwitchAppsPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED),
eq(true));
} }
@Test @Test
@@ -74,6 +91,10 @@ public class TrackpadSwitchAppsPreferenceControllerTest {
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1); int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED),
eq(false));
} }
@Test @Test

View File

@@ -18,6 +18,11 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
@@ -26,10 +31,14 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@@ -39,16 +48,20 @@ import org.robolectric.annotation.Config;
com.android.settings.testutils.shadow.ShadowSystemSettings.class, com.android.settings.testutils.shadow.ShadowSystemSettings.class,
}) })
public class TrackpadTapToClickPreferenceControllerTest { public class TrackpadTapToClickPreferenceControllerTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_tap_to_click"; private static final String PREFERENCE_KEY = "trackpad_tap_to_click";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_TAP_TO_CLICK; private static final String SETTING_KEY = Settings.System.TOUCHPAD_TAP_TO_CLICK;
private Context mContext; private Context mContext;
private TrackpadTapToClickPreferenceController mController; private TrackpadTapToClickPreferenceController mController;
private FakeFeatureFactory mFeatureFactory;
@Before @Before
public void setUp() { public void setUp() {
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadTapToClickPreferenceController(mContext, PREFERENCE_KEY); mController = new TrackpadTapToClickPreferenceController(mContext, PREFERENCE_KEY);
} }
@@ -74,6 +87,10 @@ public class TrackpadTapToClickPreferenceControllerTest {
UserHandle.USER_CURRENT); UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(1); assertThat(result).isEqualTo(1);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED),
eq(true));
} }
@Test @Test
@@ -87,6 +104,10 @@ public class TrackpadTapToClickPreferenceControllerTest {
UserHandle.USER_CURRENT); UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(0); assertThat(result).isEqualTo(0);
verify(mFeatureFactory.metricsFeatureProvider).action(
any(),
eq(SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED),
eq(false));
} }
@Test @Test