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

Commit 6092b0d4 authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Add falsing to Long Clicks on UMO

Adds falsing check for long taps to make sure that long taps are
intended by users.

Bug: 241487855
Test: atest MediaControlPanelTest
Change-Id: I0f6be6321bca4af37605a7506b0053a5aa596724
parent a8fd186b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -373,6 +373,7 @@ public class MediaControlPanel {
        mMediaViewController.attach(player, MediaViewController.TYPE.PLAYER);

        vh.getPlayer().setOnLongClickListener(v -> {
            if (mFalsingManager.isFalseLongTap(FalsingManager.LOW_PENALTY)) return true;
            if (!mMediaViewController.isGutsVisible()) {
                openGuts();
                return true;
@@ -423,6 +424,7 @@ public class MediaControlPanel {
        mMediaViewController.attach(recommendations, MediaViewController.TYPE.RECOMMENDATION);

        mRecommendationViewHolder.getRecommendations().setOnLongClickListener(v -> {
            if (mFalsingManager.isFalseLongTap(FalsingManager.LOW_PENALTY)) return true;
            if (!mMediaViewController.isGutsVisible()) {
                openGuts();
                return true;
@@ -1191,6 +1193,7 @@ public class MediaControlPanel {
            setSmartspaceRecItemOnClickListener(mediaCoverContainer, recommendation, itemIndex);
            // Bubble up the long-click event to the card.
            mediaCoverContainer.setOnLongClickListener(v -> {
                if (mFalsingManager.isFalseLongTap(FalsingManager.LOW_PENALTY)) return true;
                View parent = (View) v.getParent();
                if (parent != null) {
                    parent.performLongClick();
+27 −0
Original line number Diff line number Diff line
@@ -1136,6 +1136,19 @@ public class MediaControlPanelTest : SysuiTestCase() {

    /* ***** Guts tests for the player ***** */

    @Test
    fun player_longClick_isFalse() {
        whenever(falsingManager.isFalseLongTap(FalsingManager.LOW_PENALTY)).thenReturn(true)
        player.attachPlayer(viewHolder)

        val captor = ArgumentCaptor.forClass(View.OnLongClickListener::class.java)
        verify(viewHolder.player).onLongClickListener = captor.capture()

        captor.value.onLongClick(viewHolder.player)
        verify(mediaViewController, never()).openGuts()
        verify(mediaViewController, never()).closeGuts()
    }

    @Test
    fun player_longClickWhenGutsClosed_gutsOpens() {
        player.attachPlayer(viewHolder)
@@ -1315,6 +1328,20 @@ public class MediaControlPanelTest : SysuiTestCase() {

    /* ***** Guts tests for the recommendations ***** */

    @Test
    fun recommendations_longClick_isFalse() {
        whenever(falsingManager.isFalseLongTap(FalsingManager.LOW_PENALTY)).thenReturn(true)
        player.attachRecommendation(recommendationViewHolder)
        player.bindRecommendation(smartspaceData)

        val captor = ArgumentCaptor.forClass(View.OnLongClickListener::class.java)
        verify(viewHolder.player).onLongClickListener = captor.capture()

        captor.value.onLongClick(viewHolder.player)
        verify(mediaViewController, never()).openGuts()
        verify(mediaViewController, never()).closeGuts()
    }

    @Test
    fun recommendations_longClickWhenGutsClosed_gutsOpens() {
        player.attachRecommendation(recommendationViewHolder)