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

Commit f8b9ab05 authored by Issei Suzuki's avatar Issei Suzuki Committed by Automerger Merge Worker
Browse files

Merge "Enable remote animation for keygaurd going away." into sc-dev am: 30de424d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14187467

Change-Id: Id9e899dd4ca6a52f2cc505626f95fcd1fad7216f
parents bbee8f83 30de424d
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import com.android.internal.policy.IKeyguardExitCallback;
import com.android.internal.policy.IKeyguardService;
import com.android.internal.policy.IKeyguardStateCallback;
import com.android.systemui.SystemUIApplication;
import com.android.wm.shell.transition.Transitions;

import javax.inject.Inject;

@@ -62,16 +63,29 @@ public class KeyguardService extends Service {
     * Run Keyguard animation as remote animation in System UI instead of local animation in
     * the server process.
     *
     * 0: Runs all keyguard animation as local animation
     * 1: Only runs keyguard going away animation as remote animation
     * 2: Runs all keyguard animation as remote animation
     *
     * Note: Must be consistent with WindowManagerService.
     */
    private static final String ENABLE_REMOTE_KEYGUARD_ANIMATION_PROPERTY =
            "persist.wm.enable_remote_keyguard_animation";

    private static final int sEnableRemoteKeyguardAnimation =
            SystemProperties.getInt(ENABLE_REMOTE_KEYGUARD_ANIMATION_PROPERTY, 1);

    /**
     * @see #ENABLE_REMOTE_KEYGUARD_ANIMATION_PROPERTY
     */
    static boolean sEnableRemoteKeyguardAnimation =
            SystemProperties.getBoolean(ENABLE_REMOTE_KEYGUARD_ANIMATION_PROPERTY, false);
    public static boolean sEnableRemoteKeyguardGoingAwayAnimation =
            !Transitions.ENABLE_SHELL_TRANSITIONS && sEnableRemoteKeyguardAnimation >= 1;

    /**
     * @see #ENABLE_REMOTE_KEYGUARD_ANIMATION_PROPERTY
     */
    public static boolean sEnableRemoteKeyguardOccludeAnimation =
            !Transitions.ENABLE_SHELL_TRANSITIONS && sEnableRemoteKeyguardAnimation >= 2;

    private final KeyguardViewMediator mKeyguardViewMediator;
    private final KeyguardLifecyclesDispatcher mKeyguardLifecyclesDispatcher;
@@ -83,21 +97,23 @@ public class KeyguardService extends Service {
        mKeyguardViewMediator = keyguardViewMediator;
        mKeyguardLifecyclesDispatcher = keyguardLifecyclesDispatcher;

        if (sEnableRemoteKeyguardAnimation) {
        RemoteAnimationDefinition definition = new RemoteAnimationDefinition();
        if (sEnableRemoteKeyguardGoingAwayAnimation) {
            final RemoteAnimationAdapter exitAnimationAdapter =
                    new RemoteAnimationAdapter(mExitAnimationRunner, 0, 0);
            definition.addRemoteAnimation(TRANSIT_OLD_KEYGUARD_GOING_AWAY, exitAnimationAdapter);
            definition.addRemoteAnimation(TRANSIT_OLD_KEYGUARD_GOING_AWAY_ON_WALLPAPER,
                    exitAnimationAdapter);
        }
        if (sEnableRemoteKeyguardOccludeAnimation) {
            final RemoteAnimationAdapter occludeAnimationAdapter =
                    new RemoteAnimationAdapter(mOccludeAnimationRunner, 0, 0);
            definition.addRemoteAnimation(TRANSIT_OLD_KEYGUARD_OCCLUDE, occludeAnimationAdapter);
            definition.addRemoteAnimation(TRANSIT_OLD_KEYGUARD_UNOCCLUDE, occludeAnimationAdapter);
        }
        ActivityTaskManager.getInstance().registerRemoteAnimationsForDisplay(
                DEFAULT_DISPLAY, definition);
    }
    }

    @Override
    public void onCreate() {
+1 −1
Original line number Diff line number Diff line
@@ -280,7 +280,7 @@ class KeyguardUnlockAnimationController @Inject constructor(
    }

    override fun onKeyguardDismissAmountChanged() {
        if (!KeyguardService.sEnableRemoteKeyguardAnimation) {
        if (!KeyguardService.sEnableRemoteKeyguardGoingAwayAnimation) {
            return
        }

+1 −1
Original line number Diff line number Diff line
@@ -2100,7 +2100,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
                playSounds(false);
            }

            if (KeyguardService.sEnableRemoteKeyguardAnimation) {
            if (KeyguardService.sEnableRemoteKeyguardGoingAwayAnimation) {
                mSurfaceBehindRemoteAnimationFinishedCallback = finishedCallback;
                mSurfaceBehindRemoteAnimationRunning = true;

+1 −1
Original line number Diff line number Diff line
@@ -3021,7 +3021,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    private int handleStartTransitionForKeyguardLw(boolean keyguardGoingAway, long duration) {
        final int res = applyKeyguardOcclusionChange();
        if (res != 0) return res;
        if (!WindowManagerService.sEnableRemoteKeyguardAnimation && keyguardGoingAway) {
        if (!WindowManagerService.sEnableRemoteKeyguardGoingAwayAnimation && keyguardGoingAway) {
            if (DEBUG_KEYGUARD) Slog.d(TAG, "Starting keyguard exit animation");
            startKeyguardExitAnimation(SystemClock.uptimeMillis(), duration);
        }
+4 −2
Original line number Diff line number Diff line
@@ -263,7 +263,8 @@ public class KeyguardServiceDelegate {
     */
    @Deprecated
    public void setOccluded(boolean isOccluded, boolean animate) {
        if (!WindowManagerService.sEnableRemoteKeyguardAnimation && mKeyguardService != null) {
        if (!WindowManagerService.sEnableRemoteKeyguardOccludeAnimation
                && mKeyguardService != null) {
            if (DEBUG) Log.v(TAG, "setOccluded(" + isOccluded + ") animate=" + animate);
            mKeyguardService.setOccluded(isOccluded, animate);
        }
@@ -403,7 +404,8 @@ public class KeyguardServiceDelegate {
    }

    public void startKeyguardExitAnimation(long startTime, long fadeoutDuration) {
        if (!WindowManagerService.sEnableRemoteKeyguardAnimation && mKeyguardService != null) {
        if (!WindowManagerService.sEnableRemoteKeyguardGoingAwayAnimation
                && mKeyguardService != null) {
            mKeyguardService.startKeyguardExitAnimation(startTime, fadeoutDuration);
        }
    }
Loading