diff --git a/src/com/android/settings/inputmethod/InputSettingPreferenceController.java b/src/com/android/settings/inputmethod/InputSettingPreferenceController.java index 8dda8c5cd51..9cc8d05be25 100644 --- a/src/com/android/settings/inputmethod/InputSettingPreferenceController.java +++ b/src/com/android/settings/inputmethod/InputSettingPreferenceController.java @@ -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(); diff --git a/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java b/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java index 6bd836feb08..9a0f1c0d6e3 100644 --- a/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java +++ b/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java @@ -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) { diff --git a/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java b/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java index 34f53c47dce..2db0e05a2de 100644 --- a/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java +++ b/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java @@ -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; } diff --git a/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java b/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java index 857623a6839..451742ff2d4 100644 --- a/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java +++ b/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java @@ -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); diff --git a/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysController.java b/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysController.java index fd2cb2e6e11..f0dcc9350c6 100644 --- a/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysController.java +++ b/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysController.java @@ -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; } diff --git a/src/com/android/settings/inputmethod/KeyboardRepeatKeysMainFragment.java b/src/com/android/settings/inputmethod/KeyboardRepeatKeysMainFragment.java index 39e605d1d59..8c06c30ec28 100644 --- a/src/com/android/settings/inputmethod/KeyboardRepeatKeysMainFragment.java +++ b/src/com/android/settings/inputmethod/KeyboardRepeatKeysMainFragment.java @@ -68,7 +68,7 @@ public class KeyboardRepeatKeysMainFragment extends DashboardFragment @Override public int getMetricsCategory() { - return SettingsEnums.PHYSICAL_KEYBOARD_A11Y; + return SettingsEnums.PHYSICAL_KEYBOARD_REPEAT_KEYS; } @Override diff --git a/src/com/android/settings/inputmethod/MouseKeysMainPageFragment.java b/src/com/android/settings/inputmethod/MouseKeysMainPageFragment.java index dd9c1ddf62f..1f6035f03ec 100644 --- a/src/com/android/settings/inputmethod/MouseKeysMainPageFragment.java +++ b/src/com/android/settings/inputmethod/MouseKeysMainPageFragment.java @@ -83,7 +83,7 @@ public class MouseKeysMainPageFragment extends DashboardFragment @Override public int getMetricsCategory() { - return SettingsEnums.PHYSICAL_KEYBOARD_A11Y; + return SettingsEnums.SETTINGS_PHYSICAL_KEYBOARD_MOUSE_KEYS; } @Override diff --git a/src/com/android/settings/inputmethod/MouseReverseVerticalScrollingPreferenceController.java b/src/com/android/settings/inputmethod/MouseReverseVerticalScrollingPreferenceController.java index 977e906e2a5..a1a86153577 100644 --- a/src/com/android/settings/inputmethod/MouseReverseVerticalScrollingPreferenceController.java +++ b/src/com/android/settings/inputmethod/MouseReverseVerticalScrollingPreferenceController.java @@ -16,6 +16,9 @@ package com.android.settings.inputmethod; +import static android.app.settings.SettingsEnums.ACTION_MOUSE_REVERSE_VERTICAL_SCROLLING_DISABLED; +import static android.app.settings.SettingsEnums.ACTION_MOUSE_REVERSE_VERTICAL_SCROLLING_ENABLED; + import android.content.Context; import android.hardware.input.InputSettings; @@ -23,12 +26,16 @@ import androidx.annotation.NonNull; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; +import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; public class MouseReverseVerticalScrollingPreferenceController extends TogglePreferenceController { + private final MetricsFeatureProvider mMetricsFeatureProvider; public MouseReverseVerticalScrollingPreferenceController( @NonNull Context context, @NonNull String key) { super(context, key); + mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); } @Override @@ -39,6 +46,9 @@ public class MouseReverseVerticalScrollingPreferenceController extends TogglePre @Override public boolean setChecked(boolean isChecked) { InputSettings.setMouseReverseVerticalScrolling(mContext, isChecked); + mMetricsFeatureProvider.action(mContext, + isChecked ? ACTION_MOUSE_REVERSE_VERTICAL_SCROLLING_ENABLED : + ACTION_MOUSE_REVERSE_VERTICAL_SCROLLING_DISABLED); return true; } diff --git a/src/com/android/settings/inputmethod/MouseSwapPrimaryButtonPreferenceController.java b/src/com/android/settings/inputmethod/MouseSwapPrimaryButtonPreferenceController.java index 88199d8d64e..63dfc053df6 100644 --- a/src/com/android/settings/inputmethod/MouseSwapPrimaryButtonPreferenceController.java +++ b/src/com/android/settings/inputmethod/MouseSwapPrimaryButtonPreferenceController.java @@ -16,6 +16,9 @@ package com.android.settings.inputmethod; +import static android.app.settings.SettingsEnums.ACTION_MOUSE_SWAP_PRIMARY_BUTTON_DISABLED; +import static android.app.settings.SettingsEnums.ACTION_MOUSE_SWAP_PRIMARY_BUTTON_ENABLED; + import android.content.Context; import android.hardware.input.InputSettings; @@ -23,12 +26,16 @@ import androidx.annotation.NonNull; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; +import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; public class MouseSwapPrimaryButtonPreferenceController extends TogglePreferenceController { + private final MetricsFeatureProvider mMetricsFeatureProvider; public MouseSwapPrimaryButtonPreferenceController( @NonNull Context context, @NonNull String key) { super(context, key); + mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); } @Override @@ -39,6 +46,9 @@ public class MouseSwapPrimaryButtonPreferenceController extends TogglePreference @Override public boolean setChecked(boolean isChecked) { InputSettings.setMouseSwapPrimaryButton(mContext, isChecked); + mMetricsFeatureProvider.action(mContext, + isChecked ? ACTION_MOUSE_SWAP_PRIMARY_BUTTON_ENABLED : + ACTION_MOUSE_SWAP_PRIMARY_BUTTON_DISABLED); return true; }