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

Commit d1bf9cc5 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android Build Coastguard Worker
Browse files

Correct keyguard occluding condition for wakeup

The commit [1] changes the usage of occludedByActivity to
mOccluded, but it missed once place for turning screen on.
Which could cause screen to not turn on while app uses
FLAG_SHOW_WHEN_LOCKED + FLAG_TURN_SCREEN_ON.

[1]: I0250025c5e0bc1c7af8c0dc978f441bfbce50326

Bug: 159821769
Bug: 348662989
Flag: EXEMPT bugfix
Test: ActivityVisibilityTests#testTurnScreenOnActivity_slowLaunch
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e1702b54e52fc509acb08bc120603568e0dc368d)
Merged-In: Ic4e07911bc38cc010c41fd3f7d36c06cd64645c8
Change-Id: Ic4e07911bc38cc010c41fd3f7d36c06cd64645c8
parent 0b92bb69
Loading
Loading
Loading
Loading
+1 −4
Original line number Original line Diff line number Diff line
@@ -16,7 +16,6 @@


package com.android.server.wm;
package com.android.server.wm;


import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_APPEARING;
import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_APPEARING;
@@ -657,7 +656,6 @@ class KeyguardController {
            final boolean lastKeyguardGoingAway = mKeyguardGoingAway;
            final boolean lastKeyguardGoingAway = mKeyguardGoingAway;


            final ActivityRecord lastDismissKeyguardActivity = mDismissingKeyguardActivity;
            final ActivityRecord lastDismissKeyguardActivity = mDismissingKeyguardActivity;
            final ActivityRecord lastTurnScreenOnActivity = mTopTurnScreenOnActivity;


            mRequestDismissKeyguard = false;
            mRequestDismissKeyguard = false;
            mOccluded = false;
            mOccluded = false;
@@ -666,7 +664,6 @@ class KeyguardController {
            mDismissingKeyguardActivity = null;
            mDismissingKeyguardActivity = null;
            mTopTurnScreenOnActivity = null;
            mTopTurnScreenOnActivity = null;


            boolean occludedByActivity = false;
            final Task task = getRootTaskForControllingOccluding(display);
            final Task task = getRootTaskForControllingOccluding(display);
            final ActivityRecord top = task != null ? task.getTopNonFinishingActivity() : null;
            final ActivityRecord top = task != null ? task.getTopNonFinishingActivity() : null;
            if (top != null) {
            if (top != null) {
@@ -712,7 +709,7 @@ class KeyguardController {


            if (mTopTurnScreenOnActivity != null
            if (mTopTurnScreenOnActivity != null
                    && !mService.mWindowManager.mPowerManager.isInteractive()
                    && !mService.mWindowManager.mPowerManager.isInteractive()
                    && (mRequestDismissKeyguard || occludedByActivity)) {
                    && (mRequestDismissKeyguard || mOccluded)) {
                controller.mTaskSupervisor.wakeUp("handleTurnScreenOn");
                controller.mTaskSupervisor.wakeUp("handleTurnScreenOn");
                mTopTurnScreenOnActivity.setCurrentLaunchCanTurnScreenOn(false);
                mTopTurnScreenOnActivity.setCurrentLaunchCanTurnScreenOn(false);
            }
            }