Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 758c6a2a authored by Anton Potapov's avatar Anton Potapov Committed by Android (Google) Code Review
Browse files

Merge "Add overscroll animation to the Volume Dialog sliders" into main

parents e8d65c8d eebd136f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -71,6 +71,9 @@
        android:layout_height="0dp"
        android:layout_marginTop="@dimen/volume_dialog_floating_sliders_vertical_padding_negative"
        android:layout_marginBottom="@dimen/volume_dialog_floating_sliders_vertical_padding_negative"
        android:clipChildren="false"
        android:clipToOutline="false"
        android:clipToPadding="false"
        android:divider="@drawable/volume_dialog_floating_sliders_spacer"
        android:gravity="bottom"
        android:orientation="horizontal"
+2 −0
Original line number Diff line number Diff line
@@ -2106,6 +2106,8 @@

    <fraction name="volume_dialog_half_opened_bias">0.2</fraction>

    <dimen name="volume_dialog_slider_max_deviation">56dp</dimen>

    <dimen name="volume_dialog_background_square_corner_radius">12dp</dimen>

    <dimen name="volume_dialog_ringer_drawer_button_size">@dimen/volume_dialog_button_size</dimen>
+3 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.volume.dialog.sliders.dagger

import com.android.systemui.volume.dialog.sliders.domain.model.VolumeDialogSliderType
import com.android.systemui.volume.dialog.sliders.ui.VolumeDialogOverscrollViewBinder
import com.android.systemui.volume.dialog.sliders.ui.VolumeDialogSliderHapticsViewBinder
import com.android.systemui.volume.dialog.sliders.ui.VolumeDialogSliderTouchesViewBinder
import com.android.systemui.volume.dialog.sliders.ui.VolumeDialogSliderViewBinder
@@ -37,6 +38,8 @@ interface VolumeDialogSliderComponent {

    fun sliderHapticsViewBinder(): VolumeDialogSliderHapticsViewBinder

    fun overscrollViewBinder(): VolumeDialogOverscrollViewBinder

    @Subcomponent.Factory
    interface Factory {

+0 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.volume.dialog.sliders.data.repository

import android.annotation.SuppressLint
import android.view.MotionEvent
import com.android.systemui.volume.dialog.sliders.dagger.VolumeDialogSliderScope
import javax.inject.Inject
@@ -27,7 +26,6 @@ import kotlinx.coroutines.flow.filterNotNull
@VolumeDialogSliderScope
class VolumeDialogSliderTouchEventsRepository @Inject constructor() {

    @SuppressLint("SharedFlowCreation")
    private val mutableSliderTouchEvents: MutableStateFlow<MotionEvent?> = MutableStateFlow(null)
    val sliderTouchEvent: Flow<MotionEvent> = mutableSliderTouchEvents.filterNotNull()

+8 −2
Original line number Diff line number Diff line
@@ -17,14 +17,18 @@
package com.android.systemui.volume.dialog.sliders.domain.interactor

import com.android.systemui.plugins.VolumeDialogController
import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog
import com.android.systemui.volume.dialog.domain.interactor.VolumeDialogStateInteractor
import com.android.systemui.volume.dialog.shared.model.VolumeDialogStreamModel
import com.android.systemui.volume.dialog.sliders.dagger.VolumeDialogSliderScope
import com.android.systemui.volume.dialog.sliders.domain.model.VolumeDialogSliderType
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.stateIn

/** Operates a state of particular slider of the Volume Dialog. */
@VolumeDialogSliderScope
@@ -32,6 +36,7 @@ class VolumeDialogSliderInteractor
@Inject
constructor(
    private val sliderType: VolumeDialogSliderType,
    @VolumeDialog private val coroutineScope: CoroutineScope,
    volumeDialogStateInteractor: VolumeDialogStateInteractor,
    private val volumeDialogController: VolumeDialogController,
) {
@@ -47,7 +52,8 @@ constructor(
                    }
                }
            }
            .distinctUntilChanged()
            .stateIn(coroutineScope, SharingStarted.Eagerly, null)
            .filterNotNull()

    fun setStreamVolume(userLevel: Int) {
        with(volumeDialogController) {
Loading