Loading packages/SystemUI/src/com/android/systemui/volume/Events.java +7 −7 Original line number Diff line number Diff line Loading @@ -37,16 +37,16 @@ import java.util.Arrays; public class Events { private static final String TAG = Util.logTag(Events.class); public static final int EVENT_SHOW_DIALOG = 0; // (reason|int) (keyguard|bool) public static final int EVENT_DISMISS_DIALOG = 1; // (reason|int) @Deprecated public static final int EVENT_SHOW_DIALOG = 0; // (reason|int) (keyguard|bool) @Deprecated public static final int EVENT_DISMISS_DIALOG = 1; // (reason|int) public static final int EVENT_ACTIVE_STREAM_CHANGED = 2; // (stream|int) public static final int EVENT_EXPAND = 3; // (expand|bool) public static final int EVENT_KEY = 4; // (stream|int) (lastAudibleStreamVolume) public static final int EVENT_COLLECTION_STARTED = 5; public static final int EVENT_COLLECTION_STOPPED = 6; public static final int EVENT_ICON_CLICK = 7; // (stream|int) (icon_state|int) public static final int EVENT_SETTINGS_CLICK = 8; public static final int EVENT_TOUCH_LEVEL_CHANGED = 9; // (stream|int) (level|int) @Deprecated public static final int EVENT_ICON_CLICK = 7; // (stream|int) (icon_state|int) @Deprecated public static final int EVENT_SETTINGS_CLICK = 8; @Deprecated public static final int EVENT_TOUCH_LEVEL_CHANGED = 9; // (stream|int) (level|int) public static final int EVENT_LEVEL_CHANGED = 10; // (stream|int) (level|int) public static final int EVENT_INTERNAL_RINGER_MODE_CHANGED = 11; // (mode|int) public static final int EVENT_EXTERNAL_RINGER_MODE_CHANGED = 12; // (mode|int) Loading @@ -55,12 +55,12 @@ public class Events { public static final int EVENT_MUTE_CHANGED = 15; // (stream|int) (muted|bool) public static final int EVENT_TOUCH_LEVEL_DONE = 16; // (stream|int) (level|int) public static final int EVENT_ZEN_CONFIG_CHANGED = 17; // (allow/disallow|string) public static final int EVENT_RINGER_TOGGLE = 18; // (ringer_mode) @Deprecated public static final int EVENT_RINGER_TOGGLE = 18; // (ringer_mode) public static final int EVENT_SHOW_USB_OVERHEAT_ALARM = 19; // (reason|int) (keyguard|bool) public static final int EVENT_DISMISS_USB_OVERHEAT_ALARM = 20; // (reason|int) (keyguard|bool) public static final int EVENT_ODI_CAPTIONS_CLICK = 21; public static final int EVENT_ODI_CAPTIONS_TOOLTIP_CLICK = 22; public static final int EVENT_SLIDER_TOUCH_TRACKING = 23; // (tracking|bool) @Deprecated public static final int EVENT_SLIDER_TOUCH_TRACKING = 23; // (tracking|bool) private static final String[] EVENT_TAGS = { "show_dialog", Loading packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt +14 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.media.AudioManager.STREAM_RING import android.os.VibrationEffect import android.widget.Toast import com.android.internal.R as internalR import com.android.internal.logging.UiEventLogger import com.android.settingslib.Utils import com.android.settingslib.notification.domain.interactor.NotificationsSoundPolicyInteractor import com.android.settingslib.volume.shared.model.AudioStream Loading @@ -43,6 +44,7 @@ import com.android.systemui.volume.dialog.domain.interactor.VolumeDialogVisibili import com.android.systemui.volume.dialog.ringer.domain.VolumeDialogRingerInteractor import com.android.systemui.volume.dialog.ringer.shared.model.VolumeDialogRingerModel import com.android.systemui.volume.dialog.shared.VolumeDialogLogger import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent import javax.inject.Inject import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope Loading Loading @@ -73,6 +75,7 @@ constructor( private val volumeDialogLogger: VolumeDialogLogger, private val visibilityInteractor: VolumeDialogVisibilityInteractor, configurationController: ConfigurationController, private val uiEventLogger: UiEventLogger, private val systemClock: SystemClock, ) { Loading Loading @@ -112,6 +115,7 @@ constructor( .build() private var lastClickTime = 0L init { ringerViewModel .onEach { viewModelState -> Loading @@ -137,6 +141,7 @@ constructor( provideTouchFeedback(ringerMode) maybeShowToast(ringerMode) ringerInteractor.setRingerMode(ringerMode) ringerMode.toVolumeDialogUiEvent()?.let(uiEventLogger::log) } visibilityInteractor.resetDismissTimeout() drawerState.value = Loading Loading @@ -312,3 +317,12 @@ constructor( } } } private fun RingerMode.toVolumeDialogUiEvent(): VolumeDialogUiEvent? { return when (value) { RINGER_MODE_NORMAL -> VolumeDialogUiEvent.RINGER_MODE_NORMAL RINGER_MODE_VIBRATE -> VolumeDialogUiEvent.RINGER_MODE_VIBRATE RINGER_MODE_SILENT -> VolumeDialogUiEvent.RINGER_MODE_SILENT else -> null } } packages/SystemUI/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -32,12 +32,14 @@ import com.airbnb.lottie.SimpleColorFilter import com.airbnb.lottie.model.KeyPath import com.airbnb.lottie.value.LottieValueCallback import com.android.internal.R as internalR import com.android.internal.logging.UiEventLogger import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.UiBackground import com.android.systemui.lottie.await import com.android.systemui.res.R import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog import com.android.systemui.volume.dialog.settings.domain.VolumeDialogSettingsButtonInteractor import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent import com.android.systemui.volume.panel.component.mediaoutput.domain.interactor.MediaDeviceSessionInteractor import com.android.systemui.volume.panel.component.mediaoutput.domain.interactor.MediaOutputInteractor import com.android.systemui.volume.panel.shared.model.filterData Loading Loading @@ -71,6 +73,7 @@ constructor( mediaOutputInteractor: MediaOutputInteractor, private val mediaDeviceSessionInteractor: MediaDeviceSessionInteractor, private val interactor: VolumeDialogSettingsButtonInteractor, private val uiEventLogger: UiEventLogger, ) { @SuppressLint("UseCompatLoadingForDrawables") Loading Loading @@ -160,6 +163,7 @@ constructor( fun onButtonClicked() { interactor.onButtonClicked() uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SETTINGS_CLICK) } private data class PlaybackStates(val isPreviousActive: Boolean?, val isCurrentActive: Boolean) Loading packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt +11 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.interaction.DragInteraction import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.padding Loading Loading @@ -58,7 +59,6 @@ import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogSlide import com.android.systemui.volume.haptics.ui.VolumeHapticsConfigsProvider import javax.inject.Inject import kotlin.math.round import kotlin.math.roundToInt import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.isActive Loading Loading @@ -136,7 +136,7 @@ private fun VolumeDialogSlider( ) .also { sliderState -> sliderState.onValueChangeFinished = { viewModel.onStreamChangeFinished(sliderState.value.roundToInt()) viewModel.onSliderChangeFinished(sliderState.value) hapticsViewModel?.onValueChangeEnded() } sliderState.onValueChange = { newValue -> Loading @@ -161,6 +161,15 @@ private fun VolumeDialogSlider( hapticsViewModel?.onValueChange(value) } } LaunchedEffect(interactionSource) { interactionSource.interactions.collect { when (it) { is DragInteraction.Start -> viewModel.onSliderDragStarted() is DragInteraction.Cancel -> viewModel.onSliderDragFinished() is DragInteraction.Stop -> viewModel.onSliderDragFinished() } } } VerticalSlider( state = sliderState, Loading packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt +21 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.volume.dialog.sliders.ui.viewmodel import androidx.compose.ui.geometry.Offset import androidx.compose.ui.input.pointer.PointerEvent import androidx.compose.ui.input.pointer.PointerEventType import com.android.internal.logging.UiEventLogger import com.android.systemui.util.time.SystemClock import com.android.systemui.volume.Events import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog Loading @@ -30,6 +31,7 @@ import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialog import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialogSliderInteractor import com.android.systemui.volume.dialog.sliders.domain.model.VolumeDialogSliderType import com.android.systemui.volume.dialog.sliders.shared.model.SliderInputEvent import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent import javax.inject.Inject import kotlin.math.roundToInt import kotlinx.coroutines.CoroutineScope Loading Loading @@ -69,6 +71,7 @@ constructor( private val inputEventsInteractor: VolumeDialogSliderInputEventsInteractor, private val systemClock: SystemClock, private val logger: VolumeDialogLogger, private val uiEventLogger: UiEventLogger, ) { private val userVolumeUpdates = MutableStateFlow<VolumeUpdate?>(null) Loading Loading @@ -99,9 +102,11 @@ constructor( isMuted = isMuted, isRoutedToBluetooth = routedToBluetooth, ) is VolumeDialogSliderType.RemoteMediaStream -> { volumeDialogSliderIconProvider.getCastIcon(isMuted) } is VolumeDialogSliderType.AudioSharingStream -> { volumeDialogSliderIconProvider.getAudioSharingIcon(isMuted) } Loading Loading @@ -135,8 +140,19 @@ constructor( } } fun onStreamChangeFinished(volume: Int) { logger.onVolumeSliderAdjustmentFinished(volume = volume, stream = sliderType.audioStream) fun onSliderDragStarted() { uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SLIDER_STARTED_TRACKING_TOUCH) } fun onSliderDragFinished() { uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SLIDER_STOPPED_TRACKING_TOUCH) } fun onSliderChangeFinished(volume: Float) { logger.onVolumeSliderAdjustmentFinished( volume = volume.roundToInt(), stream = sliderType.audioStream, ) } fun onTouchEvent(pointerEvent: PointerEvent) { Loading @@ -146,14 +162,17 @@ constructor( inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.Start(position.x, position.y) ) PointerEventType.Move -> inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.Move(position.x, position.y) ) PointerEventType.Scroll -> inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.Move(position.x, position.y) ) PointerEventType.Release -> inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.End(position.x, position.y) Loading Loading
packages/SystemUI/src/com/android/systemui/volume/Events.java +7 −7 Original line number Diff line number Diff line Loading @@ -37,16 +37,16 @@ import java.util.Arrays; public class Events { private static final String TAG = Util.logTag(Events.class); public static final int EVENT_SHOW_DIALOG = 0; // (reason|int) (keyguard|bool) public static final int EVENT_DISMISS_DIALOG = 1; // (reason|int) @Deprecated public static final int EVENT_SHOW_DIALOG = 0; // (reason|int) (keyguard|bool) @Deprecated public static final int EVENT_DISMISS_DIALOG = 1; // (reason|int) public static final int EVENT_ACTIVE_STREAM_CHANGED = 2; // (stream|int) public static final int EVENT_EXPAND = 3; // (expand|bool) public static final int EVENT_KEY = 4; // (stream|int) (lastAudibleStreamVolume) public static final int EVENT_COLLECTION_STARTED = 5; public static final int EVENT_COLLECTION_STOPPED = 6; public static final int EVENT_ICON_CLICK = 7; // (stream|int) (icon_state|int) public static final int EVENT_SETTINGS_CLICK = 8; public static final int EVENT_TOUCH_LEVEL_CHANGED = 9; // (stream|int) (level|int) @Deprecated public static final int EVENT_ICON_CLICK = 7; // (stream|int) (icon_state|int) @Deprecated public static final int EVENT_SETTINGS_CLICK = 8; @Deprecated public static final int EVENT_TOUCH_LEVEL_CHANGED = 9; // (stream|int) (level|int) public static final int EVENT_LEVEL_CHANGED = 10; // (stream|int) (level|int) public static final int EVENT_INTERNAL_RINGER_MODE_CHANGED = 11; // (mode|int) public static final int EVENT_EXTERNAL_RINGER_MODE_CHANGED = 12; // (mode|int) Loading @@ -55,12 +55,12 @@ public class Events { public static final int EVENT_MUTE_CHANGED = 15; // (stream|int) (muted|bool) public static final int EVENT_TOUCH_LEVEL_DONE = 16; // (stream|int) (level|int) public static final int EVENT_ZEN_CONFIG_CHANGED = 17; // (allow/disallow|string) public static final int EVENT_RINGER_TOGGLE = 18; // (ringer_mode) @Deprecated public static final int EVENT_RINGER_TOGGLE = 18; // (ringer_mode) public static final int EVENT_SHOW_USB_OVERHEAT_ALARM = 19; // (reason|int) (keyguard|bool) public static final int EVENT_DISMISS_USB_OVERHEAT_ALARM = 20; // (reason|int) (keyguard|bool) public static final int EVENT_ODI_CAPTIONS_CLICK = 21; public static final int EVENT_ODI_CAPTIONS_TOOLTIP_CLICK = 22; public static final int EVENT_SLIDER_TOUCH_TRACKING = 23; // (tracking|bool) @Deprecated public static final int EVENT_SLIDER_TOUCH_TRACKING = 23; // (tracking|bool) private static final String[] EVENT_TAGS = { "show_dialog", Loading
packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt +14 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.media.AudioManager.STREAM_RING import android.os.VibrationEffect import android.widget.Toast import com.android.internal.R as internalR import com.android.internal.logging.UiEventLogger import com.android.settingslib.Utils import com.android.settingslib.notification.domain.interactor.NotificationsSoundPolicyInteractor import com.android.settingslib.volume.shared.model.AudioStream Loading @@ -43,6 +44,7 @@ import com.android.systemui.volume.dialog.domain.interactor.VolumeDialogVisibili import com.android.systemui.volume.dialog.ringer.domain.VolumeDialogRingerInteractor import com.android.systemui.volume.dialog.ringer.shared.model.VolumeDialogRingerModel import com.android.systemui.volume.dialog.shared.VolumeDialogLogger import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent import javax.inject.Inject import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope Loading Loading @@ -73,6 +75,7 @@ constructor( private val volumeDialogLogger: VolumeDialogLogger, private val visibilityInteractor: VolumeDialogVisibilityInteractor, configurationController: ConfigurationController, private val uiEventLogger: UiEventLogger, private val systemClock: SystemClock, ) { Loading Loading @@ -112,6 +115,7 @@ constructor( .build() private var lastClickTime = 0L init { ringerViewModel .onEach { viewModelState -> Loading @@ -137,6 +141,7 @@ constructor( provideTouchFeedback(ringerMode) maybeShowToast(ringerMode) ringerInteractor.setRingerMode(ringerMode) ringerMode.toVolumeDialogUiEvent()?.let(uiEventLogger::log) } visibilityInteractor.resetDismissTimeout() drawerState.value = Loading Loading @@ -312,3 +317,12 @@ constructor( } } } private fun RingerMode.toVolumeDialogUiEvent(): VolumeDialogUiEvent? { return when (value) { RINGER_MODE_NORMAL -> VolumeDialogUiEvent.RINGER_MODE_NORMAL RINGER_MODE_VIBRATE -> VolumeDialogUiEvent.RINGER_MODE_VIBRATE RINGER_MODE_SILENT -> VolumeDialogUiEvent.RINGER_MODE_SILENT else -> null } }
packages/SystemUI/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -32,12 +32,14 @@ import com.airbnb.lottie.SimpleColorFilter import com.airbnb.lottie.model.KeyPath import com.airbnb.lottie.value.LottieValueCallback import com.android.internal.R as internalR import com.android.internal.logging.UiEventLogger import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.UiBackground import com.android.systemui.lottie.await import com.android.systemui.res.R import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog import com.android.systemui.volume.dialog.settings.domain.VolumeDialogSettingsButtonInteractor import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent import com.android.systemui.volume.panel.component.mediaoutput.domain.interactor.MediaDeviceSessionInteractor import com.android.systemui.volume.panel.component.mediaoutput.domain.interactor.MediaOutputInteractor import com.android.systemui.volume.panel.shared.model.filterData Loading Loading @@ -71,6 +73,7 @@ constructor( mediaOutputInteractor: MediaOutputInteractor, private val mediaDeviceSessionInteractor: MediaDeviceSessionInteractor, private val interactor: VolumeDialogSettingsButtonInteractor, private val uiEventLogger: UiEventLogger, ) { @SuppressLint("UseCompatLoadingForDrawables") Loading Loading @@ -160,6 +163,7 @@ constructor( fun onButtonClicked() { interactor.onButtonClicked() uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SETTINGS_CLICK) } private data class PlaybackStates(val isPreviousActive: Boolean?, val isCurrentActive: Boolean) Loading
packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt +11 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.interaction.DragInteraction import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.padding Loading Loading @@ -58,7 +59,6 @@ import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogSlide import com.android.systemui.volume.haptics.ui.VolumeHapticsConfigsProvider import javax.inject.Inject import kotlin.math.round import kotlin.math.roundToInt import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.isActive Loading Loading @@ -136,7 +136,7 @@ private fun VolumeDialogSlider( ) .also { sliderState -> sliderState.onValueChangeFinished = { viewModel.onStreamChangeFinished(sliderState.value.roundToInt()) viewModel.onSliderChangeFinished(sliderState.value) hapticsViewModel?.onValueChangeEnded() } sliderState.onValueChange = { newValue -> Loading @@ -161,6 +161,15 @@ private fun VolumeDialogSlider( hapticsViewModel?.onValueChange(value) } } LaunchedEffect(interactionSource) { interactionSource.interactions.collect { when (it) { is DragInteraction.Start -> viewModel.onSliderDragStarted() is DragInteraction.Cancel -> viewModel.onSliderDragFinished() is DragInteraction.Stop -> viewModel.onSliderDragFinished() } } } VerticalSlider( state = sliderState, Loading
packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt +21 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.volume.dialog.sliders.ui.viewmodel import androidx.compose.ui.geometry.Offset import androidx.compose.ui.input.pointer.PointerEvent import androidx.compose.ui.input.pointer.PointerEventType import com.android.internal.logging.UiEventLogger import com.android.systemui.util.time.SystemClock import com.android.systemui.volume.Events import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog Loading @@ -30,6 +31,7 @@ import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialog import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialogSliderInteractor import com.android.systemui.volume.dialog.sliders.domain.model.VolumeDialogSliderType import com.android.systemui.volume.dialog.sliders.shared.model.SliderInputEvent import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent import javax.inject.Inject import kotlin.math.roundToInt import kotlinx.coroutines.CoroutineScope Loading Loading @@ -69,6 +71,7 @@ constructor( private val inputEventsInteractor: VolumeDialogSliderInputEventsInteractor, private val systemClock: SystemClock, private val logger: VolumeDialogLogger, private val uiEventLogger: UiEventLogger, ) { private val userVolumeUpdates = MutableStateFlow<VolumeUpdate?>(null) Loading Loading @@ -99,9 +102,11 @@ constructor( isMuted = isMuted, isRoutedToBluetooth = routedToBluetooth, ) is VolumeDialogSliderType.RemoteMediaStream -> { volumeDialogSliderIconProvider.getCastIcon(isMuted) } is VolumeDialogSliderType.AudioSharingStream -> { volumeDialogSliderIconProvider.getAudioSharingIcon(isMuted) } Loading Loading @@ -135,8 +140,19 @@ constructor( } } fun onStreamChangeFinished(volume: Int) { logger.onVolumeSliderAdjustmentFinished(volume = volume, stream = sliderType.audioStream) fun onSliderDragStarted() { uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SLIDER_STARTED_TRACKING_TOUCH) } fun onSliderDragFinished() { uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SLIDER_STOPPED_TRACKING_TOUCH) } fun onSliderChangeFinished(volume: Float) { logger.onVolumeSliderAdjustmentFinished( volume = volume.roundToInt(), stream = sliderType.audioStream, ) } fun onTouchEvent(pointerEvent: PointerEvent) { Loading @@ -146,14 +162,17 @@ constructor( inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.Start(position.x, position.y) ) PointerEventType.Move -> inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.Move(position.x, position.y) ) PointerEventType.Scroll -> inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.Move(position.x, position.y) ) PointerEventType.Release -> inputEventsInteractor.onTouchEvent( SliderInputEvent.Touch.End(position.x, position.y) Loading