diff options
| author | 2022-09-07 21:46:11 +0000 | |
|---|---|---|
| committer | 2022-09-07 22:17:54 +0000 | |
| commit | 935167436b2e638af3ce7e4a01ddb9bd1a13db22 (patch) | |
| tree | 4101a7240666d0bfca61c3a1d75f9bfaefbd6ba7 | |
| parent | 40db12e7c7d9579f9570ff57f6bc3f98fa7d7e99 (diff) | |
[Chipbar] Move the controller that was common between the media ttt
sender and media ttt receiver into a more generic
TemporaryViewDisplayController class.
Future CLs will pull all the media-specific code out of this generic
class.
Bug: 245610654
Test: media.taptotransfer tests
Test: temporarydisplay tests
Test: verify media ttt chip still works
Change-Id: I814c04068fbd2b02521dd9bf8b2794bb0273464b
9 files changed, 81 insertions, 100 deletions
diff --git a/packages/SystemUI/ktfmt_includes.txt b/packages/SystemUI/ktfmt_includes.txt index 51cc1954299f..689938aded44 100644 --- a/packages/SystemUI/ktfmt_includes.txt +++ b/packages/SystemUI/ktfmt_includes.txt @@ -240,8 +240,6 @@ -packages/SystemUI/src/com/android/systemui/media/nearby/NearbyMediaDevicesManager.kt -packages/SystemUI/src/com/android/systemui/media/taptotransfer/MediaTttCommandLineHelper.kt -packages/SystemUI/src/com/android/systemui/media/taptotransfer/MediaTttFlags.kt --packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt --packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt -packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttLogger.kt -packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ChipStateReceiver.kt -packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt @@ -529,6 +527,8 @@ -packages/SystemUI/src/com/android/systemui/statusbar/tv/VpnStatusObserver.kt -packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowModule.kt -packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt +-packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewInfo.kt +-packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayController.kt -packages/SystemUI/src/com/android/systemui/toast/ToastDefaultAnimation.kt -packages/SystemUI/src/com/android/systemui/toast/ToastLogger.kt -packages/SystemUI/src/com/android/systemui/tv/TVSystemUICoreStartableModule.kt @@ -677,7 +677,6 @@ -packages/SystemUI/tests/src/com/android/systemui/media/muteawait/MediaMuteAwaitConnectionManagerTest.kt -packages/SystemUI/tests/src/com/android/systemui/media/nearby/NearbyMediaDevicesManagerTest.kt -packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/MediaTttCommandLineHelperTest.kt --packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt -packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttLoggerTest.kt -packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt -packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt @@ -834,6 +833,7 @@ -packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/VariableDateViewControllerTest.kt -packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/WalletControllerImplTest.kt -packages/SystemUI/tests/src/com/android/systemui/statusbar/window/StatusBarWindowStateControllerTest.kt +-packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt -packages/SystemUI/tests/src/com/android/systemui/unfold/FoldStateLoggingProviderTest.kt -packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldLatencyTrackerTest.kt -packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldTransitionWallpaperControllerTest.kt 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 35a6c74518e0..4c2b1a570216 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 @@ -34,15 +34,14 @@ import com.android.settingslib.Utils import com.android.systemui.R import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main -import com.android.systemui.media.taptotransfer.common.ChipInfoCommon -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.policy.ConfigurationController +import com.android.systemui.temporarydisplay.DEFAULT_TIMEOUT_MILLIS +import com.android.systemui.temporarydisplay.TemporaryViewDisplayController +import com.android.systemui.temporarydisplay.TemporaryViewInfo import com.android.systemui.util.animation.AnimationUtil.Companion.frames import com.android.systemui.util.concurrency.DelayableExecutor -import com.android.systemui.util.view.ViewUtil import javax.inject.Inject /** @@ -56,18 +55,16 @@ class MediaTttChipControllerReceiver @Inject constructor( context: Context, @MediaTttReceiverLogger logger: MediaTttLogger, windowManager: WindowManager, - viewUtil: ViewUtil, mainExecutor: DelayableExecutor, accessibilityManager: AccessibilityManager, configurationController: ConfigurationController, powerManager: PowerManager, @Main private val mainHandler: Handler, private val uiEventLogger: MediaTttReceiverUiEventLogger, -) : MediaTttChipControllerCommon<ChipReceiverInfo>( +) : TemporaryViewDisplayController<ChipReceiverInfo>( context, logger, windowManager, - viewUtil, mainExecutor, accessibilityManager, configurationController, @@ -216,7 +213,7 @@ data class ChipReceiverInfo( val routeInfo: MediaRoute2Info, val appIconDrawableOverride: Drawable?, val appNameOverride: CharSequence? -) : ChipInfoCommon { +) : TemporaryViewInfo { override fun getTimeoutMs() = DEFAULT_TIMEOUT_MILLIS } 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 a153cb6c0d31..2b6eaba1a4e1 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 @@ -25,7 +25,7 @@ import androidx.annotation.StringRes import com.android.internal.logging.UiEventLogger import com.android.internal.statusbar.IUndoMediaTransferCallback import com.android.systemui.R -import com.android.systemui.media.taptotransfer.common.DEFAULT_TIMEOUT_MILLIS +import com.android.systemui.temporarydisplay.DEFAULT_TIMEOUT_MILLIS /** * A class enumerating all the possible states of the media tap-to-transfer chip on the sender 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 933548963390..9558e9b1c051 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 @@ -33,14 +33,13 @@ import com.android.systemui.animation.Interpolators import com.android.systemui.animation.ViewHierarchyAnimator import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main -import com.android.systemui.media.taptotransfer.common.ChipInfoCommon -import com.android.systemui.media.taptotransfer.common.MediaTttChipControllerCommon 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.policy.ConfigurationController +import com.android.systemui.temporarydisplay.TemporaryDisplayRemovalReason +import com.android.systemui.temporarydisplay.TemporaryViewDisplayController +import com.android.systemui.temporarydisplay.TemporaryViewInfo import com.android.systemui.util.concurrency.DelayableExecutor -import com.android.systemui.util.view.ViewUtil import javax.inject.Inject /** @@ -53,17 +52,15 @@ class MediaTttChipControllerSender @Inject constructor( context: Context, @MediaTttSenderLogger logger: MediaTttLogger, windowManager: WindowManager, - viewUtil: ViewUtil, @Main mainExecutor: DelayableExecutor, accessibilityManager: AccessibilityManager, configurationController: ConfigurationController, powerManager: PowerManager, private val uiEventLogger: MediaTttSenderUiEventLogger -) : MediaTttChipControllerCommon<ChipSenderInfo>( +) : TemporaryViewDisplayController<ChipSenderInfo>( context, logger, windowManager, - viewUtil, mainExecutor, accessibilityManager, configurationController, @@ -169,7 +166,7 @@ class MediaTttChipControllerSender @Inject constructor( // Don't remove the chip if we're mid-transfer since the user should still be able to // see the status of the transfer. (But do remove it if it's finally timed out.) if (chipInfo?.state?.isMidTransfer == true && - removalReason != MediaTttRemovalReason.REASON_TIMEOUT) { + removalReason != TemporaryDisplayRemovalReason.REASON_TIMEOUT) { return } super.removeChip(removalReason) @@ -188,7 +185,7 @@ data class ChipSenderInfo( val state: ChipStateSender, val routeInfo: MediaRoute2Info, val undoCallback: IUndoMediaTransferCallback? = null -) : ChipInfoCommon { +) : TemporaryViewInfo { override fun getTimeoutMs() = state.timeout } diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayController.kt index 3a0ac1b7d9b0..8805d310b44d 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayController.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.media.taptotransfer.common +package com.android.systemui.temporarydisplay import android.annotation.LayoutRes import android.annotation.SuppressLint @@ -37,30 +37,30 @@ 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.media.taptotransfer.common.MediaTttLogger import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.concurrency.DelayableExecutor -import com.android.systemui.util.view.ViewUtil /** - * A superclass controller that provides common functionality for showing chips on the sender device - * and the receiver device. + * A generic controller that can temporarily display a new view in a new window. * * Subclasses need to override and implement [updateChipView], which is where they can control what * gets displayed to the user. * * The generic type T is expected to contain all the information necessary for the subclasses to * display the chip in a certain state, since they receive <T> in [updateChipView]. + * + * TODO(b/245610654): Remove all the media-specific logic from this class. */ -abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>( - internal val context: Context, - internal val logger: MediaTttLogger, - internal val windowManager: WindowManager, - private val viewUtil: ViewUtil, - @Main private val mainExecutor: DelayableExecutor, - private val accessibilityManager: AccessibilityManager, - private val configurationController: ConfigurationController, - private val powerManager: PowerManager, - @LayoutRes private val chipLayoutRes: Int, +abstract class TemporaryViewDisplayController<T : TemporaryViewInfo>( + internal val context: Context, + internal val logger: MediaTttLogger, + internal val windowManager: WindowManager, + @Main private val mainExecutor: DelayableExecutor, + private val accessibilityManager: AccessibilityManager, + private val configurationController: ConfigurationController, + private val powerManager: PowerManager, + @LayoutRes private val chipLayoutRes: Int, ) { /** * Window layout params that will be used as a starting point for the [windowLayoutParams] of @@ -131,7 +131,7 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>( ) cancelChipViewTimeout?.run() cancelChipViewTimeout = mainExecutor.executeDelayed( - { removeChip(MediaTttRemovalReason.REASON_TIMEOUT) }, + { removeChip(TemporaryDisplayRemovalReason.REASON_TIMEOUT) }, timeout.toLong() ) } @@ -264,9 +264,9 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>( // Used in CTS tests UpdateMediaTapToTransferSenderDisplayTest and // UpdateMediaTapToTransferReceiverDisplayTest private const val WINDOW_TITLE = "Media Transfer Chip View" -private val TAG = MediaTttChipControllerCommon::class.simpleName!! +private val TAG = TemporaryViewDisplayController::class.simpleName!! -object MediaTttRemovalReason { +object TemporaryDisplayRemovalReason { const val REASON_TIMEOUT = "TIMEOUT" const val REASON_SCREEN_TAP = "SCREEN_TAP" } diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewInfo.kt index a29c5883118c..4fe753a80faf 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewInfo.kt @@ -14,17 +14,17 @@ * limitations under the License. */ -package com.android.systemui.media.taptotransfer.common +package com.android.systemui.temporarydisplay /** - * A superclass chip state that will be subclassed by the sender chip and receiver chip. + * A superclass view state used with [TemporaryViewDisplayController]. */ -interface ChipInfoCommon { +interface TemporaryViewInfo { /** - * Returns the amount of time the given chip state should display on the screen before it times + * Returns the amount of time the given view state should display on the screen before it times * out and disappears. */ - fun getTimeoutMs(): Long + fun getTimeoutMs(): Long = DEFAULT_TIMEOUT_MILLIS } const val DEFAULT_TIMEOUT_MILLIS = 10000L 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 171d893640d6..22f6e008ec62 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 @@ -41,7 +41,6 @@ import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.time.FakeSystemClock -import com.android.systemui.util.view.ViewUtil import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test @@ -74,8 +73,6 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { @Mock private lateinit var windowManager: WindowManager @Mock - private lateinit var viewUtil: ViewUtil - @Mock private lateinit var commandQueue: CommandQueue private lateinit var commandQueueCallback: CommandQueue.Callbacks private lateinit var fakeAppIconDrawable: Drawable @@ -102,7 +99,6 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { context, logger, windowManager, - viewUtil, FakeExecutor(FakeSystemClock()), accessibilityManager, configurationController, 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 1061e3c6b0d5..6aa60c2ba57a 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 @@ -42,7 +42,6 @@ import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.time.FakeSystemClock -import com.android.systemui.util.view.ViewUtil import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test @@ -51,8 +50,8 @@ import org.mockito.ArgumentCaptor import org.mockito.Mock import org.mockito.Mockito.never import org.mockito.Mockito.verify -import org.mockito.MockitoAnnotations import org.mockito.Mockito.`when` as whenever +import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidTestingRunner::class) @@ -75,8 +74,6 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { @Mock private lateinit var windowManager: WindowManager @Mock - private lateinit var viewUtil: ViewUtil - @Mock private lateinit var commandQueue: CommandQueue private lateinit var commandQueueCallback: CommandQueue.Callbacks private lateinit var fakeAppIconDrawable: Drawable @@ -110,7 +107,6 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { context, logger, windowManager, - viewUtil, fakeExecutor, accessibilityManager, configurationController, diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt index f1330682b0e1..40b151e0e522 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.media.taptotransfer.common +package com.android.systemui.temporarydisplay import android.content.Context import android.content.pm.ApplicationInfo @@ -30,6 +30,7 @@ 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.common.MediaTttLogger import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener import com.android.systemui.util.concurrency.DelayableExecutor @@ -38,7 +39,6 @@ import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.capture import com.android.systemui.util.time.FakeSystemClock -import com.android.systemui.util.view.ViewUtil import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test @@ -52,8 +52,8 @@ import org.mockito.Mockito.`when` as whenever import org.mockito.MockitoAnnotations @SmallTest -class MediaTttChipControllerCommonTest : SysuiTestCase() { - private lateinit var controllerCommon: TestControllerCommon +class TemporaryViewDisplayControllerTest : SysuiTestCase() { + private lateinit var underTest: TestController private lateinit var fakeClock: FakeSystemClock private lateinit var fakeExecutor: FakeExecutor @@ -72,8 +72,6 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Mock private lateinit var windowManager: WindowManager @Mock - private lateinit var viewUtil: ViewUtil - @Mock private lateinit var powerManager: PowerManager @Before @@ -97,11 +95,10 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { fakeClock = FakeSystemClock() fakeExecutor = FakeExecutor(fakeClock) - controllerCommon = TestControllerCommon( + underTest = TestController( context, logger, windowManager, - viewUtil, fakeExecutor, accessibilityManager, configurationController, @@ -111,7 +108,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Test fun displayChip_chipAdded() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) verify(windowManager).addView(any(), any()) } @@ -120,7 +117,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { fun displayChip_screenOff_screenWakes() { whenever(powerManager.isScreenOn).thenReturn(false) - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) verify(powerManager).wakeUp(any(), any(), any()) } @@ -129,24 +126,24 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { fun displayChip_screenAlreadyOn_screenNotWoken() { whenever(powerManager.isScreenOn).thenReturn(true) - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) verify(powerManager, never()).wakeUp(any(), any(), any()) } @Test fun displayChip_twice_chipNotAddedTwice() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) reset(windowManager) - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) verify(windowManager, never()).addView(any(), any()) } @Test fun displayChip_chipDoesNotDisappearsBeforeTimeout() { val state = getState() - controllerCommon.displayChip(state) + underTest.displayChip(state) reset(windowManager) fakeClock.advanceTime(TIMEOUT_MS - 1) @@ -157,7 +154,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Test fun displayChip_chipDisappearsAfterTimeout() { val state = getState() - controllerCommon.displayChip(state) + underTest.displayChip(state) reset(windowManager) fakeClock.advanceTime(TIMEOUT_MS + 1) @@ -169,12 +166,12 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { fun displayChip_calledAgainBeforeTimeout_timeoutReset() { // First, display the chip val state = getState() - controllerCommon.displayChip(state) + underTest.displayChip(state) // After some time, re-display the chip val waitTime = 1000L fakeClock.advanceTime(waitTime) - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) // Wait until the timeout for the first display would've happened fakeClock.advanceTime(TIMEOUT_MS - waitTime + 1) @@ -187,11 +184,11 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { fun displayChip_calledAgainBeforeTimeout_eventuallyTimesOut() { // First, display the chip val state = getState() - controllerCommon.displayChip(state) + underTest.displayChip(state) // After some time, re-display the chip fakeClock.advanceTime(1000L) - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) // Ensure we still hide the chip eventually fakeClock.advanceTime(TIMEOUT_MS + 1) @@ -201,25 +198,25 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Test fun displayScaleChange_chipReinflatedWithMostRecentState() { - controllerCommon.displayChip(getState(name = "First name")) - controllerCommon.displayChip(getState(name = "Second name")) + underTest.displayChip(getState(name = "First name")) + underTest.displayChip(getState(name = "Second name")) reset(windowManager) getConfigurationListener().onDensityOrFontScaleChanged() verify(windowManager).removeView(any()) verify(windowManager).addView(any(), any()) - assertThat(controllerCommon.mostRecentChipInfo?.name).isEqualTo("Second name") + assertThat(underTest.mostRecentChipInfo?.name).isEqualTo("Second name") } @Test fun removeChip_chipRemovedAndRemovalLogged() { // First, add the chip - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) // Then, remove it val reason = "test reason" - controllerCommon.removeChip(reason) + underTest.removeChip(reason) verify(windowManager).removeView(any()) verify(logger).logChipRemoval(reason) @@ -227,27 +224,27 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Test fun removeChip_noAdd_viewNotRemoved() { - controllerCommon.removeChip("reason") + underTest.removeChip("reason") verify(windowManager, never()).removeView(any()) } @Test fun setIcon_nullAppIconDrawableAndNullPackageName_stillHasIcon() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() - controllerCommon.setIcon(chipView, appPackageName = null, appIconDrawableOverride = null) + underTest.setIcon(chipView, appPackageName = null, appIconDrawableOverride = null) assertThat(chipView.getAppIconView().drawable).isNotNull() } @Test fun setIcon_nullAppIconDrawableAndInvalidPackageName_stillHasIcon() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() - controllerCommon.setIcon( + underTest.setIcon( chipView, appPackageName = "fakePackageName", appIconDrawableOverride = null ) @@ -256,41 +253,41 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Test fun setIcon_nullAppIconDrawable_iconIsFromPackageName() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() - controllerCommon.setIcon(chipView, PACKAGE_NAME, appIconDrawableOverride = null, null) + underTest.setIcon(chipView, PACKAGE_NAME, appIconDrawableOverride = null, null) assertThat(chipView.getAppIconView().drawable).isEqualTo(appIconFromPackageName) } @Test fun setIcon_hasAppIconDrawable_iconIsDrawable() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() val drawable = context.getDrawable(R.drawable.ic_alarm)!! - controllerCommon.setIcon(chipView, PACKAGE_NAME, drawable, null) + underTest.setIcon(chipView, PACKAGE_NAME, drawable, null) assertThat(chipView.getAppIconView().drawable).isEqualTo(drawable) } @Test fun setIcon_nullAppNameAndNullPackageName_stillHasContentDescription() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() - controllerCommon.setIcon(chipView, appPackageName = null, appNameOverride = null) + underTest.setIcon(chipView, appPackageName = null, appNameOverride = null) assertThat(chipView.getAppIconView().contentDescription.toString()).isNotEmpty() } @Test fun setIcon_nullAppNameAndInvalidPackageName_stillHasContentDescription() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() - controllerCommon.setIcon( + underTest.setIcon( chipView, appPackageName = "fakePackageName", appNameOverride = null ) @@ -299,31 +296,31 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Test fun setIcon_nullAppName_iconContentDescriptionIsFromPackageName() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() - controllerCommon.setIcon(chipView, PACKAGE_NAME, null, appNameOverride = null) + underTest.setIcon(chipView, PACKAGE_NAME, null, appNameOverride = null) assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) } @Test fun setIcon_hasAppName_iconContentDescriptionIsAppNameOverride() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() val appName = "Override App Name" - controllerCommon.setIcon(chipView, PACKAGE_NAME, null, appName) + underTest.setIcon(chipView, PACKAGE_NAME, null, appName) assertThat(chipView.getAppIconView().contentDescription).isEqualTo(appName) } @Test fun setIcon_iconSizeMatchesGetIconSize() { - controllerCommon.displayChip(getState()) + underTest.displayChip(getState()) val chipView = getChipView() - controllerCommon.setIcon(chipView, PACKAGE_NAME) + underTest.setIcon(chipView, PACKAGE_NAME) chipView.measure( View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED) @@ -349,20 +346,18 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { return callbackCaptor.value } - inner class TestControllerCommon( + inner class TestController( context: Context, logger: MediaTttLogger, windowManager: WindowManager, - viewUtil: ViewUtil, @Main mainExecutor: DelayableExecutor, accessibilityManager: AccessibilityManager, configurationController: ConfigurationController, powerManager: PowerManager, - ) : MediaTttChipControllerCommon<ChipInfo>( + ) : TemporaryViewDisplayController<ChipInfo>( context, logger, windowManager, - viewUtil, mainExecutor, accessibilityManager, configurationController, @@ -379,7 +374,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { override fun getIconSize(isAppIcon: Boolean): Int = ICON_SIZE } - inner class ChipInfo(val name: String) : ChipInfoCommon { + inner class ChipInfo(val name: String) : TemporaryViewInfo { override fun getTimeoutMs() = 1L } } |