Loading core/proto/android/server/activitymanagerservice.proto +1 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,7 @@ message KeyguardControllerProto { optional bool keyguard_showing = 1; repeated KeyguardOccludedProto keyguard_occluded_states= 2; optional bool aod_showing = 3; } message KeyguardOccludedProto { Loading services/core/java/com/android/server/wm/KeyguardController.java +17 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_SHADE; import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_WITH_WALLPAPER; import static com.android.server.am.KeyguardControllerProto.AOD_SHOWING; import static com.android.server.am.KeyguardControllerProto.KEYGUARD_OCCLUDED_STATES; import static com.android.server.am.KeyguardControllerProto.KEYGUARD_SHOWING; import static com.android.server.am.KeyguardOccludedProto.DISPLAY_ID; Loading Loading @@ -86,13 +87,23 @@ class KeyguardController { /** * @return true if either Keyguard or AOD are showing, not going away, and not being occluded * on the given display, false otherwise * on the given display, false otherwise. */ boolean isKeyguardOrAodShowing(int displayId) { return (mKeyguardShowing || mAodShowing) && !mKeyguardGoingAway && !isDisplayOccluded(displayId); } /** * @return {@code true} if 1) Keyguard is showing, not going away, and not being occluded on the * given display, or 2) AOD is showing, {@code false} otherwise. * TODO(b/125198167): Replace isKeyguardOrAodShowing() by this logic. */ boolean isKeyguardUnoccludedOrAodShowing(int displayId) { return (mKeyguardShowing && !mKeyguardGoingAway && !isDisplayOccluded(displayId)) || mAodShowing; } /** * @return true if Keyguard is showing, not going away, and not being occluded on the given * display, false otherwise Loading Loading @@ -380,10 +391,11 @@ class KeyguardController { for (int displayNdx = mRootActivityContainer.getChildCount() - 1; displayNdx >= 0; displayNdx--) { final ActivityDisplay display = mRootActivityContainer.getChildAt(displayNdx); final KeyguardDisplayState state = getDisplay(display.mDisplayId); if (isKeyguardOrAodShowing(display.mDisplayId) && state.mSleepToken == null) { final int displayId = display.mDisplayId; final KeyguardDisplayState state = getDisplay(displayId); if (isKeyguardUnoccludedOrAodShowing(displayId) && state.mSleepToken == null) { state.acquiredSleepToken(); } else if (!isKeyguardOrAodShowing(display.mDisplayId) && state.mSleepToken != null) { } else if (!isKeyguardUnoccludedOrAodShowing(displayId) && state.mSleepToken != null) { state.releaseSleepToken(); } } Loading Loading @@ -528,6 +540,7 @@ class KeyguardController { void writeToProto(ProtoOutputStream proto, long fieldId) { final long token = proto.start(fieldId); proto.write(AOD_SHOWING, mAodShowing); proto.write(KEYGUARD_SHOWING, mKeyguardShowing); writeDisplayStatesToProto(proto, KEYGUARD_OCCLUDED_STATES); proto.end(token); Loading Loading
core/proto/android/server/activitymanagerservice.proto +1 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,7 @@ message KeyguardControllerProto { optional bool keyguard_showing = 1; repeated KeyguardOccludedProto keyguard_occluded_states= 2; optional bool aod_showing = 3; } message KeyguardOccludedProto { Loading
services/core/java/com/android/server/wm/KeyguardController.java +17 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_SHADE; import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_WITH_WALLPAPER; import static com.android.server.am.KeyguardControllerProto.AOD_SHOWING; import static com.android.server.am.KeyguardControllerProto.KEYGUARD_OCCLUDED_STATES; import static com.android.server.am.KeyguardControllerProto.KEYGUARD_SHOWING; import static com.android.server.am.KeyguardOccludedProto.DISPLAY_ID; Loading Loading @@ -86,13 +87,23 @@ class KeyguardController { /** * @return true if either Keyguard or AOD are showing, not going away, and not being occluded * on the given display, false otherwise * on the given display, false otherwise. */ boolean isKeyguardOrAodShowing(int displayId) { return (mKeyguardShowing || mAodShowing) && !mKeyguardGoingAway && !isDisplayOccluded(displayId); } /** * @return {@code true} if 1) Keyguard is showing, not going away, and not being occluded on the * given display, or 2) AOD is showing, {@code false} otherwise. * TODO(b/125198167): Replace isKeyguardOrAodShowing() by this logic. */ boolean isKeyguardUnoccludedOrAodShowing(int displayId) { return (mKeyguardShowing && !mKeyguardGoingAway && !isDisplayOccluded(displayId)) || mAodShowing; } /** * @return true if Keyguard is showing, not going away, and not being occluded on the given * display, false otherwise Loading Loading @@ -380,10 +391,11 @@ class KeyguardController { for (int displayNdx = mRootActivityContainer.getChildCount() - 1; displayNdx >= 0; displayNdx--) { final ActivityDisplay display = mRootActivityContainer.getChildAt(displayNdx); final KeyguardDisplayState state = getDisplay(display.mDisplayId); if (isKeyguardOrAodShowing(display.mDisplayId) && state.mSleepToken == null) { final int displayId = display.mDisplayId; final KeyguardDisplayState state = getDisplay(displayId); if (isKeyguardUnoccludedOrAodShowing(displayId) && state.mSleepToken == null) { state.acquiredSleepToken(); } else if (!isKeyguardOrAodShowing(display.mDisplayId) && state.mSleepToken != null) { } else if (!isKeyguardUnoccludedOrAodShowing(displayId) && state.mSleepToken != null) { state.releaseSleepToken(); } } Loading Loading @@ -528,6 +540,7 @@ class KeyguardController { void writeToProto(ProtoOutputStream proto, long fieldId) { final long token = proto.start(fieldId); proto.write(AOD_SHOWING, mAodShowing); proto.write(KEYGUARD_SHOWING, mKeyguardShowing); writeDisplayStatesToProto(proto, KEYGUARD_OCCLUDED_STATES); proto.end(token); Loading