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

Commit 811c0f0b authored by Issei Suzuki's avatar Issei Suzuki
Browse files

Clear ActivityRecord#mDismissKeyguard flag after app launches.

This flag is used by the SysUI to dismiss an insecure keyguard
when an app is launched from an insecure lock screen. The flag
should only affect the app launch once, so needs to be cleared
once app launch animation finishes.

Bug: 234583880
Test: atest KeyguardTests
Change-Id: I74e9e00caad0d9af80127b2fc930c4ff0d52af76
parent 63ceb948
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -116,6 +116,7 @@ message KeyguardControllerProto {
    repeated KeyguardOccludedProto keyguard_occluded_states = 2 [deprecated=true];
    optional bool aod_showing = 3;
    repeated KeyguardPerDisplayProto keyguard_per_display = 4;
    optional bool keyguard_going_away = 5;
}

message KeyguardOccludedProto {
@@ -132,6 +133,7 @@ message KeyguardPerDisplayProto {
    optional bool keyguard_showing = 2;
    optional bool aod_showing = 3;
    optional bool keyguard_occluded = 4;
    optional bool keyguard_going_away = 5;
}

/* represents PhoneWindowManager */
+1 −0
Original line number Diff line number Diff line
@@ -7343,6 +7343,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        mTransit = TRANSIT_OLD_UNSET;
        mTransitFlags = 0;
        mNeedsAnimationBoundsLayer = false;
        mDismissKeyguard = false;

        setAppLayoutChanges(FINISH_LAYOUT_REDO_ANIM | FINISH_LAYOUT_REDO_WALLPAPER,
                "ActivityRecord");
+3 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.ActivityTaskSupervisor.PRESERVE_WINDOWS;
import static com.android.server.wm.KeyguardControllerProto.AOD_SHOWING;
import static com.android.server.wm.KeyguardControllerProto.KEYGUARD_GOING_AWAY;
import static com.android.server.wm.KeyguardControllerProto.KEYGUARD_PER_DISPLAY;
import static com.android.server.wm.KeyguardControllerProto.KEYGUARD_SHOWING;

@@ -671,6 +672,7 @@ class KeyguardController {
            proto.write(KeyguardPerDisplayProto.KEYGUARD_SHOWING, mKeyguardShowing);
            proto.write(KeyguardPerDisplayProto.AOD_SHOWING, mAodShowing);
            proto.write(KeyguardPerDisplayProto.KEYGUARD_OCCLUDED, mOccluded);
            proto.write(KeyguardPerDisplayProto.KEYGUARD_GOING_AWAY, mKeyguardGoingAway);
            proto.end(token);
        }
    }
@@ -691,6 +693,7 @@ class KeyguardController {
        final long token = proto.start(fieldId);
        proto.write(AOD_SHOWING, default_state.mAodShowing);
        proto.write(KEYGUARD_SHOWING, default_state.mKeyguardShowing);
        proto.write(KEYGUARD_GOING_AWAY, default_state.mKeyguardGoingAway);
        writeDisplayStatesToProto(proto, KEYGUARD_PER_DISPLAY);
        proto.end(token);
    }