Loading packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelTest.kt +11 −5 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.systemui.haptics.fakeVibratorHelper import com.android.systemui.kosmos.testScope import com.android.systemui.plugins.fakeVolumeDialogController import com.android.systemui.testKosmos import com.android.systemui.util.time.fakeSystemClock import com.android.systemui.volume.data.repository.audioSystemRepository import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi Loading Loading @@ -78,7 +79,7 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { val normalRingerMode = RingerMode(RINGER_MODE_NORMAL) setUpRingerModeAndOpenDrawer(normalRingerMode) underTest.onRingerButtonClicked(normalRingerMode) onRingerButtonClicked(normalRingerMode) controller.getState() assertThat(ringerViewModel).isInstanceOf(RingerViewModelState.Available::class.java) Loading @@ -95,7 +96,7 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { setUpRingerModeAndOpenDrawer(normalRingerMode) // Select vibrate ringer mode. underTest.onRingerButtonClicked(vibrateRingerMode) onRingerButtonClicked(vibrateRingerMode) controller.getState() runCurrent() Loading @@ -109,11 +110,11 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { val silentRingerMode = RingerMode(RINGER_MODE_SILENT) // Open drawer underTest.onRingerButtonClicked(vibrateRingerMode) onRingerButtonClicked(vibrateRingerMode) controller.getState() // Select silent ringer mode. underTest.onRingerButtonClicked(silentRingerMode) onRingerButtonClicked(silentRingerMode) controller.getState() runCurrent() Loading Loading @@ -152,11 +153,16 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { private fun TestScope.setUpRingerModeAndOpenDrawer(selectedRingerMode: RingerMode) { setUpRingerMode(selectedRingerMode) underTest.onRingerButtonClicked(RingerMode(selectedRingerMode.value)) onRingerButtonClicked(selectedRingerMode) controller.getState() runCurrent() } private fun TestScope.onRingerButtonClicked(ringerMode: RingerMode) { kosmos.fakeSystemClock.advanceTime(400L) underTest.onRingerButtonClicked(ringerMode) } private fun TestScope.setUpRingerMode(selectedRingerMode: RingerMode) { controller.setStreamVolume(STREAM_RING, 50) controller.setRingerMode(selectedRingerMode.value, false) Loading packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt +7 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.systemui.res.R import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.onConfigChanged import com.android.systemui.util.time.SystemClock import com.android.systemui.volume.Events import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog import com.android.systemui.volume.dialog.dagger.scope.VolumeDialogScope Loading @@ -56,6 +57,7 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch private const val DRAWER_STATE_ANIMATION_DURATION = 400L private const val SHOW_RINGER_TOAST_COUNT = 12 @VolumeDialogScope Loading @@ -71,6 +73,7 @@ constructor( private val volumeDialogLogger: VolumeDialogLogger, private val visibilityInteractor: VolumeDialogVisibilityInteractor, configurationController: ConfigurationController, private val systemClock: SystemClock, ) { private val drawerState = MutableStateFlow<RingerDrawerState>(RingerDrawerState.Initial) Loading Loading @@ -108,6 +111,7 @@ constructor( .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) .build() private var lastClickTime = 0L init { ringerViewModel .onEach { viewModelState -> Loading @@ -124,6 +128,9 @@ constructor( } fun onRingerButtonClicked(ringerMode: RingerMode, isSelectedButton: Boolean = false) { val currentTime = systemClock.currentTimeMillis() if (currentTime - lastClickTime < DRAWER_STATE_ANIMATION_DURATION) return lastClickTime = currentTime if (drawerState.value is RingerDrawerState.Open && !isSelectedButton) { Events.writeEvent(Events.EVENT_RINGER_TOGGLE, ringerMode.value) volumeDialogLogger.onRingerModeChanged(ringerMode) Loading packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelKosmos.kt +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.kosmos.testDispatcher import com.android.systemui.statusbar.notification.domain.interactor.notificationsSoundPolicyInteractor import com.android.systemui.statusbar.policy.configurationController import com.android.systemui.util.time.fakeSystemClock import com.android.systemui.util.time.systemClock import com.android.systemui.volume.dialog.domain.interactor.volumeDialogVisibilityInteractor import com.android.systemui.volume.dialog.ringer.domain.volumeDialogRingerInteractor import com.android.systemui.volume.dialog.shared.volumeDialogLogger Loading @@ -39,5 +41,6 @@ val Kosmos.volumeDialogRingerDrawerViewModel by volumeDialogLogger = volumeDialogLogger, visibilityInteractor = volumeDialogVisibilityInteractor, configurationController = configurationController, systemClock = fakeSystemClock, ) } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelTest.kt +11 −5 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.systemui.haptics.fakeVibratorHelper import com.android.systemui.kosmos.testScope import com.android.systemui.plugins.fakeVolumeDialogController import com.android.systemui.testKosmos import com.android.systemui.util.time.fakeSystemClock import com.android.systemui.volume.data.repository.audioSystemRepository import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi Loading Loading @@ -78,7 +79,7 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { val normalRingerMode = RingerMode(RINGER_MODE_NORMAL) setUpRingerModeAndOpenDrawer(normalRingerMode) underTest.onRingerButtonClicked(normalRingerMode) onRingerButtonClicked(normalRingerMode) controller.getState() assertThat(ringerViewModel).isInstanceOf(RingerViewModelState.Available::class.java) Loading @@ -95,7 +96,7 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { setUpRingerModeAndOpenDrawer(normalRingerMode) // Select vibrate ringer mode. underTest.onRingerButtonClicked(vibrateRingerMode) onRingerButtonClicked(vibrateRingerMode) controller.getState() runCurrent() Loading @@ -109,11 +110,11 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { val silentRingerMode = RingerMode(RINGER_MODE_SILENT) // Open drawer underTest.onRingerButtonClicked(vibrateRingerMode) onRingerButtonClicked(vibrateRingerMode) controller.getState() // Select silent ringer mode. underTest.onRingerButtonClicked(silentRingerMode) onRingerButtonClicked(silentRingerMode) controller.getState() runCurrent() Loading Loading @@ -152,11 +153,16 @@ class VolumeDialogRingerDrawerViewModelTest : SysuiTestCase() { private fun TestScope.setUpRingerModeAndOpenDrawer(selectedRingerMode: RingerMode) { setUpRingerMode(selectedRingerMode) underTest.onRingerButtonClicked(RingerMode(selectedRingerMode.value)) onRingerButtonClicked(selectedRingerMode) controller.getState() runCurrent() } private fun TestScope.onRingerButtonClicked(ringerMode: RingerMode) { kosmos.fakeSystemClock.advanceTime(400L) underTest.onRingerButtonClicked(ringerMode) } private fun TestScope.setUpRingerMode(selectedRingerMode: RingerMode) { controller.setStreamVolume(STREAM_RING, 50) controller.setRingerMode(selectedRingerMode.value, false) Loading
packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt +7 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.systemui.res.R import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.onConfigChanged import com.android.systemui.util.time.SystemClock import com.android.systemui.volume.Events import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog import com.android.systemui.volume.dialog.dagger.scope.VolumeDialogScope Loading @@ -56,6 +57,7 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch private const val DRAWER_STATE_ANIMATION_DURATION = 400L private const val SHOW_RINGER_TOAST_COUNT = 12 @VolumeDialogScope Loading @@ -71,6 +73,7 @@ constructor( private val volumeDialogLogger: VolumeDialogLogger, private val visibilityInteractor: VolumeDialogVisibilityInteractor, configurationController: ConfigurationController, private val systemClock: SystemClock, ) { private val drawerState = MutableStateFlow<RingerDrawerState>(RingerDrawerState.Initial) Loading Loading @@ -108,6 +111,7 @@ constructor( .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) .build() private var lastClickTime = 0L init { ringerViewModel .onEach { viewModelState -> Loading @@ -124,6 +128,9 @@ constructor( } fun onRingerButtonClicked(ringerMode: RingerMode, isSelectedButton: Boolean = false) { val currentTime = systemClock.currentTimeMillis() if (currentTime - lastClickTime < DRAWER_STATE_ANIMATION_DURATION) return lastClickTime = currentTime if (drawerState.value is RingerDrawerState.Open && !isSelectedButton) { Events.writeEvent(Events.EVENT_RINGER_TOGGLE, ringerMode.value) volumeDialogLogger.onRingerModeChanged(ringerMode) Loading
packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelKosmos.kt +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.kosmos.testDispatcher import com.android.systemui.statusbar.notification.domain.interactor.notificationsSoundPolicyInteractor import com.android.systemui.statusbar.policy.configurationController import com.android.systemui.util.time.fakeSystemClock import com.android.systemui.util.time.systemClock import com.android.systemui.volume.dialog.domain.interactor.volumeDialogVisibilityInteractor import com.android.systemui.volume.dialog.ringer.domain.volumeDialogRingerInteractor import com.android.systemui.volume.dialog.shared.volumeDialogLogger Loading @@ -39,5 +41,6 @@ val Kosmos.volumeDialogRingerDrawerViewModel by volumeDialogLogger = volumeDialogLogger, visibilityInteractor = volumeDialogVisibilityInteractor, configurationController = configurationController, systemClock = fakeSystemClock, ) }