summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt30
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt3
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt68
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt2
8 files changed, 32 insertions, 80 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt
index e95976f555f8..a29c5883118c 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt
@@ -27,4 +27,4 @@ interface ChipInfoCommon {
fun getTimeoutMs(): Long
}
-const val DEFAULT_TIMEOUT_MILLIS = 4000L
+const val DEFAULT_TIMEOUT_MILLIS = 10000L
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt
index 79e1fb9a60f6..5f478ce32590 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt
@@ -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,13 +108,16 @@ 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 so the user will see the chip
- powerManager.wakeUp(
- SystemClock.uptimeMillis(),
- PowerManager.WAKE_REASON_APPLICATION,
- "com.android.systemui:media_tap_to_transfer_activated"
- )
+ // 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.)
+ if (!powerManager.isScreenOn) {
+ powerManager.wakeUp(
+ SystemClock.uptimeMillis(),
+ PowerManager.WAKE_REASON_APPLICATION,
+ "com.android.systemui:media_tap_to_transfer_activated"
+ )
+ }
inflateAndUpdateChip(newChipInfo)
}
@@ -172,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
@@ -257,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
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt
index f0e5a3a63405..495f697f57e6 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt
@@ -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,
) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt
index cd86fff1c6f8..a153cb6c0d31 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt
@@ -243,6 +243,6 @@ enum class ChipStateSender(
// Give the Transfer*Triggered states a longer timeout since those states represent an active
// process and we should keep the user informed about it as long as possible (but don't allow it to
// continue indefinitely).
-private const val TRANSFER_TRIGGERED_TIMEOUT_MILLIS = 15000L
+private const val TRANSFER_TRIGGERED_TIMEOUT_MILLIS = 30000L
private const val TAG = "ChipStateSender"
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt
index 540798af9a77..3ea11b8aa4dd 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt
@@ -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,
) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt
index 55397868125b..f1330682b0e1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt
@@ -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,29 +105,42 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
fakeExecutor,
accessibilityManager,
configurationController,
- tapGestureDetector,
powerManager,
)
}
@Test
- fun displayChip_chipAddedAndGestureDetectionStartedAndScreenOn() {
+ fun displayChip_chipAdded() {
controllerCommon.displayChip(getState())
verify(windowManager).addView(any(), any())
- verify(tapGestureDetector).addOnGestureDetectedCallback(any(), any())
+ }
+
+ @Test
+ fun displayChip_screenOff_screenWakes() {
+ whenever(powerManager.isScreenOn).thenReturn(false)
+
+ controllerCommon.displayChip(getState())
+
verify(powerManager).wakeUp(any(), any(), any())
}
@Test
- fun displayChip_twice_chipAndGestureDetectionNotAddedTwice() {
+ fun displayChip_screenAlreadyOn_screenNotWoken() {
+ whenever(powerManager.isScreenOn).thenReturn(true)
+
+ controllerCommon.displayChip(getState())
+
+ verify(powerManager, never()).wakeUp(any(), any(), any())
+ }
+
+ @Test
+ 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
@@ -204,7 +213,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
}
@Test
- fun removeChip_chipRemovedAndGestureDetectionStoppedAndRemovalLogged() {
+ fun removeChip_chipRemovedAndRemovalLogged() {
// First, add the chip
controllerCommon.displayChip(getState())
@@ -213,7 +222,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
controllerCommon.removeChip(reason)
verify(windowManager).removeView(any())
- verify(tapGestureDetector).removeOnGestureDetectedCallback(any())
verify(logger).logChipRemoval(reason)
}
@@ -325,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 {
@@ -383,7 +357,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
@Main mainExecutor: DelayableExecutor,
accessibilityManager: AccessibilityManager,
configurationController: ConfigurationController,
- tapGestureDetector: TapGestureDetector,
powerManager: PowerManager,
) : MediaTttChipControllerCommon<ChipInfo>(
context,
@@ -393,7 +366,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
mainExecutor,
accessibilityManager,
configurationController,
- tapGestureDetector,
powerManager,
R.layout.media_ttt_chip,
) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt
index 7c5d07737313..dbc5f7c7041e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt
@@ -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
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt
index e06a27d6a272..cd8ee732e113 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt
@@ -37,7 +37,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
@@ -115,7 +114,6 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
fakeExecutor,
accessibilityManager,
configurationController,
- TapGestureDetector(context),
powerManager,
senderUiEventLogger
)