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

Commit bb46dc3b authored by Darrell Shi's avatar Darrell Shi Committed by Android (Google) Code Review
Browse files

Merge "Animate window blur between hub and gone" into main

parents e5174f3f aa2895aa
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -21,8 +21,10 @@ import com.android.systemui.keyguard.ui.viewmodel.DozingToGlanceableHubTransitio
import com.android.systemui.keyguard.ui.viewmodel.DreamingToGlanceableHubTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToDozingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToGoneTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToOccludedTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GoneToGlanceableHubTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.LockscreenToGlanceableHubTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.OccludedToGlanceableHubTransitionViewModel
import dagger.Binds
@@ -70,4 +72,12 @@ interface GlanceableHubTransitionImplModule {
    @Binds
    @IntoSet
    fun toDozing(impl: GlanceableHubToDozingTransitionViewModel): GlanceableHubTransition

    @Binds
    @IntoSet
    fun fromGone(impl: GoneToGlanceableHubTransitionViewModel): GlanceableHubTransition

    @Binds
    @IntoSet
    fun toGone(impl: GlanceableHubToGoneTransitionViewModel): GlanceableHubTransition
}
+2 −0
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ constructor(
                    KeyguardState.OCCLUDED -> TO_OCCLUDED_DURATION
                    KeyguardState.ALTERNATE_BOUNCER -> TO_BOUNCER_DURATION
                    KeyguardState.PRIMARY_BOUNCER -> TO_BOUNCER_DURATION
                    KeyguardState.GONE -> TO_GONE_DURATION
                    else -> DEFAULT_DURATION
                }.inWholeMilliseconds
        }
@@ -257,5 +258,6 @@ constructor(
        val TO_BOUNCER_DURATION = 400.milliseconds
        val TO_OCCLUDED_DURATION = 450.milliseconds
        val TO_AOD_DURATION = 500.milliseconds
        val TO_GONE_DURATION = 100.milliseconds
    }
}
+49 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 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.keyguard.ui.viewmodel

import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.dagger.GlanceableHubBlurComponent
import com.android.systemui.keyguard.domain.interactor.FromGlanceableHubTransitionInteractor.Companion.TO_GONE_DURATION
import com.android.systemui.keyguard.shared.model.Edge
import com.android.systemui.keyguard.shared.model.KeyguardState.GLANCEABLE_HUB
import com.android.systemui.keyguard.shared.model.KeyguardState.GONE
import com.android.systemui.keyguard.ui.KeyguardTransitionAnimationFlow
import com.android.systemui.keyguard.ui.transitions.GlanceableHubTransition
import com.android.systemui.scene.shared.model.Scenes
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow

@SysUISingleton
class GlanceableHubToGoneTransitionViewModel
@Inject
constructor(
    animationFlow: KeyguardTransitionAnimationFlow,
    blurFactory: GlanceableHubBlurComponent.Factory,
) : GlanceableHubTransition {

    private val transitionAnimation =
        animationFlow
            .setup(
                duration = TO_GONE_DURATION,
                edge = Edge.create(from = Scenes.Communal, to = GONE),
            )
            .setupWithoutSceneContainer(edge = Edge.create(from = GLANCEABLE_HUB, to = GONE))

    override val windowBlurRadius: Flow<Float> =
        blurFactory.create(transitionAnimation).getBlurProvider().exitBlurRadius
}
+7 −1
Original line number Diff line number Diff line
@@ -17,12 +17,14 @@
package com.android.systemui.keyguard.ui.viewmodel

import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.dagger.GlanceableHubBlurComponent
import com.android.systemui.keyguard.domain.interactor.FromGoneTransitionInteractor.Companion.TO_GLANCEABLE_HUB_DURATION
import com.android.systemui.keyguard.shared.model.Edge
import com.android.systemui.keyguard.shared.model.KeyguardState.GLANCEABLE_HUB
import com.android.systemui.keyguard.shared.model.KeyguardState.GONE
import com.android.systemui.keyguard.ui.KeyguardTransitionAnimationFlow
import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
import com.android.systemui.keyguard.ui.transitions.GlanceableHubTransition
import javax.inject.Inject
import kotlin.time.Duration.Companion.milliseconds
import kotlinx.coroutines.flow.Flow
@@ -32,7 +34,8 @@ class GoneToGlanceableHubTransitionViewModel
@Inject
constructor(
    animationFlow: KeyguardTransitionAnimationFlow,
) : DeviceEntryIconTransition {
    blurFactory: GlanceableHubBlurComponent.Factory,
) : DeviceEntryIconTransition, GlanceableHubTransition {

    private val transitionAnimation =
        animationFlow
@@ -46,4 +49,7 @@ constructor(
            onCancel = { 1f },
            onFinish = { 1f },
        )

    override val windowBlurRadius: Flow<Float> =
        blurFactory.create(transitionAnimation).getBlurProvider().enterBlurRadius
}