Loading packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderStateModel.kt +0 −17 Original line number Diff line number Diff line Loading @@ -16,10 +16,7 @@ package com.android.systemui.volume.dialog.sliders.ui.viewmodel import android.content.Context import com.android.systemui.common.shared.model.Icon import com.android.systemui.volume.dialog.shared.model.VolumeDialogStreamModel import com.android.systemui.volume.dialog.shared.model.streamLabel data class VolumeDialogSliderStateModel( val value: Float, Loading @@ -28,17 +25,3 @@ data class VolumeDialogSliderStateModel( val icon: Icon.Loaded, val label: String, ) fun VolumeDialogStreamModel.toStateModel( context: Context, isDisabled: Boolean, icon: Icon.Loaded, ): VolumeDialogSliderStateModel { return VolumeDialogSliderStateModel( value = level.toFloat(), isDisabled = isDisabled, valueRange = levelMin.toFloat()..levelMax.toFloat(), icon = icon, label = streamLabel(context), ) } packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt +23 −22 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog import com.android.systemui.volume.dialog.domain.interactor.VolumeDialogVisibilityInteractor import com.android.systemui.volume.dialog.shared.VolumeDialogLogger import com.android.systemui.volume.dialog.shared.model.VolumeDialogStreamModel import com.android.systemui.volume.dialog.shared.model.streamLabel import com.android.systemui.volume.dialog.sliders.dagger.VolumeDialogSliderScope import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialogSliderInputEventsInteractor import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialogSliderInteractor Loading Loading @@ -76,20 +77,7 @@ constructor( ) { private val userVolumeUpdates = MutableStateFlow<VolumeUpdate?>(null) private val model: Flow<VolumeDialogStreamModel> = combine(interactor.slider, userVolumeUpdates) { model, currentVolumeUpdate -> currentVolumeUpdate ?: return@combine model val lastVolumeUpdateTime = currentVolumeUpdate.timestampMillis val shouldIgnoreUpdates = getTimestampMillis() - lastVolumeUpdateTime < VOLUME_UPDATE_GRACE_PERIOD if (shouldIgnoreUpdates) { model.copy(level = currentVolumeUpdate.newVolumeLevel) } else { model } } .stateIn(coroutineScope, SharingStarted.Eagerly, null) .filterNotNull() private val model: Flow<VolumeDialogStreamModel> = interactor.slider val state: Flow<VolumeDialogSliderStateModel> = combine( Loading Loading @@ -117,8 +105,24 @@ constructor( } } }, ) { isDisabledByZenMode, model, icon -> model.toStateModel(context = context, icon = icon, isDisabled = isDisabledByZenMode) userVolumeUpdates, ) { isDisabledByZenMode, model, icon, currentVolumeUpdate -> val shouldIgnoreUpdates = currentVolumeUpdate != null && getTimestampMillis() - currentVolumeUpdate.timestampMillis < VOLUME_UPDATE_GRACE_PERIOD VolumeDialogSliderStateModel( value = if (currentVolumeUpdate != null && shouldIgnoreUpdates) { currentVolumeUpdate.newVolumeLevel } else { model.level.toFloat() }, isDisabled = isDisabledByZenMode, valueRange = model.levelMin.toFloat()..model.levelMax.toFloat(), icon = icon, label = model.streamLabel(context), ) } .stateIn(coroutineScope, SharingStarted.Eagerly, null) .filterNotNull() Loading @@ -127,7 +131,7 @@ constructor( userVolumeUpdates .filterNotNull() .mapLatest { volume -> interactor.setStreamVolume(volume.newVolumeLevel) interactor.setStreamVolume(volume.newVolumeLevel.roundToInt()) Events.writeEvent(Events.EVENT_TOUCH_LEVEL_CHANGED, model.first().stream, volume) } .launchIn(coroutineScope) Loading @@ -137,10 +141,7 @@ constructor( if (fromUser) { visibilityInteractor.resetDismissTimeout() userVolumeUpdates.value = VolumeUpdate( newVolumeLevel = volume.roundToInt(), timestampMillis = getTimestampMillis(), ) VolumeUpdate(newVolumeLevel = volume, timestampMillis = getTimestampMillis()) } } Loading Loading @@ -186,5 +187,5 @@ constructor( private fun getTimestampMillis(): Long = systemClock.uptimeMillis() private data class VolumeUpdate(val newVolumeLevel: Int, val timestampMillis: Long) private data class VolumeUpdate(val newVolumeLevel: Float, val timestampMillis: Long) } Loading
packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderStateModel.kt +0 −17 Original line number Diff line number Diff line Loading @@ -16,10 +16,7 @@ package com.android.systemui.volume.dialog.sliders.ui.viewmodel import android.content.Context import com.android.systemui.common.shared.model.Icon import com.android.systemui.volume.dialog.shared.model.VolumeDialogStreamModel import com.android.systemui.volume.dialog.shared.model.streamLabel data class VolumeDialogSliderStateModel( val value: Float, Loading @@ -28,17 +25,3 @@ data class VolumeDialogSliderStateModel( val icon: Icon.Loaded, val label: String, ) fun VolumeDialogStreamModel.toStateModel( context: Context, isDisabled: Boolean, icon: Icon.Loaded, ): VolumeDialogSliderStateModel { return VolumeDialogSliderStateModel( value = level.toFloat(), isDisabled = isDisabled, valueRange = levelMin.toFloat()..levelMax.toFloat(), icon = icon, label = streamLabel(context), ) }
packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt +23 −22 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog import com.android.systemui.volume.dialog.domain.interactor.VolumeDialogVisibilityInteractor import com.android.systemui.volume.dialog.shared.VolumeDialogLogger import com.android.systemui.volume.dialog.shared.model.VolumeDialogStreamModel import com.android.systemui.volume.dialog.shared.model.streamLabel import com.android.systemui.volume.dialog.sliders.dagger.VolumeDialogSliderScope import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialogSliderInputEventsInteractor import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialogSliderInteractor Loading Loading @@ -76,20 +77,7 @@ constructor( ) { private val userVolumeUpdates = MutableStateFlow<VolumeUpdate?>(null) private val model: Flow<VolumeDialogStreamModel> = combine(interactor.slider, userVolumeUpdates) { model, currentVolumeUpdate -> currentVolumeUpdate ?: return@combine model val lastVolumeUpdateTime = currentVolumeUpdate.timestampMillis val shouldIgnoreUpdates = getTimestampMillis() - lastVolumeUpdateTime < VOLUME_UPDATE_GRACE_PERIOD if (shouldIgnoreUpdates) { model.copy(level = currentVolumeUpdate.newVolumeLevel) } else { model } } .stateIn(coroutineScope, SharingStarted.Eagerly, null) .filterNotNull() private val model: Flow<VolumeDialogStreamModel> = interactor.slider val state: Flow<VolumeDialogSliderStateModel> = combine( Loading Loading @@ -117,8 +105,24 @@ constructor( } } }, ) { isDisabledByZenMode, model, icon -> model.toStateModel(context = context, icon = icon, isDisabled = isDisabledByZenMode) userVolumeUpdates, ) { isDisabledByZenMode, model, icon, currentVolumeUpdate -> val shouldIgnoreUpdates = currentVolumeUpdate != null && getTimestampMillis() - currentVolumeUpdate.timestampMillis < VOLUME_UPDATE_GRACE_PERIOD VolumeDialogSliderStateModel( value = if (currentVolumeUpdate != null && shouldIgnoreUpdates) { currentVolumeUpdate.newVolumeLevel } else { model.level.toFloat() }, isDisabled = isDisabledByZenMode, valueRange = model.levelMin.toFloat()..model.levelMax.toFloat(), icon = icon, label = model.streamLabel(context), ) } .stateIn(coroutineScope, SharingStarted.Eagerly, null) .filterNotNull() Loading @@ -127,7 +131,7 @@ constructor( userVolumeUpdates .filterNotNull() .mapLatest { volume -> interactor.setStreamVolume(volume.newVolumeLevel) interactor.setStreamVolume(volume.newVolumeLevel.roundToInt()) Events.writeEvent(Events.EVENT_TOUCH_LEVEL_CHANGED, model.first().stream, volume) } .launchIn(coroutineScope) Loading @@ -137,10 +141,7 @@ constructor( if (fromUser) { visibilityInteractor.resetDismissTimeout() userVolumeUpdates.value = VolumeUpdate( newVolumeLevel = volume.roundToInt(), timestampMillis = getTimestampMillis(), ) VolumeUpdate(newVolumeLevel = volume, timestampMillis = getTimestampMillis()) } } Loading Loading @@ -186,5 +187,5 @@ constructor( private fun getTimestampMillis(): Long = systemClock.uptimeMillis() private data class VolumeUpdate(val newVolumeLevel: Int, val timestampMillis: Long) private data class VolumeUpdate(val newVolumeLevel: Float, val timestampMillis: Long) }