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

Commit e13209fb authored by Wilson Wu's avatar Wilson Wu Committed by Android (Google) Code Review
Browse files

Merge "Add metrics for keyboard vibration settings" into main

parents 2a1051cb 55a7023a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ import static android.provider.Settings.System.KEYBOARD_VIBRATION_ENABLED;
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;


import android.app.settings.SettingsEnums;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
@@ -42,6 +42,8 @@ import androidx.preference.TwoStatePreference;

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


/**
@@ -62,6 +64,8 @@ public class KeyboardVibrationTogglePreferenceController extends TogglePreferenc
    @Nullable
    private TwoStatePreference mPreference;

    private MetricsFeatureProvider mMetricsFeatureProvider;

    public KeyboardVibrationTogglePreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mVibrator = context.getSystemService(Vibrator.class);
@@ -75,6 +79,7 @@ public class KeyboardVibrationTogglePreferenceController extends TogglePreferenc
                }
            }
        };
        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
    }

    @Override
@@ -120,6 +125,8 @@ public class KeyboardVibrationTogglePreferenceController extends TogglePreferenc
    @Override
    public boolean setChecked(boolean isChecked) {
        final boolean success = updateKeyboardVibrationSetting(isChecked);
        mMetricsFeatureProvider.action(mContext,
                SettingsEnums.ACTION_KEYBOARD_VIBRATION_CHANGED, isChecked);
        if (success && isChecked) {
            // Play the preview vibration effect when the toggle is on.
            final VibrationAttributes touchAttrs =
+11 −2
Original line number Diff line number Diff line
@@ -23,9 +23,13 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verify;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.os.vibrator.Flags;
@@ -37,6 +41,7 @@ import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;

import org.junit.Before;
import org.junit.Rule;
@@ -49,7 +54,6 @@ import org.robolectric.RobolectricTestRunner;
/** Tests for {@link KeyboardVibrationTogglePreferenceController}. */
@RunWith(RobolectricTestRunner.class)
public class KeyboardVibrationTogglePreferenceControllerTest {

    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();

@@ -59,8 +63,8 @@ public class KeyboardVibrationTogglePreferenceControllerTest {
    private Context mContext;
    private Resources mResources;
    private KeyboardVibrationTogglePreferenceController mController;

    private SwitchPreference mPreference;
    private FakeFeatureFactory mFeatureFactory;

    @Before
    public void setUp() {
@@ -68,6 +72,7 @@ public class KeyboardVibrationTogglePreferenceControllerTest {
        mContext = spy(ApplicationProvider.getApplicationContext());
        mResources = spy(mContext.getResources());
        when(mContext.getResources()).thenReturn(mResources);
        mFeatureFactory = FakeFeatureFactory.setupForTest();
        mController = new KeyboardVibrationTogglePreferenceController(mContext, "preferenceKey");
        mPreference = new SwitchPreference(mContext);
        when(mPreferenceScreen.findPreference(
@@ -148,6 +153,8 @@ public class KeyboardVibrationTogglePreferenceControllerTest {
        mController.setChecked(true);

        assertThat(readSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED)).isEqualTo(ON);
        verify(mFeatureFactory.metricsFeatureProvider).action(any(),
                eq(SettingsEnums.ACTION_KEYBOARD_VIBRATION_CHANGED), eq(true));
    }

    @Test
@@ -160,6 +167,8 @@ public class KeyboardVibrationTogglePreferenceControllerTest {
        mController.setChecked(false);

        assertThat(readSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED)).isEqualTo(OFF);
        verify(mFeatureFactory.metricsFeatureProvider).action(any(),
                eq(SettingsEnums.ACTION_KEYBOARD_VIBRATION_CHANGED), eq(false));
    }

    private void updateSystemSetting(String key, int value) {