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

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

Merge "Cleanup code before adding Kosmoses" into main

parents a39afd3f f3bca839
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ class VolumeDialogCallbacksInteractor
constructor(
    private val volumeDialogController: VolumeDialogController,
    @VolumeDialogPlugin private val coroutineScope: CoroutineScope,
    @Background private val bgHandler: Handler,
    @Background private val bgHandler: Handler?,
) {

    @SuppressLint("SharedFlowCreation") // event-bus needed
+0 −3
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ 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
import dagger.BindsInstance
import dagger.Subcomponent
@@ -34,8 +33,6 @@ interface VolumeDialogSliderComponent {

    fun sliderViewBinder(): VolumeDialogSliderViewBinder

    fun sliderTouchesViewBinder(): VolumeDialogSliderTouchesViewBinder

    fun sliderHapticsViewBinder(): VolumeDialogSliderHapticsViewBinder

    fun overscrollViewBinder(): VolumeDialogOverscrollViewBinder
+0 −41
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.volume.dialog.sliders.ui

import android.annotation.SuppressLint
import android.view.View
import com.android.systemui.res.R
import com.android.systemui.volume.dialog.sliders.dagger.VolumeDialogSliderScope
import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogSliderInputEventsViewModel
import com.google.android.material.slider.Slider
import javax.inject.Inject

@VolumeDialogSliderScope
class VolumeDialogSliderTouchesViewBinder
@Inject
constructor(private val viewModel: VolumeDialogSliderInputEventsViewModel) {

    @SuppressLint("ClickableViewAccessibility")
    fun bind(view: View) {
        with(view.requireViewById<Slider>(R.id.volume_dialog_slider)) {
            setOnTouchListener { _, event ->
                viewModel.onTouchEvent(event)
                false
            }
        }
    }
}
+10 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import androidx.dynamicanimation.animation.SpringAnimation
import androidx.dynamicanimation.animation.SpringForce
import com.android.systemui.res.R
import com.android.systemui.volume.dialog.sliders.dagger.VolumeDialogSliderScope
import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogSliderInputEventsViewModel
import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogSliderStateModel
import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogSliderViewModel
import com.google.android.material.slider.Slider
@@ -35,7 +36,10 @@ import kotlinx.coroutines.flow.onEach
@VolumeDialogSliderScope
class VolumeDialogSliderViewBinder
@Inject
constructor(private val viewModel: VolumeDialogSliderViewModel) {
constructor(
    private val viewModel: VolumeDialogSliderViewModel,
    private val inputViewModel: VolumeDialogSliderInputEventsViewModel,
) {

    private val sliderValueProperty =
        object : FloatPropertyCompat<Slider>("value") {
@@ -51,12 +55,16 @@ constructor(private val viewModel: VolumeDialogSliderViewModel) {
            dampingRatio = SpringForce.DAMPING_RATIO_NO_BOUNCY
        }

    @SuppressLint("ClickableViewAccessibility")
    fun CoroutineScope.bind(view: View) {
        var isInitialUpdate = true
        val sliderView: Slider = view.requireViewById(R.id.volume_dialog_slider)
        val animation = SpringAnimation(sliderView, sliderValueProperty)
        animation.spring = springForce

        sliderView.setOnTouchListener { _, event ->
            inputViewModel.onTouchEvent(event)
            false
        }
        sliderView.addOnChangeListener { _, value, fromUser ->
            viewModel.setStreamVolume(value.roundToInt(), fromUser)
        }
+0 −1
Original line number Diff line number Diff line
@@ -71,7 +71,6 @@ constructor(private val viewModel: VolumeDialogSlidersViewModel) {
        viewsToAnimate: Array<View>,
    ) {
        with(component.sliderViewBinder()) { bind(sliderContainer) }
        with(component.sliderTouchesViewBinder()) { bind(sliderContainer) }
        with(component.sliderHapticsViewBinder()) { bind(sliderContainer) }
        with(component.overscrollViewBinder()) { bind(sliderContainer, viewsToAnimate) }
    }
Loading