Loading packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/ColumnVolumeSliders.kt +3 −2 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ fun ColumnVolumeSliders( onValueChangeFinished = { sliderViewModel.onValueChangeFinished() }, onIconTapped = { sliderViewModel.toggleMuted(sliderState) }, sliderColors = sliderColors, hapticsViewModelFactory = sliderViewModel.hapticsViewModelFactory, hapticsViewModelFactory = sliderViewModel.getSliderHapticsViewModelFactory(), ) ExpandButton( Loading Loading @@ -142,7 +142,8 @@ fun ColumnVolumeSliders( onValueChangeFinished = { sliderViewModel.onValueChangeFinished() }, onIconTapped = { sliderViewModel.toggleMuted(sliderState) }, sliderColors = sliderColors, hapticsViewModelFactory = sliderViewModel.hapticsViewModelFactory, hapticsViewModelFactory = sliderViewModel.getSliderHapticsViewModelFactory(), ) } } Loading packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/GridVolumeSliders.kt +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ fun GridVolumeSliders( onValueChangeFinished = { sliderViewModel.onValueChangeFinished() }, onIconTapped = { sliderViewModel.toggleMuted(sliderState) }, sliderColors = sliderColors, hapticsViewModelFactory = sliderViewModel.hapticsViewModelFactory, hapticsViewModelFactory = sliderViewModel.getSliderHapticsViewModelFactory(), ) } } Loading packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt +3 −6 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import androidx.compose.ui.semantics.stateDescription import androidx.compose.ui.unit.dp import com.android.compose.PlatformSlider import com.android.compose.PlatformSliderColors import com.android.systemui.Flags import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.Icon import com.android.systemui.compose.modifiers.sysuiResTag Loading @@ -66,15 +65,15 @@ fun VolumeSlider( onIconTapped: () -> Unit, modifier: Modifier = Modifier, sliderColors: PlatformSliderColors, hapticsViewModelFactory: SliderHapticsViewModel.Factory, hapticsViewModelFactory: SliderHapticsViewModel.Factory?, ) { val value by valueState(state) val interactionSource = remember { MutableInteractionSource() } val sliderStepSize = 1f / (state.valueRange.endInclusive - state.valueRange.start) val hapticsViewModel: SliderHapticsViewModel? = if (Flags.hapticsForComposeSliders()) { hapticsViewModelFactory?.let { rememberViewModel(traceName = "SliderHapticsViewModel") { hapticsViewModelFactory.create( it.create( interactionSource, state.valueRange, Orientation.Horizontal, Loading @@ -93,8 +92,6 @@ fun VolumeSlider( ), ) } } else { null } // Perform haptics due to UI composition Loading packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt +10 −2 Original line number Diff line number Diff line Loading @@ -22,11 +22,13 @@ import android.media.AudioManager.STREAM_ALARM import android.media.AudioManager.STREAM_MUSIC import android.media.AudioManager.STREAM_NOTIFICATION import android.util.Log import com.android.app.tracing.coroutines.launchTraced as launch import com.android.internal.logging.UiEventLogger import com.android.settingslib.volume.domain.interactor.AudioVolumeInteractor import com.android.settingslib.volume.shared.model.AudioStream import com.android.settingslib.volume.shared.model.AudioStreamModel import com.android.settingslib.volume.shared.model.RingerMode import com.android.systemui.Flags import com.android.systemui.common.shared.model.Icon import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel import com.android.systemui.modes.shared.ModesUiIcons Loading @@ -49,7 +51,6 @@ import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.stateIn import com.android.app.tracing.coroutines.launchTraced as launch /** Models a particular slider state. */ class AudioStreamSliderViewModel Loading @@ -62,7 +63,7 @@ constructor( private val zenModeInteractor: ZenModeInteractor, private val uiEventLogger: UiEventLogger, private val volumePanelLogger: VolumePanelLogger, override val hapticsViewModelFactory: SliderHapticsViewModel.Factory, private val hapticsViewModelFactory: SliderHapticsViewModel.Factory, ) : SliderViewModel { private val volumeChanges = MutableStateFlow<Int?>(null) Loading Loading @@ -171,6 +172,13 @@ constructor( } } override fun getSliderHapticsViewModelFactory(): SliderHapticsViewModel.Factory? = if (Flags.hapticsForComposeSliders() && slider.value != SliderState.Empty) { hapticsViewModelFactory } else { null } private fun AudioStreamModel.toState( isEnabled: Boolean, ringerMode: RingerMode, Loading packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt +10 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.systemui.volume.panel.component.volume.slider.ui.viewmodel import android.content.Context import android.media.session.MediaController.PlaybackInfo import com.android.app.tracing.coroutines.launchTraced as launch import com.android.systemui.Flags import com.android.systemui.common.shared.model.Icon import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel import com.android.systemui.res.R Loading @@ -32,7 +34,6 @@ import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.stateIn import com.android.app.tracing.coroutines.launchTraced as launch class CastVolumeSliderViewModel @AssistedInject Loading @@ -41,7 +42,7 @@ constructor( @Assisted private val coroutineScope: CoroutineScope, private val context: Context, private val mediaDeviceSessionInteractor: MediaDeviceSessionInteractor, override val hapticsViewModelFactory: SliderHapticsViewModel.Factory, private val hapticsViewModelFactory: SliderHapticsViewModel.Factory, ) : SliderViewModel { override val slider: StateFlow<SliderState> = Loading @@ -62,6 +63,13 @@ constructor( // do nothing because this action isn't supported for Cast sliders. } override fun getSliderHapticsViewModelFactory(): SliderHapticsViewModel.Factory? = if (Flags.hapticsForComposeSliders() && slider.value != SliderState.Empty) { hapticsViewModelFactory } else { null } private fun PlaybackInfo.getCurrentState(): State { val volumeRange = 0..maxVolume return State( Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/ColumnVolumeSliders.kt +3 −2 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ fun ColumnVolumeSliders( onValueChangeFinished = { sliderViewModel.onValueChangeFinished() }, onIconTapped = { sliderViewModel.toggleMuted(sliderState) }, sliderColors = sliderColors, hapticsViewModelFactory = sliderViewModel.hapticsViewModelFactory, hapticsViewModelFactory = sliderViewModel.getSliderHapticsViewModelFactory(), ) ExpandButton( Loading Loading @@ -142,7 +142,8 @@ fun ColumnVolumeSliders( onValueChangeFinished = { sliderViewModel.onValueChangeFinished() }, onIconTapped = { sliderViewModel.toggleMuted(sliderState) }, sliderColors = sliderColors, hapticsViewModelFactory = sliderViewModel.hapticsViewModelFactory, hapticsViewModelFactory = sliderViewModel.getSliderHapticsViewModelFactory(), ) } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/GridVolumeSliders.kt +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ fun GridVolumeSliders( onValueChangeFinished = { sliderViewModel.onValueChangeFinished() }, onIconTapped = { sliderViewModel.toggleMuted(sliderState) }, sliderColors = sliderColors, hapticsViewModelFactory = sliderViewModel.hapticsViewModelFactory, hapticsViewModelFactory = sliderViewModel.getSliderHapticsViewModelFactory(), ) } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt +3 −6 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import androidx.compose.ui.semantics.stateDescription import androidx.compose.ui.unit.dp import com.android.compose.PlatformSlider import com.android.compose.PlatformSliderColors import com.android.systemui.Flags import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.Icon import com.android.systemui.compose.modifiers.sysuiResTag Loading @@ -66,15 +65,15 @@ fun VolumeSlider( onIconTapped: () -> Unit, modifier: Modifier = Modifier, sliderColors: PlatformSliderColors, hapticsViewModelFactory: SliderHapticsViewModel.Factory, hapticsViewModelFactory: SliderHapticsViewModel.Factory?, ) { val value by valueState(state) val interactionSource = remember { MutableInteractionSource() } val sliderStepSize = 1f / (state.valueRange.endInclusive - state.valueRange.start) val hapticsViewModel: SliderHapticsViewModel? = if (Flags.hapticsForComposeSliders()) { hapticsViewModelFactory?.let { rememberViewModel(traceName = "SliderHapticsViewModel") { hapticsViewModelFactory.create( it.create( interactionSource, state.valueRange, Orientation.Horizontal, Loading @@ -93,8 +92,6 @@ fun VolumeSlider( ), ) } } else { null } // Perform haptics due to UI composition Loading
packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt +10 −2 Original line number Diff line number Diff line Loading @@ -22,11 +22,13 @@ import android.media.AudioManager.STREAM_ALARM import android.media.AudioManager.STREAM_MUSIC import android.media.AudioManager.STREAM_NOTIFICATION import android.util.Log import com.android.app.tracing.coroutines.launchTraced as launch import com.android.internal.logging.UiEventLogger import com.android.settingslib.volume.domain.interactor.AudioVolumeInteractor import com.android.settingslib.volume.shared.model.AudioStream import com.android.settingslib.volume.shared.model.AudioStreamModel import com.android.settingslib.volume.shared.model.RingerMode import com.android.systemui.Flags import com.android.systemui.common.shared.model.Icon import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel import com.android.systemui.modes.shared.ModesUiIcons Loading @@ -49,7 +51,6 @@ import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.stateIn import com.android.app.tracing.coroutines.launchTraced as launch /** Models a particular slider state. */ class AudioStreamSliderViewModel Loading @@ -62,7 +63,7 @@ constructor( private val zenModeInteractor: ZenModeInteractor, private val uiEventLogger: UiEventLogger, private val volumePanelLogger: VolumePanelLogger, override val hapticsViewModelFactory: SliderHapticsViewModel.Factory, private val hapticsViewModelFactory: SliderHapticsViewModel.Factory, ) : SliderViewModel { private val volumeChanges = MutableStateFlow<Int?>(null) Loading Loading @@ -171,6 +172,13 @@ constructor( } } override fun getSliderHapticsViewModelFactory(): SliderHapticsViewModel.Factory? = if (Flags.hapticsForComposeSliders() && slider.value != SliderState.Empty) { hapticsViewModelFactory } else { null } private fun AudioStreamModel.toState( isEnabled: Boolean, ringerMode: RingerMode, Loading
packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt +10 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.systemui.volume.panel.component.volume.slider.ui.viewmodel import android.content.Context import android.media.session.MediaController.PlaybackInfo import com.android.app.tracing.coroutines.launchTraced as launch import com.android.systemui.Flags import com.android.systemui.common.shared.model.Icon import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel import com.android.systemui.res.R Loading @@ -32,7 +34,6 @@ import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.stateIn import com.android.app.tracing.coroutines.launchTraced as launch class CastVolumeSliderViewModel @AssistedInject Loading @@ -41,7 +42,7 @@ constructor( @Assisted private val coroutineScope: CoroutineScope, private val context: Context, private val mediaDeviceSessionInteractor: MediaDeviceSessionInteractor, override val hapticsViewModelFactory: SliderHapticsViewModel.Factory, private val hapticsViewModelFactory: SliderHapticsViewModel.Factory, ) : SliderViewModel { override val slider: StateFlow<SliderState> = Loading @@ -62,6 +63,13 @@ constructor( // do nothing because this action isn't supported for Cast sliders. } override fun getSliderHapticsViewModelFactory(): SliderHapticsViewModel.Factory? = if (Flags.hapticsForComposeSliders() && slider.value != SliderState.Empty) { hapticsViewModelFactory } else { null } private fun PlaybackInfo.getCurrentState(): State { val volumeRange = 0..maxVolume return State( Loading