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

Commit 9934a78d authored by Issei Suzuki's avatar Issei Suzuki
Browse files

Supress IKeygaurdSerivce#setOccluded binder call from WM.

When remote animation is enabled for keygaurd (un)occluded status update,
KeyguardServices recieves binder call via IRemoteAnimationRunner interface
when occlusion status chagnes.

The only place we need to keep IKeygaurdSerivce#setOccluded call is
in ServiceConnection#onServiceConnected. This is used to synchronize
keyguard occluded status in WM and SysUI process when SysUI process
restarts, which is handled without any animation.

Bug: 166736690
Test: atest AppTransitionTests
Change-Id: Idf3a1dedb81be10eb2014f5da190750caf6b6869
parent 6bf84692
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -149,9 +149,14 @@ public class KeyguardService extends Service {
                       RemoteAnimationTarget[] wallpapers,
                        RemoteAnimationTarget[] nonApps,
                        IRemoteAnimationFinishedCallback finishedCallback) {
            // TODO(bc-unlock): Calls KeyguardViewMediator#setOccluded to update the state and
            // run animation.
            try {
                if (transit == TRANSIT_OLD_KEYGUARD_OCCLUDE) {
                    mBinder.setOccluded(true /* isOccluded */, true /* animate */);
                } else if (transit == TRANSIT_OLD_KEYGUARD_UNOCCLUDE) {
                    mBinder.setOccluded(false /* isOccluded */, true /* animate */);
                }
                // TODO(bc-unlock): Implement occlude/unocclude animation applied on apps,
                //  wallpapers and nonApps.
                finishedCallback.onAnimationFinished();
            } catch (RemoteException e) {
                Slog.e(TAG, "RemoteException");
+5 −1
Original line number Diff line number Diff line
@@ -258,8 +258,12 @@ public class KeyguardServiceDelegate {
        }
    }

    /**
     * @deprecated Notify occlude status change via remote animation.
     */
    @Deprecated
    public void setOccluded(boolean isOccluded, boolean animate) {
        if (mKeyguardService != null) {
        if (!WindowManagerService.sEnableRemoteKeyguardAnimation && mKeyguardService != null) {
            if (DEBUG) Log.v(TAG, "setOccluded(" + isOccluded + ") animate=" + animate);
            mKeyguardService.setOccluded(isOccluded, animate);
        }