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

Commit 4166f1b7 authored by Shaowei Shen's avatar Shaowei Shen Committed by Android (Google) Code Review
Browse files

Merge "[Physical Keyboard] Add Metrics event for keyboard relates pages" into main

parents 5716bd85 33f62b4e
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.keyboard.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

import java.util.concurrent.TimeUnit;

@@ -51,6 +53,7 @@ public abstract class InputSettingPreferenceController extends TogglePreferenceC
    private static final int CUSTOM_PROGRESS_INTERVAL = 100;
    private static final long MILLISECOND_IN_SECONDS = TimeUnit.SECONDS.toMillis(1);
    private final ContentResolver mContentResolver;
    protected final MetricsFeatureProvider mMetricsFeatureProvider;
    private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
        @Override
        public void onChange(boolean selfChange, Uri uri) {
@@ -72,10 +75,14 @@ public abstract class InputSettingPreferenceController extends TogglePreferenceC
        return 0;
    }

    protected void onCustomValueUpdated(int thresholdTimeMillis) {
    }

    public InputSettingPreferenceController(@NonNull Context context,
            @NonNull String preferenceKey) {
        super(context, preferenceKey);
        mContentResolver = context.getContentResolver();
        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
    }

    @Override
@@ -150,6 +157,7 @@ public abstract class InputSettingPreferenceController extends TogglePreferenceC
                                }
                            }
                            updateInputSettingKeysValue(threshold);
                            onCustomValueUpdated(threshold);
                        })
                .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss())
                .create();
+12 −0
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package com.android.settings.inputmethod;

import static android.app.settings.SettingsEnums.ACTION_BOUNCE_KEYS_CUSTOM_VALUE_CHANGE;
import static android.app.settings.SettingsEnums.ACTION_BOUNCE_KEYS_DISABLED;
import static android.app.settings.SettingsEnums.ACTION_BOUNCE_KEYS_ENABLED;

import android.content.Context;
import android.hardware.input.InputSettings;
import android.net.Uri;
@@ -78,9 +82,17 @@ public class KeyboardAccessibilityBounceKeysController extends
    @Override
    public boolean setChecked(boolean isChecked) {
        updateInputSettingKeysValue(isChecked ? BOUNCE_KEYS_THRESHOLD : 0);
        mMetricsFeatureProvider.action(mContext,
                isChecked ? ACTION_BOUNCE_KEYS_ENABLED : ACTION_BOUNCE_KEYS_DISABLED);
        return true;
    }

    @Override
    protected void onCustomValueUpdated(int thresholdTimeMillis) {
        mMetricsFeatureProvider.action(mContext, ACTION_BOUNCE_KEYS_CUSTOM_VALUE_CHANGE,
                thresholdTimeMillis);
    }

    @Override
    protected void onInputSettingUpdated() {
        if (mPrimaryPreference != null) {
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.settings.inputmethod;

import static android.app.settings.SettingsEnums.ACTION_MOUSE_KEYS_DISABLED;
import static android.app.settings.SettingsEnums.ACTION_MOUSE_KEYS_ENABLED;

import android.content.Context;
import android.hardware.input.InputSettings;
import android.net.Uri;
@@ -63,6 +66,8 @@ public class KeyboardAccessibilityMouseKeysController extends
    public boolean setChecked(boolean isChecked) {
        InputSettings.setAccessibilityMouseKeysEnabled(mContext,
                isChecked);
        mMetricsFeatureProvider.action(mContext,
                isChecked ? ACTION_MOUSE_KEYS_ENABLED : ACTION_MOUSE_KEYS_DISABLED);
        return true;
    }

+12 −0
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package com.android.settings.inputmethod;

import static android.app.settings.SettingsEnums.ACTION_SLOW_KEYS_CUSTOM_VALUE_CHANGE;
import static android.app.settings.SettingsEnums.ACTION_SLOW_KEYS_DISABLED;
import static android.app.settings.SettingsEnums.ACTION_SLOW_KEYS_ENABLED;

import android.content.Context;
import android.hardware.input.InputSettings;
import android.net.Uri;
@@ -58,6 +62,8 @@ public class KeyboardAccessibilitySlowKeysController extends
    @Override
    public boolean setChecked(boolean isChecked) {
        updateInputSettingKeysValue(isChecked ? SLOW_KEYS_THRESHOLD : 0);
        mMetricsFeatureProvider.action(mContext,
                isChecked ? ACTION_SLOW_KEYS_ENABLED : ACTION_SLOW_KEYS_DISABLED);
        return true;
    }

@@ -98,6 +104,12 @@ public class KeyboardAccessibilitySlowKeysController extends
        InputSettings.setAccessibilitySlowKeysThreshold(mContext, thresholdTimeMillis);
    }

    @Override
    protected void onCustomValueUpdated(int thresholdTimeMillis) {
        mMetricsFeatureProvider.action(mContext,
                ACTION_SLOW_KEYS_CUSTOM_VALUE_CHANGE, thresholdTimeMillis);
    }

    @Override
    protected int getInputSettingKeysValue() {
        return InputSettings.getAccessibilitySlowKeysThreshold(mContext);
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.settings.inputmethod;

import static android.app.settings.SettingsEnums.ACTION_STICKY_KEYS_DISABLED;
import static android.app.settings.SettingsEnums.ACTION_STICKY_KEYS_ENABLED;

import android.content.Context;
import android.hardware.input.InputSettings;
import android.net.Uri;
@@ -52,6 +55,8 @@ public class KeyboardAccessibilityStickyKeysController extends
    public boolean setChecked(boolean isChecked) {
        InputSettings.setAccessibilityStickyKeysEnabled(mContext,
                isChecked);
        mMetricsFeatureProvider.action(mContext,
                isChecked ? ACTION_STICKY_KEYS_ENABLED : ACTION_STICKY_KEYS_DISABLED);
        return true;
    }

Loading