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

Commit fd8df41f authored by Ahmad Khalil's avatar Ahmad Khalil Committed by Android (Google) Code Review
Browse files

Merge "Remove android.os.vibrator.adaptive_haptics_enabled" into main

parents 7641e0a7 bb2c8cd2
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
package: "android.os.vibrator"
container: "system"

flag {
    namespace: "haptics"
    name: "adaptive_haptics_enabled"
    description: "Enables the adaptive haptics feature"
    bug: "305961689"
}

flag {
    namespace: "haptics"
    name: "vibration_xml_apis"
+1 −3
Original line number Diff line number Diff line
@@ -129,9 +129,7 @@ final class VibrationScaler {
     * @return The adaptive haptics scale.
     */
    public float getAdaptiveHapticsScale(int usageHint) {
        return Flags.adaptiveHapticsEnabled()
                ? mAdaptiveHapticsScales.get(usageHint, ADAPTIVE_SCALE_NONE)
                : ADAPTIVE_SCALE_NONE;
        return mAdaptiveHapticsScales.get(usageHint, ADAPTIVE_SCALE_NONE);
    }

    /**
+2 −3
Original line number Diff line number Diff line
@@ -193,9 +193,8 @@ final class VibrationStepConductor {
            expectIsVibrationThread(true);
        }

        if (Flags.adaptiveHapticsEnabled()) {
        waitForVibrationParamsIfRequired();
        }

        // Scale resolves the default amplitudes from the effect before scaling them.
        mVibration.scaleEffects(mVibrationScaler);

+1 −2
Original line number Diff line number Diff line
@@ -1199,8 +1199,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
            DeviceAdapter deviceAdapter, boolean isInSession) {
        CompletableFuture<Void> requestVibrationParamsFuture = null;

        if (Flags.adaptiveHapticsEnabled()
                && mVibratorControlService.shouldRequestVibrationParams(
        if (mVibratorControlService.shouldRequestVibrationParams(
                vib.callerInfo.attrs.getUsage())) {
            requestVibrationParamsFuture =
                    mVibratorControlService.triggerVibrationParamsRequest(
+1 −42
Original line number Diff line number Diff line
@@ -270,7 +270,6 @@ public class VibrationScalerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
    public void testAdaptiveHapticsScale_withAdaptiveHapticsAvailable() {
        VibrationScaler scaler = createSystemReadyScaler();
        scaler.updateAdaptiveHapticsScale(USAGE_TOUCH, 0.5f);
@@ -282,18 +281,6 @@ public class VibrationScalerTest {
        assertEquals(0.2f, scaler.getAdaptiveHapticsScale(USAGE_RINGTONE));
    }

    @Test
    @DisableFlags(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
    public void testAdaptiveHapticsScale_flagDisabled_adaptiveHapticScaleAlwaysNone() {
        VibrationScaler scaler = createSystemReadyScaler();
        scaler.updateAdaptiveHapticsScale(USAGE_TOUCH, 0.5f);
        scaler.updateAdaptiveHapticsScale(USAGE_RINGTONE, 0.2f);

        assertEquals(1f, scaler.getAdaptiveHapticsScale(USAGE_TOUCH));
        assertEquals(1f, scaler.getAdaptiveHapticsScale(USAGE_RINGTONE));
        assertEquals(1f, scaler.getAdaptiveHapticsScale(USAGE_NOTIFICATION));
    }

    @Test
    public void scale_withPrebakedSegment_setsEffectStrengthBasedOnSettings() {
        mConfigBuilder.setDefaultNotificationVibrationIntensity(VIBRATION_INTENSITY_MEDIUM);
@@ -490,7 +477,6 @@ public class VibrationScalerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
    public void scale_withAdaptiveHaptics_scalesVibrationsCorrectly() {
        mConfigBuilder.setDefaultRingVibrationIntensity(VIBRATION_INTENSITY_HIGH);
        mConfigBuilder.setDefaultNotificationVibrationIntensity(VIBRATION_INTENSITY_HIGH);
@@ -512,30 +498,6 @@ public class VibrationScalerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
    public void scale_clearAdaptiveHapticsScales_clearsAllCachedScales() {
        mConfigBuilder.setDefaultRingVibrationIntensity(VIBRATION_INTENSITY_HIGH);
        mConfigBuilder.setDefaultNotificationVibrationIntensity(VIBRATION_INTENSITY_HIGH);
        VibrationScaler scaler = createSystemReadyScaler();

        scaler.updateAdaptiveHapticsScale(USAGE_RINGTONE, 0.5f);
        scaler.updateAdaptiveHapticsScale(USAGE_NOTIFICATION, 0.5f);
        scaler.clearAdaptiveHapticsScales();

        StepSegment scaled = getFirstSegment(scaler.scale(
                VibrationEffect.createOneShot(128, 128), USAGE_RINGTONE));
        // Ringtone scales up.
        assertTrue(scaled.getAmplitude() > 0.5);

        scaled = getFirstSegment(scaler.scale(
                VibrationEffect.createWaveform(new long[]{128}, new int[]{128}, -1),
                USAGE_NOTIFICATION));
        // Notification scales up.
        assertTrue(scaled.getAmplitude() > 0.5);
    }

    @Test
    @EnableFlags(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
    public void scale_removeAdaptiveHapticsScale_removesCachedScale() {
        mConfigBuilder.setDefaultRingVibrationIntensity(VIBRATION_INTENSITY_HIGH);
        mConfigBuilder.setDefaultNotificationVibrationIntensity(VIBRATION_INTENSITY_HIGH);
@@ -558,10 +520,7 @@ public class VibrationScalerTest {
    }

    @Test
    @EnableFlags({
            android.os.vibrator.Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED,
            android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS,
    })
    @EnableFlags(android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
    public void scale_adaptiveHapticsOnVendorEffect_setsAdaptiveScaleParameter() {
        mConfigBuilder.setDefaultRingVibrationIntensity(VIBRATION_INTENSITY_HIGH);
        VibrationScaler scaler = createSystemReadyScaler();
Loading