Loading packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorTest.kt +12 −12 Original line number Diff line number Diff line Loading @@ -17,16 +17,17 @@ package com.android.systemui.volume.dialog.domain.interactor import android.app.ActivityManager import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.accessibility.data.repository.accessibilityRepository import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testScope import com.android.systemui.plugins.fakeVolumeDialogController import com.android.systemui.testKosmos import com.android.systemui.volume.Events import com.android.systemui.volume.dialog.shared.model.VolumeDialogSafetyWarningModel import com.android.systemui.volume.dialog.shared.model.VolumeDialogVisibilityModel import com.google.common.truth.Truth.assertThat import kotlin.time.Duration.Companion.days Loading @@ -34,7 +35,6 @@ import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -42,18 +42,19 @@ private val dialogTimeoutDuration = 3.seconds @SmallTest @RunWith(AndroidJUnit4::class) @TestableLooper.RunWithLooper @OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class) class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { private val kosmos: Kosmos = testKosmos() private lateinit var underTest: VolumeDialogVisibilityInteractor @Before fun setUp() { underTest = kosmos.volumeDialogVisibilityInteractor private val kosmos: Kosmos = testKosmos().apply { accessibilityRepository.setRecommendedTimeout(dialogTimeoutDuration) volumeDialogStateInteractor.setHovering(false) volumeDialogStateInteractor.setSafetyWarning(VolumeDialogSafetyWarningModel.Invisible) } private val underTest: VolumeDialogVisibilityInteractor = kosmos.volumeDialogVisibilityInteractor @Test fun testShowRequest_visible() = with(kosmos) { Loading Loading @@ -92,6 +93,7 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { runCurrent() fakeVolumeDialogController.onDismissRequested(Events.DISMISS_REASON_SCREEN_OFF) runCurrent() assertThat(visibilityModel!!) .isEqualTo( Loading @@ -105,7 +107,6 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { with(kosmos) { testScope.runTest { runCurrent() underTest.resetDismissTimeout() val visibilityModel by collectLastValue(underTest.dialogVisibility) fakeVolumeDialogController.onShowRequested( Events.SHOW_REASON_VOLUME_CHANGED, Loading @@ -126,7 +127,6 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { with(kosmos) { testScope.runTest { runCurrent() underTest.resetDismissTimeout() val visibilityModel by collectLastValue(underTest.dialogVisibility) fakeVolumeDialogController.onShowRequested( Events.SHOW_REASON_VOLUME_CHANGED, Loading packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/sliders/domain/interactor/VolumeDialogSliderInputEventsInteractorTest.kt +5 −10 Original line number Diff line number Diff line Loading @@ -17,10 +17,10 @@ package com.android.systemui.volume.dialog.sliders.domain.interactor import android.app.ActivityManager import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.accessibility.data.repository.accessibilityRepository import com.android.systemui.kosmos.collectLastValue import com.android.systemui.kosmos.testScope import com.android.systemui.plugins.fakeVolumeDialogController Loading @@ -35,24 +35,19 @@ import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.runner.RunWith private val volumeDialogTimeout = 3.seconds @SmallTest @RunWith(AndroidJUnit4::class) @TestableLooper.RunWithLooper class VolumeDialogSliderInputEventsInteractorTest : SysuiTestCase() { private val kosmos = testKosmos() private val kosmos = testKosmos().apply { accessibilityRepository.setRecommendedTimeout(volumeDialogTimeout) } private lateinit var underTest: VolumeDialogSliderInputEventsInteractor @Before fun setup() { underTest = kosmos.volumeDialogSliderInputEventsInteractor } private val underTest: VolumeDialogSliderInputEventsInteractor = kosmos.volumeDialogSliderInputEventsInteractor @Test fun inputEvents_resetDialogVisibilityTimeout() = Loading packages/SystemUI/res/values/styles.xml +0 −1 Original line number Diff line number Diff line Loading @@ -557,7 +557,6 @@ <item name="android:backgroundDimEnabled">false</item> <item name="android:showWhenLocked">true</item> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowFullscreen">true</item> <item name="android:windowIsFloating">false</item> <item name="android:windowNoTitle">true</item> Loading packages/SystemUI/src/com/android/systemui/accessibility/data/repository/AccessibilityRepository.kt +12 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import dagger.Module import dagger.Provides import kotlin.time.Duration import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged Loading @@ -32,6 +34,8 @@ interface AccessibilityRepository { /** @see [AccessibilityManager.isEnabled] */ val isEnabled: Flow<Boolean> fun getRecommendedTimeout(originalTimeout: Duration, uiFlags: Int): Duration companion object { operator fun invoke(a11yManager: AccessibilityManager): AccessibilityRepository = AccessibilityRepositoryImpl(a11yManager) Loading @@ -40,9 +44,8 @@ interface AccessibilityRepository { private const val TAG = "AccessibilityRepository" private class AccessibilityRepositoryImpl( manager: AccessibilityManager, ) : AccessibilityRepository { private class AccessibilityRepositoryImpl(private val manager: AccessibilityManager) : AccessibilityRepository { override val isTouchExplorationEnabled: Flow<Boolean> = tracedConflatedCallbackFlow(TAG) { val listener = TouchExplorationStateChangeListener(::trySend) Loading @@ -62,6 +65,12 @@ private class AccessibilityRepositoryImpl( tracedAwaitClose(TAG) { manager.removeAccessibilityStateChangeListener(listener) } } .distinctUntilChanged() override fun getRecommendedTimeout(originalTimeout: Duration, uiFlags: Int): Duration { return manager .getRecommendedTimeoutMillis(originalTimeout.inWholeMilliseconds.toInt(), uiFlags) .milliseconds } } @Module Loading packages/SystemUI/src/com/android/systemui/volume/dialog/VolumeDialog.kt +0 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.systemui.volume.dialog import android.content.Context import android.graphics.PixelFormat import android.os.Bundle import android.view.MotionEvent import android.view.View Loading Loading @@ -51,10 +50,8 @@ constructor( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED ) addPrivateFlags(WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY) setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY) setWindowAnimations(-1) setFormat(PixelFormat.TRANSLUCENT) attributes = attributes.apply { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorTest.kt +12 −12 Original line number Diff line number Diff line Loading @@ -17,16 +17,17 @@ package com.android.systemui.volume.dialog.domain.interactor import android.app.ActivityManager import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.accessibility.data.repository.accessibilityRepository import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testScope import com.android.systemui.plugins.fakeVolumeDialogController import com.android.systemui.testKosmos import com.android.systemui.volume.Events import com.android.systemui.volume.dialog.shared.model.VolumeDialogSafetyWarningModel import com.android.systemui.volume.dialog.shared.model.VolumeDialogVisibilityModel import com.google.common.truth.Truth.assertThat import kotlin.time.Duration.Companion.days Loading @@ -34,7 +35,6 @@ import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -42,18 +42,19 @@ private val dialogTimeoutDuration = 3.seconds @SmallTest @RunWith(AndroidJUnit4::class) @TestableLooper.RunWithLooper @OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class) class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { private val kosmos: Kosmos = testKosmos() private lateinit var underTest: VolumeDialogVisibilityInteractor @Before fun setUp() { underTest = kosmos.volumeDialogVisibilityInteractor private val kosmos: Kosmos = testKosmos().apply { accessibilityRepository.setRecommendedTimeout(dialogTimeoutDuration) volumeDialogStateInteractor.setHovering(false) volumeDialogStateInteractor.setSafetyWarning(VolumeDialogSafetyWarningModel.Invisible) } private val underTest: VolumeDialogVisibilityInteractor = kosmos.volumeDialogVisibilityInteractor @Test fun testShowRequest_visible() = with(kosmos) { Loading Loading @@ -92,6 +93,7 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { runCurrent() fakeVolumeDialogController.onDismissRequested(Events.DISMISS_REASON_SCREEN_OFF) runCurrent() assertThat(visibilityModel!!) .isEqualTo( Loading @@ -105,7 +107,6 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { with(kosmos) { testScope.runTest { runCurrent() underTest.resetDismissTimeout() val visibilityModel by collectLastValue(underTest.dialogVisibility) fakeVolumeDialogController.onShowRequested( Events.SHOW_REASON_VOLUME_CHANGED, Loading @@ -126,7 +127,6 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { with(kosmos) { testScope.runTest { runCurrent() underTest.resetDismissTimeout() val visibilityModel by collectLastValue(underTest.dialogVisibility) fakeVolumeDialogController.onShowRequested( Events.SHOW_REASON_VOLUME_CHANGED, Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/sliders/domain/interactor/VolumeDialogSliderInputEventsInteractorTest.kt +5 −10 Original line number Diff line number Diff line Loading @@ -17,10 +17,10 @@ package com.android.systemui.volume.dialog.sliders.domain.interactor import android.app.ActivityManager import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.accessibility.data.repository.accessibilityRepository import com.android.systemui.kosmos.collectLastValue import com.android.systemui.kosmos.testScope import com.android.systemui.plugins.fakeVolumeDialogController Loading @@ -35,24 +35,19 @@ import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.runner.RunWith private val volumeDialogTimeout = 3.seconds @SmallTest @RunWith(AndroidJUnit4::class) @TestableLooper.RunWithLooper class VolumeDialogSliderInputEventsInteractorTest : SysuiTestCase() { private val kosmos = testKosmos() private val kosmos = testKosmos().apply { accessibilityRepository.setRecommendedTimeout(volumeDialogTimeout) } private lateinit var underTest: VolumeDialogSliderInputEventsInteractor @Before fun setup() { underTest = kosmos.volumeDialogSliderInputEventsInteractor } private val underTest: VolumeDialogSliderInputEventsInteractor = kosmos.volumeDialogSliderInputEventsInteractor @Test fun inputEvents_resetDialogVisibilityTimeout() = Loading
packages/SystemUI/res/values/styles.xml +0 −1 Original line number Diff line number Diff line Loading @@ -557,7 +557,6 @@ <item name="android:backgroundDimEnabled">false</item> <item name="android:showWhenLocked">true</item> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowFullscreen">true</item> <item name="android:windowIsFloating">false</item> <item name="android:windowNoTitle">true</item> Loading
packages/SystemUI/src/com/android/systemui/accessibility/data/repository/AccessibilityRepository.kt +12 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import dagger.Module import dagger.Provides import kotlin.time.Duration import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged Loading @@ -32,6 +34,8 @@ interface AccessibilityRepository { /** @see [AccessibilityManager.isEnabled] */ val isEnabled: Flow<Boolean> fun getRecommendedTimeout(originalTimeout: Duration, uiFlags: Int): Duration companion object { operator fun invoke(a11yManager: AccessibilityManager): AccessibilityRepository = AccessibilityRepositoryImpl(a11yManager) Loading @@ -40,9 +44,8 @@ interface AccessibilityRepository { private const val TAG = "AccessibilityRepository" private class AccessibilityRepositoryImpl( manager: AccessibilityManager, ) : AccessibilityRepository { private class AccessibilityRepositoryImpl(private val manager: AccessibilityManager) : AccessibilityRepository { override val isTouchExplorationEnabled: Flow<Boolean> = tracedConflatedCallbackFlow(TAG) { val listener = TouchExplorationStateChangeListener(::trySend) Loading @@ -62,6 +65,12 @@ private class AccessibilityRepositoryImpl( tracedAwaitClose(TAG) { manager.removeAccessibilityStateChangeListener(listener) } } .distinctUntilChanged() override fun getRecommendedTimeout(originalTimeout: Duration, uiFlags: Int): Duration { return manager .getRecommendedTimeoutMillis(originalTimeout.inWholeMilliseconds.toInt(), uiFlags) .milliseconds } } @Module Loading
packages/SystemUI/src/com/android/systemui/volume/dialog/VolumeDialog.kt +0 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.systemui.volume.dialog import android.content.Context import android.graphics.PixelFormat import android.os.Bundle import android.view.MotionEvent import android.view.View Loading Loading @@ -51,10 +50,8 @@ constructor( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED ) addPrivateFlags(WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY) setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY) setWindowAnimations(-1) setFormat(PixelFormat.TRANSLUCENT) attributes = attributes.apply { Loading