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

Commit 7c4c5375 authored by Caitlin Cassidy's avatar Caitlin Cassidy
Browse files

[Media TTT] Remove the tap-to-dismiss option for the phone chip.

Test: manual (verified tapping the screen doesn't remove the ttt chip)
Fixes: 240986362
Change-Id: I0d063c25a25ea47f3db240b42e62531d8836b104
parent d9159854
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import android.os.PowerManager
import android.os.SystemClock
import android.util.Log
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
@@ -38,7 +37,6 @@ import com.android.internal.widget.CachingIconView
import com.android.settingslib.Utils
import com.android.systemui.R
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.statusbar.gesture.TapGestureDetector
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.util.view.ViewUtil
@@ -61,7 +59,6 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
        @Main private val mainExecutor: DelayableExecutor,
        private val accessibilityManager: AccessibilityManager,
        private val configurationController: ConfigurationController,
        private val tapGestureDetector: TapGestureDetector,
        private val powerManager: PowerManager,
        @LayoutRes private val chipLayoutRes: Int,
) {
@@ -111,7 +108,6 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
        } else {
            // The chip is new, so set up all our callbacks and inflate the view
            configurationController.addCallback(displayScaleListener)
            tapGestureDetector.addOnGestureDetectedCallback(TAG, this::onScreenTapped)
            // Wake the screen if necessary so the user will see the chip. (Per b/239426653, we want
            // the chip to show over the dream state, so we should only wake up if the screen is
            // completely off.)
@@ -176,7 +172,6 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
        if (chipView == null) { return }
        logger.logChipRemoval(removalReason)
        configurationController.removeCallback(displayScaleListener)
        tapGestureDetector.removeOnGestureDetectedCallback(TAG)
        windowManager.removeView(chipView)
        chipView = null
        chipInfo = null
@@ -261,15 +256,6 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
            isAppIcon = false
        )
    }

    private fun onScreenTapped(e: MotionEvent) {
        val view = chipView ?: return
        // If the tap is within the chip bounds, we shouldn't hide the chip (in case users think the
        // chip is tappable).
        if (!viewUtil.touchIsWithinView(view, e.x, e.y)) {
            removeChip(MediaTttRemovalReason.REASON_SCREEN_TAP)
        }
    }
}

// Used in CTS tests UpdateMediaTapToTransferSenderDisplayTest and
+0 −3
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ import com.android.systemui.media.taptotransfer.common.DEFAULT_TIMEOUT_MILLIS
import com.android.systemui.media.taptotransfer.common.MediaTttChipControllerCommon
import com.android.systemui.media.taptotransfer.common.MediaTttLogger
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.gesture.TapGestureDetector
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.util.animation.AnimationUtil.Companion.frames
import com.android.systemui.util.concurrency.DelayableExecutor
@@ -63,7 +62,6 @@ class MediaTttChipControllerReceiver @Inject constructor(
        mainExecutor: DelayableExecutor,
        accessibilityManager: AccessibilityManager,
        configurationController: ConfigurationController,
        tapGestureDetector: TapGestureDetector,
        powerManager: PowerManager,
        @Main private val mainHandler: Handler,
        private val uiEventLogger: MediaTttReceiverUiEventLogger,
@@ -75,7 +73,6 @@ class MediaTttChipControllerReceiver @Inject constructor(
        mainExecutor,
        accessibilityManager,
        configurationController,
        tapGestureDetector,
        powerManager,
        R.layout.media_ttt_chip_receiver,
) {
+0 −3
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ import com.android.systemui.media.taptotransfer.common.MediaTttChipControllerCom
import com.android.systemui.media.taptotransfer.common.MediaTttLogger
import com.android.systemui.media.taptotransfer.common.MediaTttRemovalReason
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.gesture.TapGestureDetector
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.util.view.ViewUtil
@@ -58,7 +57,6 @@ class MediaTttChipControllerSender @Inject constructor(
        @Main mainExecutor: DelayableExecutor,
        accessibilityManager: AccessibilityManager,
        configurationController: ConfigurationController,
        tapGestureDetector: TapGestureDetector,
        powerManager: PowerManager,
        private val uiEventLogger: MediaTttSenderUiEventLogger
) : MediaTttChipControllerCommon<ChipSenderInfo>(
@@ -69,7 +67,6 @@ class MediaTttChipControllerSender @Inject constructor(
        mainExecutor,
        accessibilityManager,
        configurationController,
        tapGestureDetector,
        powerManager,
        R.layout.media_ttt_chip,
) {
+3 −48
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
import android.os.PowerManager
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
@@ -31,7 +30,6 @@ import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.statusbar.gesture.TapGestureDetector
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener
import com.android.systemui.util.concurrency.DelayableExecutor
@@ -76,8 +74,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
    @Mock
    private lateinit var viewUtil: ViewUtil
    @Mock
    private lateinit var tapGestureDetector: TapGestureDetector
    @Mock
    private lateinit var powerManager: PowerManager

    @Before
@@ -109,17 +105,15 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
                fakeExecutor,
                accessibilityManager,
                configurationController,
                tapGestureDetector,
                powerManager,
        )
    }

    @Test
    fun displayChip_chipAddedAndGestureDetectionStarted() {
    fun displayChip_chipAdded() {
        controllerCommon.displayChip(getState())

        verify(windowManager).addView(any(), any())
        verify(tapGestureDetector).addOnGestureDetectedCallback(any(), any())
    }

    @Test
@@ -141,14 +135,12 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
    }

    @Test
    fun displayChip_twice_chipAndGestureDetectionNotAddedTwice() {
    fun displayChip_twice_chipNotAddedTwice() {
        controllerCommon.displayChip(getState())
        reset(windowManager)
        reset(tapGestureDetector)

        controllerCommon.displayChip(getState())
        verify(windowManager, never()).addView(any(), any())
        verify(tapGestureDetector, never()).addOnGestureDetectedCallback(any(), any())
    }

    @Test
@@ -221,7 +213,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
    }

    @Test
    fun removeChip_chipRemovedAndGestureDetectionStoppedAndRemovalLogged() {
    fun removeChip_chipRemovedAndRemovalLogged() {
        // First, add the chip
        controllerCommon.displayChip(getState())

@@ -230,7 +222,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
        controllerCommon.removeChip(reason)

        verify(windowManager).removeView(any())
        verify(tapGestureDetector).removeOnGestureDetectedCallback(any())
        verify(logger).logChipRemoval(reason)
    }

@@ -342,40 +333,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
        assertThat(chipView.getAppIconView().measuredHeight).isEqualTo(ICON_SIZE)
    }

    @Test
    fun tapGestureDetected_outsideViewBounds_viewHidden() {
        controllerCommon.displayChip(getState())
        whenever(viewUtil.touchIsWithinView(any(), any(), any())).thenReturn(false)
        val gestureCallbackCaptor = argumentCaptor<(MotionEvent) -> Unit>()
        verify(tapGestureDetector).addOnGestureDetectedCallback(
            any(), capture(gestureCallbackCaptor)
        )
        val callback = gestureCallbackCaptor.value!!

        callback.invoke(
            MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 0f, 0f, 0)
        )

        verify(windowManager).removeView(any())
    }

    @Test
    fun tapGestureDetected_insideViewBounds_viewNotHidden() {
        controllerCommon.displayChip(getState())
        whenever(viewUtil.touchIsWithinView(any(), any(), any())).thenReturn(true)
        val gestureCallbackCaptor = argumentCaptor<(MotionEvent) -> Unit>()
        verify(tapGestureDetector).addOnGestureDetectedCallback(
            any(), capture(gestureCallbackCaptor)
        )
        val callback = gestureCallbackCaptor.value!!

        callback.invoke(
            MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 0f, 0f, 0)
        )

        verify(windowManager, never()).removeView(any())
    }

    private fun getState(name: String = "name") = ChipInfo(name)

    private fun getChipView(): ViewGroup {
@@ -400,7 +357,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
        @Main mainExecutor: DelayableExecutor,
        accessibilityManager: AccessibilityManager,
        configurationController: ConfigurationController,
        tapGestureDetector: TapGestureDetector,
        powerManager: PowerManager,
    ) : MediaTttChipControllerCommon<ChipInfo>(
        context,
@@ -410,7 +366,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
        mainExecutor,
        accessibilityManager,
        configurationController,
        tapGestureDetector,
        powerManager,
        R.layout.media_ttt_chip,
    ) {
+0 −2
Original line number Diff line number Diff line
@@ -36,7 +36,6 @@ import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.media.taptotransfer.common.MediaTttLogger
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.gesture.TapGestureDetector
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.any
@@ -107,7 +106,6 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
            FakeExecutor(FakeSystemClock()),
            accessibilityManager,
            configurationController,
            TapGestureDetector(context),
            powerManager,
            Handler.getMain(),
            receiverUiEventLogger
Loading