diff --git a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java index beaccbaf9a70b..e8e1f2e95f5db 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java @@ -231,7 +231,8 @@ public class BrightLineFalsingManager implements FalsingManager { // check for false tap if it is a seekbar interaction if (interactionType == MEDIA_SEEKBAR) { - localResult[0] &= isFalseTap(LOW_PENALTY); + localResult[0] &= isFalseTap(mFeatureFlags.isEnabled(Flags.MEDIA_FALSING_PENALTY) + ? FalsingManager.MODERATE_PENALTY : FalsingManager.LOW_PENALTY); } logDebug("False Gesture (type: " + interactionType + "): " + localResult[0]); diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index 002ffdb68682a..1faffb93a2fa6 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -291,6 +291,8 @@ object Flags { // TODO(b/254513168): Tracking Bug @JvmField val UMO_SURFACE_RIPPLE = unreleasedFlag(907, "umo_surface_ripple") + @JvmField val MEDIA_FALSING_PENALTY = unreleasedFlag(908, "media_falsing_media") + // 1000 - dock val SIMULATE_DOCK_THROUGH_CHARGING = releasedFlag(1000, "simulate_dock_through_charging") diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java index 215fa03c8c596..71752501a6c24 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java @@ -571,7 +571,10 @@ public class MediaControlPanel { seamlessView.setContentDescription(deviceString); seamlessView.setOnClickListener( v -> { - if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { + if (mFalsingManager.isFalseTap( + mFeatureFlags.isEnabled(Flags.MEDIA_FALSING_PENALTY) + ? FalsingManager.MODERATE_PENALTY : + FalsingManager.LOW_PENALTY)) { return; } @@ -994,7 +997,10 @@ public class MediaControlPanel { } else { button.setEnabled(true); button.setOnClickListener(v -> { - if (!mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { + if (!mFalsingManager.isFalseTap( + mFeatureFlags.isEnabled(Flags.MEDIA_FALSING_PENALTY) + ? FalsingManager.MODERATE_PENALTY : + FalsingManager.LOW_PENALTY)) { mLogger.logTapAction(button.getId(), mUid, mPackageName, mInstanceId); logSmartspaceCardReported(SMARTSPACE_CARD_CLICK_EVENT); action.run(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java index f8579fff488b1..0fadc138637ae 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java @@ -120,6 +120,7 @@ public class BrightLineClassifierTest extends SysuiTestCase { mGestureFinalizedListener = gestureCompleteListenerCaptor.getValue(); mFakeFeatureFlags.set(Flags.FALSING_FOR_LONG_TAPS, true); + mFakeFeatureFlags.set(Flags.MEDIA_FALSING_PENALTY, true); } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/models/player/SeekBarViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/models/player/SeekBarViewModelTest.kt index 7cd8e749a6e92..56c91bc4525d6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/models/player/SeekBarViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/models/player/SeekBarViewModelTest.kt @@ -42,6 +42,7 @@ import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.Mock import org.mockito.Mockito.any +import org.mockito.Mockito.anyInt import org.mockito.Mockito.eq import org.mockito.Mockito.mock import org.mockito.Mockito.never @@ -464,7 +465,7 @@ public class SeekBarViewModelTest : SysuiTestCase() { fun onFalseTapOrTouch() { whenever(mockController.getTransportControls()).thenReturn(mockTransport) whenever(falsingManager.isFalseTouch(Classifier.MEDIA_SEEKBAR)).thenReturn(true) - whenever(falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)).thenReturn(true) + whenever(falsingManager.isFalseTap(anyInt())).thenReturn(true) viewModel.updateController(mockController) val pos = 169 diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt index 1ad2ca9b9db39..b6dca28a2ff14 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt @@ -210,7 +210,10 @@ public class MediaControlPanelTest : SysuiTestCase() { private lateinit var recSubtitle3: TextView private var shouldShowBroadcastButton: Boolean = false private val fakeFeatureFlag = - FakeFeatureFlags().apply { this.set(Flags.UMO_SURFACE_RIPPLE, false) } + FakeFeatureFlags().apply { + this.set(Flags.UMO_SURFACE_RIPPLE, false) + this.set(Flags.MEDIA_FALSING_PENALTY, true) + } @JvmField @Rule val mockito = MockitoJUnit.rule()