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

This commit is contained in:
Shaowei Shen
2025-01-07 01:42:25 -08:00
committed by Android (Google) Code Review
9 changed files with 64 additions and 2 deletions

View File

@@ -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();

View File

@@ -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) {

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;
}