Merge "[Media TTT] Turn the screen on when the chip first displays." into tm-dev am: ba4caf4de1

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17086903

Change-Id: Ie7e97f5ad4b301ab2ce77de537410e6abef7b905
This commit is contained in:
Caitlin Cassidy
2022-03-07 19:30:00 +00:00
committed by Automerger Merge Worker
6 changed files with 31 additions and 4 deletions

View File

@@ -22,6 +22,8 @@ import android.content.Context
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.graphics.PixelFormat import android.graphics.PixelFormat
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.PowerManager
import android.os.SystemClock
import android.util.Log import android.util.Log
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
@@ -53,6 +55,7 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
private val viewUtil: ViewUtil, private val viewUtil: ViewUtil,
@Main private val mainExecutor: DelayableExecutor, @Main private val mainExecutor: DelayableExecutor,
private val tapGestureDetector: TapGestureDetector, private val tapGestureDetector: TapGestureDetector,
private val powerManager: PowerManager,
@LayoutRes private val chipLayoutRes: Int @LayoutRes private val chipLayoutRes: Int
) { ) {
/** The window layout parameters we'll use when attaching the view to a window. */ /** 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) { if (oldChipView == null) {
tapGestureDetector.addOnGestureDetectedCallback(TAG, this::onScreenTapped) tapGestureDetector.addOnGestureDetectedCallback(TAG, this::onScreenTapped)
windowManager.addView(chipView, windowLayoutParams) 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. // Cancel and re-set the chip timeout each time we get a new state.

View File

@@ -22,6 +22,7 @@ import android.graphics.drawable.Drawable
import android.graphics.drawable.Icon import android.graphics.drawable.Icon
import android.media.MediaRoute2Info import android.media.MediaRoute2Info
import android.os.Handler import android.os.Handler
import android.os.PowerManager
import android.util.Log import android.util.Log
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager import android.view.WindowManager
@@ -52,6 +53,7 @@ class MediaTttChipControllerReceiver @Inject constructor(
viewUtil: ViewUtil, viewUtil: ViewUtil,
mainExecutor: DelayableExecutor, mainExecutor: DelayableExecutor,
tapGestureDetector: TapGestureDetector, tapGestureDetector: TapGestureDetector,
powerManager: PowerManager,
@Main private val mainHandler: Handler, @Main private val mainHandler: Handler,
private val uiEventLogger: MediaTttReceiverUiEventLogger, private val uiEventLogger: MediaTttReceiverUiEventLogger,
) : MediaTttChipControllerCommon<ChipReceiverInfo>( ) : MediaTttChipControllerCommon<ChipReceiverInfo>(
@@ -61,6 +63,7 @@ class MediaTttChipControllerReceiver @Inject constructor(
viewUtil, viewUtil,
mainExecutor, mainExecutor,
tapGestureDetector, tapGestureDetector,
powerManager,
R.layout.media_ttt_chip_receiver R.layout.media_ttt_chip_receiver
) { ) {
private val commandQueueCallbacks = object : CommandQueue.Callbacks { private val commandQueueCallbacks = object : CommandQueue.Callbacks {

View File

@@ -19,6 +19,7 @@ package com.android.systemui.media.taptotransfer.sender
import android.app.StatusBarManager import android.app.StatusBarManager
import android.content.Context import android.content.Context
import android.media.MediaRoute2Info import android.media.MediaRoute2Info
import android.os.PowerManager
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@@ -51,6 +52,7 @@ class MediaTttChipControllerSender @Inject constructor(
viewUtil: ViewUtil, viewUtil: ViewUtil,
@Main mainExecutor: DelayableExecutor, @Main mainExecutor: DelayableExecutor,
tapGestureDetector: TapGestureDetector, tapGestureDetector: TapGestureDetector,
powerManager: PowerManager,
private val uiEventLogger: MediaTttSenderUiEventLogger private val uiEventLogger: MediaTttSenderUiEventLogger
) : MediaTttChipControllerCommon<ChipSenderInfo>( ) : MediaTttChipControllerCommon<ChipSenderInfo>(
context, context,
@@ -59,6 +61,7 @@ class MediaTttChipControllerSender @Inject constructor(
viewUtil, viewUtil,
mainExecutor, mainExecutor,
tapGestureDetector, tapGestureDetector,
powerManager,
R.layout.media_ttt_chip R.layout.media_ttt_chip
) { ) {
private var currentlyDisplayedChipState: ChipStateSender? = null private var currentlyDisplayedChipState: ChipStateSender? = null

View File

@@ -20,7 +20,7 @@ import android.content.Context
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.media.MediaRoute2Info import android.os.PowerManager
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@@ -30,7 +30,6 @@ import androidx.test.filters.SmallTest
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.dagger.qualifiers.Main 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.statusbar.gesture.TapGestureDetector
import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.concurrency.FakeExecutor
@@ -71,6 +70,8 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
private lateinit var viewUtil: ViewUtil private lateinit var viewUtil: ViewUtil
@Mock @Mock
private lateinit var tapGestureDetector: TapGestureDetector private lateinit var tapGestureDetector: TapGestureDetector
@Mock
private lateinit var powerManager: PowerManager
@Before @Before
fun setUp() { fun setUp() {
@@ -88,16 +89,17 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
fakeExecutor = FakeExecutor(fakeClock) fakeExecutor = FakeExecutor(fakeClock)
controllerCommon = TestControllerCommon( controllerCommon = TestControllerCommon(
context, logger, windowManager, viewUtil, fakeExecutor, tapGestureDetector context, logger, windowManager, viewUtil, fakeExecutor, tapGestureDetector, powerManager
) )
} }
@Test @Test
fun displayChip_chipAddedAndGestureDetectionStarted() { fun displayChip_chipAddedAndGestureDetectionStartedAndScreenOn() {
controllerCommon.displayChip(getState()) controllerCommon.displayChip(getState())
verify(windowManager).addView(any(), any()) verify(windowManager).addView(any(), any())
verify(tapGestureDetector).addOnGestureDetectedCallback(any(), any()) verify(tapGestureDetector).addOnGestureDetectedCallback(any(), any())
verify(powerManager).wakeUp(any(), any(), any())
} }
@Test @Test
@@ -281,6 +283,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
viewUtil: ViewUtil, viewUtil: ViewUtil,
@Main mainExecutor: DelayableExecutor, @Main mainExecutor: DelayableExecutor,
tapGestureDetector: TapGestureDetector, tapGestureDetector: TapGestureDetector,
powerManager: PowerManager
) : MediaTttChipControllerCommon<ChipInfo>( ) : MediaTttChipControllerCommon<ChipInfo>(
context, context,
logger, logger,
@@ -288,6 +291,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
viewUtil, viewUtil,
mainExecutor, mainExecutor,
tapGestureDetector, tapGestureDetector,
powerManager,
R.layout.media_ttt_chip R.layout.media_ttt_chip
) { ) {
override fun updateChipView(chipInfo: ChipInfo, currentChipView: ViewGroup) { override fun updateChipView(chipInfo: ChipInfo, currentChipView: ViewGroup) {

View File

@@ -22,6 +22,7 @@ import android.content.pm.PackageManager
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.media.MediaRoute2Info import android.media.MediaRoute2Info
import android.os.Handler import android.os.Handler
import android.os.PowerManager
import android.testing.AndroidTestingRunner import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import android.view.View import android.view.View
@@ -64,6 +65,8 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
@Mock @Mock
private lateinit var logger: MediaTttLogger private lateinit var logger: MediaTttLogger
@Mock @Mock
private lateinit var powerManager: PowerManager
@Mock
private lateinit var windowManager: WindowManager private lateinit var windowManager: WindowManager
@Mock @Mock
private lateinit var viewUtil: ViewUtil private lateinit var viewUtil: ViewUtil
@@ -97,6 +100,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
viewUtil, viewUtil,
FakeExecutor(FakeSystemClock()), FakeExecutor(FakeSystemClock()),
TapGestureDetector(context), TapGestureDetector(context),
powerManager,
Handler.getMain(), Handler.getMain(),
receiverUiEventLogger, receiverUiEventLogger,
) )

View File

@@ -21,6 +21,7 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.media.MediaRoute2Info import android.media.MediaRoute2Info
import android.os.PowerManager
import android.testing.AndroidTestingRunner import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import android.view.View import android.view.View
@@ -66,6 +67,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
@Mock @Mock
private lateinit var logger: MediaTttLogger private lateinit var logger: MediaTttLogger
@Mock @Mock
private lateinit var powerManager: PowerManager
@Mock
private lateinit var windowManager: WindowManager private lateinit var windowManager: WindowManager
@Mock @Mock
private lateinit var viewUtil: ViewUtil private lateinit var viewUtil: ViewUtil
@@ -103,6 +106,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
viewUtil, viewUtil,
fakeExecutor, fakeExecutor,
TapGestureDetector(context), TapGestureDetector(context),
powerManager,
senderUiEventLogger senderUiEventLogger
) )