diff options
| author | 2022-03-04 21:57:32 +0000 | |
|---|---|---|
| committer | 2022-03-04 21:57:32 +0000 | |
| commit | a6d273f8b64a8bb20b3ad70257cf5868d216ab1c (patch) | |
| tree | 03580306e687ff5e5a86c1a7d9e8b5a34a814f03 | |
| parent | 01a2ae47002e64bf99dd55611a4123293bcf5155 (diff) | |
[Media TTT] Turn the screen on when the chip first displays.
Fixes: 214415763
Test: manual: with the screen off, send an adb command and verify that
the screen automatically turns on and the chip is displayed
Test: MediaTttChipControllerCommonTest
Change-Id: I3cb9bf9b6c925744bb2ba3c43271e6d63ecfab58
6 files changed, 31 insertions, 4 deletions
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 81934a6b6a73..71cacac7f4df 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 @@ -22,6 +22,8 @@ import android.content.Context import android.content.pm.PackageManager import android.graphics.PixelFormat import android.graphics.drawable.Drawable +import android.os.PowerManager +import android.os.SystemClock import android.util.Log import android.view.Gravity import android.view.LayoutInflater @@ -53,6 +55,7 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>( private val viewUtil: ViewUtil, @Main private val mainExecutor: DelayableExecutor, private val tapGestureDetector: TapGestureDetector, + private val powerManager: PowerManager, @LayoutRes private val chipLayoutRes: Int ) { /** The window layout parameters we'll use when attaching the view to a window. */ @@ -95,6 +98,12 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>( if (oldChipView == null) { tapGestureDetector.addOnGestureDetectedCallback(TAG, this::onScreenTapped) windowManager.addView(chipView, windowLayoutParams) + // 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" + ) } // Cancel and re-set the chip timeout each time we get a new state. 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 3b94a1d9597e..44965d705802 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 @@ -22,6 +22,7 @@ import android.graphics.drawable.Drawable import android.graphics.drawable.Icon import android.media.MediaRoute2Info import android.os.Handler +import android.os.PowerManager import android.util.Log import android.view.ViewGroup import android.view.WindowManager @@ -52,6 +53,7 @@ class MediaTttChipControllerReceiver @Inject constructor( viewUtil: ViewUtil, mainExecutor: DelayableExecutor, tapGestureDetector: TapGestureDetector, + powerManager: PowerManager, @Main private val mainHandler: Handler, private val uiEventLogger: MediaTttReceiverUiEventLogger, ) : MediaTttChipControllerCommon<ChipReceiverInfo>( @@ -61,6 +63,7 @@ class MediaTttChipControllerReceiver @Inject constructor( viewUtil, mainExecutor, tapGestureDetector, + powerManager, R.layout.media_ttt_chip_receiver ) { private val commandQueueCallbacks = object : CommandQueue.Callbacks { 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 3e4cf9921bad..9f5ec7e1a330 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 @@ -19,6 +19,7 @@ package com.android.systemui.media.taptotransfer.sender import android.app.StatusBarManager import android.content.Context import android.media.MediaRoute2Info +import android.os.PowerManager import android.util.Log import android.view.View import android.view.ViewGroup @@ -51,6 +52,7 @@ class MediaTttChipControllerSender @Inject constructor( viewUtil: ViewUtil, @Main mainExecutor: DelayableExecutor, tapGestureDetector: TapGestureDetector, + powerManager: PowerManager, private val uiEventLogger: MediaTttSenderUiEventLogger ) : MediaTttChipControllerCommon<ChipSenderInfo>( context, @@ -59,6 +61,7 @@ class MediaTttChipControllerSender @Inject constructor( viewUtil, mainExecutor, tapGestureDetector, + powerManager, R.layout.media_ttt_chip ) { private var currentlyDisplayedChipState: ChipStateSender? = null 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 f99efe25c6eb..ccce5778c150 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 @@ -20,7 +20,7 @@ import android.content.Context import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.graphics.drawable.Drawable -import android.media.MediaRoute2Info +import android.os.PowerManager import android.view.MotionEvent import android.view.View import android.view.ViewGroup @@ -30,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.media.taptotransfer.receiver.ChipReceiverInfo import com.android.systemui.statusbar.gesture.TapGestureDetector import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.concurrency.FakeExecutor @@ -71,6 +70,8 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { private lateinit var viewUtil: ViewUtil @Mock private lateinit var tapGestureDetector: TapGestureDetector + @Mock + private lateinit var powerManager: PowerManager @Before fun setUp() { @@ -88,16 +89,17 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { fakeExecutor = FakeExecutor(fakeClock) controllerCommon = TestControllerCommon( - context, logger, windowManager, viewUtil, fakeExecutor, tapGestureDetector + context, logger, windowManager, viewUtil, fakeExecutor, tapGestureDetector, powerManager ) } @Test - fun displayChip_chipAddedAndGestureDetectionStarted() { + fun displayChip_chipAddedAndGestureDetectionStartedAndScreenOn() { controllerCommon.displayChip(getState()) verify(windowManager).addView(any(), any()) verify(tapGestureDetector).addOnGestureDetectedCallback(any(), any()) + verify(powerManager).wakeUp(any(), any(), any()) } @Test @@ -281,6 +283,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { viewUtil: ViewUtil, @Main mainExecutor: DelayableExecutor, tapGestureDetector: TapGestureDetector, + powerManager: PowerManager ) : MediaTttChipControllerCommon<ChipInfo>( context, logger, @@ -288,6 +291,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { viewUtil, mainExecutor, tapGestureDetector, + powerManager, R.layout.media_ttt_chip ) { override fun updateChipView(chipInfo: ChipInfo, currentChipView: ViewGroup) { 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 36b5761ca690..355d3fe4b8d1 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 @@ -22,6 +22,7 @@ import android.content.pm.PackageManager import android.graphics.drawable.Drawable import android.media.MediaRoute2Info import android.os.Handler +import android.os.PowerManager import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.View @@ -64,6 +65,8 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { @Mock private lateinit var logger: MediaTttLogger @Mock + private lateinit var powerManager: PowerManager + @Mock private lateinit var windowManager: WindowManager @Mock private lateinit var viewUtil: ViewUtil @@ -97,6 +100,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { viewUtil, FakeExecutor(FakeSystemClock()), 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 4ac7709071c8..ef5315428a60 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 @@ -21,6 +21,7 @@ import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.graphics.drawable.Drawable import android.media.MediaRoute2Info +import android.os.PowerManager import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.View @@ -66,6 +67,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { @Mock private lateinit var logger: MediaTttLogger @Mock + private lateinit var powerManager: PowerManager + @Mock private lateinit var windowManager: WindowManager @Mock private lateinit var viewUtil: ViewUtil @@ -103,6 +106,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { viewUtil, fakeExecutor, TapGestureDetector(context), + powerManager, senderUiEventLogger ) |