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

Commit 74174793 authored by Aaron Liu's avatar Aaron Liu
Browse files

Add Media Carousel to compose lockscreen

Bug: 325302429
Test: play youtube video and then go on lockscreen.
Flag: ACONFIG com.android.systemui.compose_lockscreen DEVELOPMENT

Change-Id: I8ca3c59c851adb694d461c16dd4e5b7808f9be87
parent dd150d5c
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -35,11 +35,13 @@ import com.android.systemui.keyguard.ui.composable.section.AmbientIndicationSect
import com.android.systemui.keyguard.ui.composable.section.BottomAreaSection
import com.android.systemui.keyguard.ui.composable.section.DefaultClockSection
import com.android.systemui.keyguard.ui.composable.section.LockSection
import com.android.systemui.keyguard.ui.composable.section.MediaCarouselSection
import com.android.systemui.keyguard.ui.composable.section.NotificationSection
import com.android.systemui.keyguard.ui.composable.section.SettingsMenuSection
import com.android.systemui.keyguard.ui.composable.section.SmartSpaceSection
import com.android.systemui.keyguard.ui.composable.section.StatusBarSection
import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel
import com.android.systemui.media.controls.ui.composable.MediaCarousel
import com.android.systemui.res.R
import dagger.Binds
import dagger.Module
@@ -63,6 +65,7 @@ constructor(
    private val ambientIndicationSectionOptional: Optional<AmbientIndicationSection>,
    private val bottomAreaSection: BottomAreaSection,
    private val settingsMenuSection: SettingsMenuSection,
    private val mediaCarouselSection: MediaCarouselSection,
    private val clockInteractor: KeyguardClockInteractor,
) : ComposableLockscreenSceneBlueprint {

@@ -112,10 +115,16 @@ constructor(

                        if (viewModel.isLargeClockVisible) {
                            Spacer(modifier = Modifier.weight(weight = 1f))
                            with(clockSection) { LargeClock(modifier = Modifier.fillMaxWidth()) }
                            with(clockSection) {
                                LargeClock(
                                    modifier = Modifier.fillMaxWidth(),
                                )
                            }
                        }

                        with(mediaCarouselSection) { MediaCarousel() }

                        if (viewModel.areNotificationsVisible) {
                        if (viewModel.areNotificationsVisible(resources = resources)) {
                            with(notificationSection) {
                                Notifications(
                                    modifier = Modifier.fillMaxWidth().weight(weight = 1f)
+5 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.systemui.keyguard.ui.composable.section.AmbientIndicationSect
import com.android.systemui.keyguard.ui.composable.section.BottomAreaSection
import com.android.systemui.keyguard.ui.composable.section.DefaultClockSection
import com.android.systemui.keyguard.ui.composable.section.LockSection
import com.android.systemui.keyguard.ui.composable.section.MediaCarouselSection
import com.android.systemui.keyguard.ui.composable.section.NotificationSection
import com.android.systemui.keyguard.ui.composable.section.SettingsMenuSection
import com.android.systemui.keyguard.ui.composable.section.SmartSpaceSection
@@ -63,6 +64,7 @@ constructor(
    private val ambientIndicationSectionOptional: Optional<AmbientIndicationSection>,
    private val bottomAreaSection: BottomAreaSection,
    private val settingsMenuSection: SettingsMenuSection,
    private val mediaCarouselSection: MediaCarouselSection,
    private val clockInteractor: KeyguardClockInteractor,
) : ComposableLockscreenSceneBlueprint {

@@ -115,7 +117,9 @@ constructor(
                            with(clockSection) { LargeClock(modifier = Modifier.fillMaxWidth()) }
                        }

                        if (viewModel.areNotificationsVisible) {
                        with(mediaCarouselSection) { MediaCarousel() }

                        if (viewModel.areNotificationsVisible(resources = resources)) {
                            with(notificationSection) {
                                Notifications(
                                    modifier = Modifier.fillMaxWidth().weight(weight = 1f)
+17 −3
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.systemui.keyguard.ui.composable.section.AmbientIndicationSect
import com.android.systemui.keyguard.ui.composable.section.BottomAreaSection
import com.android.systemui.keyguard.ui.composable.section.DefaultClockSection
import com.android.systemui.keyguard.ui.composable.section.LockSection
import com.android.systemui.keyguard.ui.composable.section.MediaCarouselSection
import com.android.systemui.keyguard.ui.composable.section.NotificationSection
import com.android.systemui.keyguard.ui.composable.section.SettingsMenuSection
import com.android.systemui.keyguard.ui.composable.section.SmartSpaceSection
@@ -70,6 +71,7 @@ constructor(
    private val ambientIndicationSectionOptional: Optional<AmbientIndicationSection>,
    private val bottomAreaSection: BottomAreaSection,
    private val settingsMenuSection: SettingsMenuSection,
    private val mediaCarouselSection: MediaCarouselSection,
    private val clockInteractor: KeyguardClockInteractor,
    private val largeScreenHeaderHelper: LargeScreenHeaderHelper,
) : ComposableLockscreenSceneBlueprint {
@@ -100,6 +102,14 @@ constructor(
                                modifier = Modifier.fillMaxHeight().weight(weight = 1f),
                                horizontalAlignment = Alignment.CenterHorizontally,
                            ) {
                                with(clockSection) {
                                    SmallClock(
                                        burnInParams = burnIn.parameters,
                                        onTopChanged = burnIn.onSmallClockTopChanged,
                                        modifier = Modifier.fillMaxWidth(),
                                    )
                                }

                                with(smartSpaceSection) {
                                    SmartSpace(
                                        burnInParams = burnIn.parameters,
@@ -121,10 +131,14 @@ constructor(
                                    )
                                }

                                if (viewModel.isLargeClockVisible) {
                                    Spacer(modifier = Modifier.weight(weight = 1f))
                                    with(clockSection) { LargeClock() }
                                    Spacer(modifier = Modifier.weight(weight = 1f))
                                }

                                with(mediaCarouselSection) { MediaCarousel() }
                            }
                            with(notificationSection) {
                                val splitShadeTopMargin: Dp =
                                    if (Flags.centralizedStatusBarHeightFix()) {
+9 −1
Original line number Diff line number Diff line
@@ -41,12 +41,14 @@ import com.android.systemui.keyguard.ui.composable.LockscreenLongPress
import com.android.systemui.keyguard.ui.composable.section.AmbientIndicationSection
import com.android.systemui.keyguard.ui.composable.section.BottomAreaSection
import com.android.systemui.keyguard.ui.composable.section.LockSection
import com.android.systemui.keyguard.ui.composable.section.MediaCarouselSection
import com.android.systemui.keyguard.ui.composable.section.NotificationSection
import com.android.systemui.keyguard.ui.composable.section.SettingsMenuSection
import com.android.systemui.keyguard.ui.composable.section.SmartSpaceSection
import com.android.systemui.keyguard.ui.composable.section.StatusBarSection
import com.android.systemui.keyguard.ui.composable.section.WeatherClockSection
import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel
import com.android.systemui.media.controls.ui.composable.MediaCarousel
import com.android.systemui.res.R
import com.android.systemui.shade.LargeScreenHeaderHelper
import dagger.Binds
@@ -68,6 +70,7 @@ constructor(
    private val bottomAreaSection: BottomAreaSection,
    private val settingsMenuSection: SettingsMenuSection,
    private val clockInteractor: KeyguardClockInteractor,
    private val mediaCarouselSection: MediaCarouselSection,
) : ComposableLockscreenSceneBlueprint {

    override val id: String = WEATHER_CLOCK_BLUEPRINT_ID
@@ -107,7 +110,9 @@ constructor(
                            )
                        }

                        if (viewModel.areNotificationsVisible) {
                        with(mediaCarouselSection) { MediaCarousel() }

                        if (viewModel.areNotificationsVisible(resources = resources)) {
                            with(notificationSection) {
                                Notifications(
                                    modifier = Modifier.fillMaxWidth().weight(weight = 1f)
@@ -228,6 +233,7 @@ constructor(
    private val clockInteractor: KeyguardClockInteractor,
    private val largeScreenHeaderHelper: LargeScreenHeaderHelper,
    private val weatherClockSection: WeatherClockSection,
    private val mediaCarouselSection: MediaCarouselSection,
) : ComposableLockscreenSceneBlueprint {
    override val id: String = SPLIT_SHADE_WEATHER_CLOCK_BLUEPRINT_ID

@@ -276,6 +282,8 @@ constructor(
                                                ),
                                    )
                                }

                                with(mediaCarouselSection) { MediaCarousel() }
                            }
                            with(notificationSection) {
                                val splitShadeTopMargin: Dp =
+1 −7
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ import com.android.systemui.keyguard.ui.composable.modifier.onTopPlacementChange
import com.android.systemui.keyguard.ui.viewmodel.AodBurnInViewModel
import com.android.systemui.keyguard.ui.viewmodel.BurnInParameters
import com.android.systemui.keyguard.ui.viewmodel.KeyguardClockViewModel
import com.android.systemui.statusbar.lockscreen.LockscreenSmartspaceController
import javax.inject.Inject

/** Provides small clock and large clock composables for the default clock face. */
@@ -49,7 +48,6 @@ constructor(
    private val viewModel: KeyguardClockViewModel,
    private val clockInteractor: KeyguardClockInteractor,
    private val aodBurnInViewModel: AodBurnInViewModel,
    private val lockscreenSmartspaceController: LockscreenSmartspaceController,
) {

    @Composable
@@ -62,15 +60,11 @@ constructor(
        val currentClock by viewModel.currentClock.collectAsState()
        viewModel.clock = currentClock

        if (clockSize != KeyguardClockSwitch.SMALL) {
        if (clockSize != KeyguardClockSwitch.SMALL || currentClock?.smallClock?.view == null) {
            onTopChanged(null)
            return
        }

        if (currentClock?.smallClock?.view == null) {
            return
        }

        val view = LocalView.current

        DisposableEffect(view) {
Loading