Log metrics for PK settings topics

1. Log metrics for touchpad settings
2. Log metrics for modifier keys remapping
3. Log metrics for physical keyboard settings

Bug: 271391879
Test: manual, atest
Change-Id: I3f948927719ec6fc3dca78cdcb995c3037d8f97f
This commit is contained in:
danielwbhuang
2023-06-07 16:40:37 +08:00
parent 2856b252d6
commit 7aaff67c3c
25 changed files with 363 additions and 57 deletions

View File

@@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.hardware.input.InputManager;
@@ -47,6 +48,7 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.Utils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.ArrayList;
import java.util.Arrays;
@@ -68,6 +70,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
private TextView mLeftBracket;
private TextView mRightBracket;
private ImageView mActionKeyIcon;
private MetricsFeatureProvider mMetricsFeatureProvider;
private List<int[]> mRemappableKeyList =
new ArrayList<>(Arrays.asList(
@@ -91,6 +94,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
super.onCreateDialog(savedInstanceState);
mActivity = getActivity();
mMetricsFeatureProvider = FeatureFactory.getFactory(mActivity).getMetricsFeatureProvider();
FeatureFactory featureFactory = FeatureFactory.getFactory(mActivity);
mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
InputManager inputManager = mActivity.getSystemService(InputManager.class);
@@ -139,6 +143,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
doneButton.setOnClickListener(v -> {
String selectedItem = modifierKeys.get(adapter.getCurrentItem());
Spannable itemSummary;
logMetricsForRemapping(selectedItem);
if (selectedItem.equals(mKeyDefaultName)) {
itemSummary = new SpannableString(
mActivity.getString(R.string.modifier_keys_default_summary));
@@ -189,6 +194,28 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {
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(
List<String> modifierKeys, ModifierKeyAdapter adapter) {
if (modifierKeys.indexOf(mKeyFocus) == -1) {