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

Commit 4e64d929 authored by Luna Zhang's avatar Luna Zhang
Browse files

On desktop, clicking volume dialog settings button should open quick settings shade

Bug: b/378513663
Test: Manually tested
Flag: com.android.systemui.qs_tile_detailed_view
Change-Id: I984f7b76632050ba561f5a01b81875961e8f24ce
parent 19f5e2e5
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -18,10 +18,12 @@ package com.android.systemui.volume.dialog.settings.domain

import android.app.ActivityManager
import com.android.app.tracing.coroutines.flow.flowName
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.statusbar.policy.DeviceProvisionedController
import com.android.systemui.volume.Events
import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog
import com.android.systemui.volume.dialog.dagger.scope.VolumeDialogScope
import com.android.systemui.volume.dialog.domain.interactor.DesktopAudioTileDetailsFeatureInteractor
import com.android.systemui.volume.dialog.domain.interactor.VolumeDialogVisibilityInteractor
import com.android.systemui.volume.dialog.shared.model.VolumeDialogVisibilityModel
import com.android.systemui.volume.panel.domain.interactor.VolumePanelGlobalStateInteractor
@@ -41,6 +43,8 @@ constructor(
    private val deviceProvisionedController: DeviceProvisionedController,
    private val volumePanelGlobalStateInteractor: VolumePanelGlobalStateInteractor,
    private val visibilityInteractor: VolumeDialogVisibilityInteractor,
    private val shadeInteractor: ShadeInteractor,
    private val desktopAudioTileDetailsFeatureInteractor: DesktopAudioTileDetailsFeatureInteractor,
) {

    val isVisible: StateFlow<Boolean> =
@@ -54,7 +58,15 @@ constructor(
            .stateIn(coroutineScope, SharingStarted.Eagerly, false)

    fun onButtonClicked() {
        if (desktopAudioTileDetailsFeatureInteractor.isEnabled()) {
            shadeInteractor.expandQuickSettingsShade(QS_SHADE_EXPAND_REASON)
        } else {
            volumePanelGlobalStateInteractor.setVisible(true)
        }
        visibilityInteractor.dismissDialog(Events.DISMISS_REASON_SETTINGS_CLICKED)
    }

    private companion object {
        const val QS_SHADE_EXPAND_REASON = "Volume dialog settings button clicked"
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@ package com.android.systemui.volume.dialog.settings.domain

import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.shade.domain.interactor.shadeInteractor
import com.android.systemui.statusbar.policy.deviceProvisionedController
import com.android.systemui.volume.dialog.domain.interactor.desktopAudioTileDetailsFeatureInteractor
import com.android.systemui.volume.dialog.domain.interactor.volumeDialogVisibilityInteractor
import com.android.systemui.volume.panel.domain.interactor.volumePanelGlobalStateInteractor

@@ -29,5 +31,7 @@ val Kosmos.volumeDialogSettingsButtonInteractor by
            deviceProvisionedController,
            volumePanelGlobalStateInteractor,
            volumeDialogVisibilityInteractor,
            shadeInteractor,
            desktopAudioTileDetailsFeatureInteractor,
        )
    }