Loading packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt +9 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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. */ Loading Loading @@ -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. Loading packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt +3 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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>( Loading @@ -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 { Loading packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt +3 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading @@ -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 Loading packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt +8 −4 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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() { Loading @@ -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 Loading Loading @@ -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, Loading @@ -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) { Loading packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt +4 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -97,6 +100,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { viewUtil, viewUtil, FakeExecutor(FakeSystemClock()), FakeExecutor(FakeSystemClock()), TapGestureDetector(context), TapGestureDetector(context), powerManager, Handler.getMain(), Handler.getMain(), receiverUiEventLogger, receiverUiEventLogger, ) ) Loading Loading
packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt +9 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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. */ Loading Loading @@ -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. Loading
packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt +3 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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>( Loading @@ -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 { Loading
packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt +3 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading @@ -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 Loading
packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt +8 −4 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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() { Loading @@ -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 Loading Loading @@ -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, Loading @@ -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) { Loading
packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt +4 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -97,6 +100,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { viewUtil, viewUtil, FakeExecutor(FakeSystemClock()), FakeExecutor(FakeSystemClock()), TapGestureDetector(context), TapGestureDetector(context), powerManager, Handler.getMain(), Handler.getMain(), receiverUiEventLogger, receiverUiEventLogger, ) ) Loading