Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75de0f5a authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "[PK settings] Remove metrics."" into main

parents da70c86b 6b9d8c53
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -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(
@@ -92,6 +95,7 @@ public class ModifierKeysPickerDialogFragment extends DialogFragment {

        mActivity = getActivity();
        FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
        mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
        mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
        InputManager inputManager = mActivity.getSystemService(InputManager.class);
        mKeyDefaultName = getArguments().getString(DEFAULT_KEY);
@@ -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) {
+7 −0
Original line number Diff line number Diff line
@@ -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.hardware.input.InputManager;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -31,6 +32,8 @@ import android.widget.Button;
import androidx.fragment.app.DialogFragment;

import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

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_ALT = "modifier_keys_alt";

    private MetricsFeatureProvider mMetricsFeatureProvider;

    private String[] mKeys = {
            MODIFIER_KEYS_CAPS_LOCK,
            MODIFIER_KEYS_CTRL,
@@ -52,6 +57,7 @@ public class ModifierKeysResetDialogFragment extends DialogFragment {
        super.onCreateDialog(savedInstanceState);

        Activity activity = getActivity();
        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
        InputManager inputManager = activity.getSystemService(InputManager.class);
        View dialoglayout =
                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);
        restoreButton.setOnClickListener(v -> {
            mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_CLEAR_REMAPPINGS);
            inputManager.clearAllModifierKeyRemappings();
            dismiss();
            activity.recreate();
+13 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.inputmethod;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager;
@@ -30,7 +31,9 @@ import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
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.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -53,13 +56,16 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController
    private KeyboardLayout[] mKeyboardLayouts;
    private PreferenceScreen mScreen;
    private String mPreviousSelection;
    private String mFinalSelectedLayout;
    private String mLayout;
    private MetricsFeatureProvider mMetricsFeatureProvider;

    public NewKeyboardLayoutPickerController(Context context, String key) {
        super(context, key);
        mIm = context.getSystemService(InputManager.class);
        mInputDeviceId = -1;
        mPreferenceMap = new HashMap<>();
        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
    }

    public void initialize(Fragment parent) {
@@ -74,6 +80,7 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController
        mInputMethodSubtype =
                arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_SUBTYPE);
        mLayout = getSelectedLayoutLabel();
        mFinalSelectedLayout = mLayout;
        mKeyboardLayouts = mIm.getKeyboardLayoutListForInputDevice(
                mInputDeviceIdentifier, mUserId, mInputMethodInfo, mInputMethodSubtype);
        parent.getActivity().setTitle(mTitle);
@@ -92,6 +99,11 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController

    @Override
    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);
        mInputDeviceId = -1;
    }
@@ -122,6 +134,7 @@ public class NewKeyboardLayoutPickerController extends BasePreferenceController
        }
        setLayout(pref);
        mPreviousSelection = preference.getKey();
        mFinalSelectedLayout = pref.getTitle().toString();
        return true;
    }

+27 −2
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                        SHOW_VIRTUAL_KEYBOARD_SWITCH));

        FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
        mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
        mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
        mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate();
        if (mSupportsFirmwareUpdate) {
@@ -124,6 +125,10 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER);
        int intentFromWhere =
                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) {
            mAutoInputDeviceIdentifier = inputDeviceIdentifier;
        }
@@ -254,6 +259,16 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                        });
            }
            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);
        preferenceScreen.addPreference(mKeyboardAssistanceCategory);
@@ -374,7 +389,9 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                    device.getName(),
                    device.getIdentifier(),
                    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.
@@ -403,16 +420,24 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        public final String mLayoutLabel;
        @Nullable
        public final String mBluetoothAddress;
        @NonNull
        public final int mVendorId;
        @NonNull
        public final int mProductId;

        public HardKeyboardDeviceInfo(
                @Nullable String deviceName,
                @NonNull InputDeviceIdentifier deviceIdentifier,
                @NonNull String layoutLabel,
                @Nullable String bluetoothAddress) {
                @Nullable String bluetoothAddress,
                @NonNull int vendorId,
                @NonNull int productId) {
            mDeviceName = TextUtils.emptyIfNull(deviceName);
            mDeviceIdentifier = deviceIdentifier;
            mLayoutLabel = layoutLabel;
            mBluetoothAddress = bluetoothAddress;
            mVendorId = vendorId;
            mProductId = productId;
        }

        @Override
+6 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.inputmethod;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.util.FeatureFlagUtils;

@@ -23,6 +24,8 @@ import androidx.fragment.app.Fragment;
import androidx.preference.PreferenceScreen;

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;

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 Fragment mParent;
    private MetricsFeatureProvider mMetricsFeatureProvider;

    public TouchGesturesButtonPreferenceController(Context context, String key) {
        super(context, key);
        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
    }

    public void setFragment(Fragment parent) {
@@ -67,6 +72,7 @@ public class TouchGesturesButtonPreferenceController extends BasePreferenceContr
    }

    private void showTouchpadGestureEducation() {
        mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LEARN_TOUCHPAD_GESTURE_CLICK);
        TrackpadGestureDialogFragment fragment = new TrackpadGestureDialogFragment();
        fragment.setTargetFragment(mParent, 0);
        fragment.show(mParent.getActivity().getSupportFragmentManager(), GESTURE_DIALOG_TAG);
Loading