diff options
3 files changed, 14 insertions, 27 deletions
diff --git a/services/core/java/com/android/server/vibrator/HapticFeedbackVibrationProvider.java b/services/core/java/com/android/server/vibrator/HapticFeedbackVibrationProvider.java index 03b7a4828d36..519acec2f7b4 100644 --- a/services/core/java/com/android/server/vibrator/HapticFeedbackVibrationProvider.java +++ b/services/core/java/com/android/server/vibrator/HapticFeedbackVibrationProvider.java @@ -26,8 +26,6 @@ import android.os.vibrator.Flags;  import android.util.Slog;  import android.util.SparseArray;  import android.view.HapticFeedbackConstants; -import android.view.flags.FeatureFlags; -import android.view.flags.FeatureFlagsImpl;  import com.android.internal.annotations.VisibleForTesting; @@ -57,7 +55,6 @@ public final class HapticFeedbackVibrationProvider {      // If present and valid, a vibration here will be used for an effect.      // Otherwise, the system's default vibration will be used.      @Nullable private final SparseArray<VibrationEffect> mHapticCustomizations; -    private final FeatureFlags mViewFeatureFlags;      private float mKeyboardVibrationFixedAmplitude; @@ -68,16 +65,14 @@ public final class HapticFeedbackVibrationProvider {      /** @hide */      public HapticFeedbackVibrationProvider(Resources res, VibratorInfo vibratorInfo) { -        this(res, vibratorInfo, loadHapticCustomizations(res, vibratorInfo), -                new FeatureFlagsImpl()); +        this(res, vibratorInfo, loadHapticCustomizations(res, vibratorInfo));      }      /** @hide */      @VisibleForTesting HapticFeedbackVibrationProvider(              Resources res,              VibratorInfo vibratorInfo, -            @Nullable SparseArray<VibrationEffect> hapticCustomizations, -            FeatureFlags viewFeatureFlags) { +            @Nullable SparseArray<VibrationEffect> hapticCustomizations) {          mVibratorInfo = vibratorInfo;          mHapticTextHandleEnabled = res.getBoolean(                  com.android.internal.R.bool.config_enableHapticTextHandle); @@ -86,8 +81,6 @@ public final class HapticFeedbackVibrationProvider {              hapticCustomizations = null;          }          mHapticCustomizations = hapticCustomizations; -        mViewFeatureFlags = viewFeatureFlags; -          mSafeModeEnabledVibrationEffect =                  effectHasCustomization(HapticFeedbackConstants.SAFE_MODE_ENABLED)                          ? mHapticCustomizations.get(HapticFeedbackConstants.SAFE_MODE_ENABLED) @@ -226,7 +219,7 @@ public final class HapticFeedbackVibrationProvider {          if (bypassVibrationIntensitySetting) {              flags |= VibrationAttributes.FLAG_BYPASS_USER_VIBRATION_INTENSITY_OFF;          } -        if (shouldBypassInterruptionPolicy(effectId, mViewFeatureFlags)) { +        if (shouldBypassInterruptionPolicy(effectId)) {              flags |= VibrationAttributes.FLAG_BYPASS_INTERRUPTION_POLICY;          }          if (shouldBypassIntensityScale(effectId)) { @@ -381,8 +374,7 @@ public final class HapticFeedbackVibrationProvider {          }      } -    private static boolean shouldBypassInterruptionPolicy( -            int effectId, FeatureFlags viewFeatureFlags) { +    private static boolean shouldBypassInterruptionPolicy(int effectId) {          switch (effectId) {              case HapticFeedbackConstants.SCROLL_TICK:              case HapticFeedbackConstants.SCROLL_ITEM_FOCUS: @@ -390,7 +382,7 @@ public final class HapticFeedbackVibrationProvider {                  // The SCROLL_* constants should bypass interruption filter, so that scroll haptics                  // can play regardless of focus modes like DND. Guard this behavior by the feature                  // flag controlling the general scroll feedback APIs. -                return viewFeatureFlags.scrollFeedbackApi(); +                return android.view.flags.Flags.scrollFeedbackApi();              default:                  return false;          } diff --git a/services/tests/vibrator/src/com/android/server/vibrator/HapticFeedbackVibrationProviderTest.java b/services/tests/vibrator/src/com/android/server/vibrator/HapticFeedbackVibrationProviderTest.java index 893cebacca4f..3d0dca0de87e 100644 --- a/services/tests/vibrator/src/com/android/server/vibrator/HapticFeedbackVibrationProviderTest.java +++ b/services/tests/vibrator/src/com/android/server/vibrator/HapticFeedbackVibrationProviderTest.java @@ -50,7 +50,6 @@ import android.os.vibrator.Flags;  import android.platform.test.flag.junit.SetFlagsRule;  import android.util.AtomicFile;  import android.util.SparseArray; -import android.view.flags.FeatureFlags;  import androidx.test.InstrumentationRegistry; @@ -87,9 +86,6 @@ public class HapticFeedbackVibrationProviderTest {      @Mock private Resources mResourcesMock; -    // TODO(305618021): Clean up the FeatureFlags with SetFlagsRule -    @Mock private FeatureFlags mViewFeatureFlags; -      @Test      public void testNonExistentCustomization_useDefault() throws Exception {          // No customization file is set. @@ -306,7 +302,7 @@ public class HapticFeedbackVibrationProviderTest {      @Test      public void testVibrationAttribute_scrollFeedback_scrollApiFlagOn_bypassInterruptPolicy() { -        when(mViewFeatureFlags.scrollFeedbackApi()).thenReturn(true); +        mSetFlagsRule.enableFlags(android.view.flags.Flags.FLAG_SCROLL_FEEDBACK_API);          HapticFeedbackVibrationProvider hapticProvider = createProviderWithDefaultCustomizations();          for (int effectId : SCROLL_FEEDBACK_CONSTANTS) { @@ -319,7 +315,7 @@ public class HapticFeedbackVibrationProviderTest {      @Test      public void testVibrationAttribute_scrollFeedback_scrollApiFlagOff_noBypassInterruptPolicy() { -        when(mViewFeatureFlags.scrollFeedbackApi()).thenReturn(false); +        mSetFlagsRule.disableFlags(android.view.flags.Flags.FLAG_SCROLL_FEEDBACK_API);          HapticFeedbackVibrationProvider hapticProvider = createProviderWithDefaultCustomizations();          for (int effectId : SCROLL_FEEDBACK_CONSTANTS) { @@ -394,8 +390,7 @@ public class HapticFeedbackVibrationProviderTest {      private HapticFeedbackVibrationProvider createProvider(              SparseArray<VibrationEffect> customizations) { -        return new HapticFeedbackVibrationProvider( -            mResourcesMock, mVibratorInfo, customizations, mViewFeatureFlags); +        return new HapticFeedbackVibrationProvider(mResourcesMock, mVibratorInfo, customizations);      }      private void mockVibratorPrimitiveSupport(int... supportedPrimitives) { diff --git a/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java index 40e0e84dca59..3dfaed69dea6 100644 --- a/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java +++ b/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java @@ -82,6 +82,7 @@ import android.os.vibrator.PrimitiveSegment;  import android.os.vibrator.StepSegment;  import android.os.vibrator.VibrationConfig;  import android.os.vibrator.VibrationEffectSegment; +import android.platform.test.flag.junit.SetFlagsRule;  import android.provider.Settings;  import android.util.ArraySet;  import android.util.SparseArray; @@ -89,7 +90,7 @@ import android.util.SparseBooleanArray;  import android.view.Display;  import android.view.HapticFeedbackConstants;  import android.view.InputDevice; -import android.view.flags.FeatureFlags; +import android.view.flags.Flags;  import androidx.test.InstrumentationRegistry;  import androidx.test.filters.FlakyTest; @@ -155,6 +156,8 @@ public class VibratorManagerServiceTest {      @Rule      public FakeSettingsProviderRule mSettingsProviderRule = FakeSettingsProvider.rule(); +    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); +      @Mock      private VibratorManagerService.NativeWrapper mNativeWrapperMock;      @Mock @@ -175,8 +178,6 @@ public class VibratorManagerServiceTest {      private VirtualDeviceManagerInternal mVirtualDeviceManagerInternalMock;      @Mock      private AudioManager mAudioManagerMock; -    @Mock -    private FeatureFlags mViewFeatureFlags;      private final Map<Integer, FakeVibratorControllerProvider> mVibratorProviders = new HashMap<>(); @@ -326,8 +327,7 @@ public class VibratorManagerServiceTest {                      HapticFeedbackVibrationProvider createHapticFeedbackVibrationProvider(                              Resources resources, VibratorInfo vibratorInfo) {                          return new HapticFeedbackVibrationProvider( -                                resources, vibratorInfo, mHapticFeedbackVibrationMap, -                                mViewFeatureFlags); +                                resources, vibratorInfo, mHapticFeedbackVibrationMap);                      }                  });          return mService; @@ -1354,7 +1354,7 @@ public class VibratorManagerServiceTest {          denyPermission(android.Manifest.permission.MODIFY_PHONE_STATE);          denyPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING);          // Flag override to enable the scroll feedack constants to bypass interruption policies. -        when(mViewFeatureFlags.scrollFeedbackApi()).thenReturn(true); +        mSetFlagsRule.enableFlags(Flags.FLAG_SCROLL_FEEDBACK_API);          mHapticFeedbackVibrationMap.put(                  HapticFeedbackConstants.SCROLL_TICK,                  VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));  |