Merge "setTurnScreenOn can only used as wakeup" am: 385935d07f am: a833f2152a am: b87acfcfde

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

Change-Id: I31e99549b48b1fb257915ba285a7c2454d31d179
This commit is contained in:
Wei Sheng Shih
2021-11-08 07:57:38 +00:00
committed by Automerger Merge Worker
2 changed files with 8 additions and 36 deletions

View File

@@ -77,7 +77,6 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.Parcelable;
import android.os.PersistableBundle;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager.ServiceNotFoundException;
@@ -8788,9 +8787,7 @@ public class Activity extends ContextThemeWrapper
* the activity is visible after the screen is turned on when the lockscreen is up. In addition,
* if this flag is set and the activity calls {@link
* KeyguardManager#requestDismissKeyguard(Activity, KeyguardManager.KeyguardDismissCallback)}
* the screen will turn on. If the screen is off and device is not secured, this flag can turn
* screen on and dismiss keyguard to make this activity visible and resume, which can be used to
* replace {@link PowerManager#ACQUIRE_CAUSES_WAKEUP}
* the screen will turn on.
*
* @param turnScreenOn {@code true} to turn on the screen; {@code false} otherwise.
*

View File

@@ -190,8 +190,7 @@ class KeyguardController {
if (keyguardChanged) {
// Irrelevant to AOD.
dismissMultiWindowModeForTaskIfNeeded(null /* currentTaskControllsingOcclusion */,
false /* turningScreenOn */);
dismissMultiWindowModeForTaskIfNeeded(null /* currentTaskControllsingOcclusion */);
mKeyguardGoingAway = false;
if (keyguardShowing) {
mDismissalRequested = false;
@@ -385,6 +384,8 @@ class KeyguardController {
mService.continueWindowLayout();
}
}
dismissMultiWindowModeForTaskIfNeeded(topActivity != null
? topActivity.getRootTask() : null);
}
/**
@@ -410,21 +411,6 @@ class KeyguardController {
}
}
/**
* Called when somebody wants to turn screen on.
*/
private void handleTurnScreenOn(int displayId) {
if (displayId != DEFAULT_DISPLAY) {
return;
}
mTaskSupervisor.wakeUp("handleTurnScreenOn");
if (mKeyguardShowing && canDismissKeyguard()) {
mWindowManager.dismissKeyguard(null /* callback */, null /* message */);
mDismissalRequested = true;
}
}
boolean isDisplayOccluded(int displayId) {
return getDisplayState(displayId).mOccluded;
}
@@ -438,11 +424,9 @@ class KeyguardController {
}
private void dismissMultiWindowModeForTaskIfNeeded(
@Nullable Task currentTaskControllingOcclusion, boolean turningScreenOn) {
// If turningScreenOn is true, it means that the visibility state has changed from
// currentTaskControllingOcclusion and we should update windowing mode.
@Nullable Task currentTaskControllingOcclusion) {
// TODO(b/113840485): Handle docked stack for individual display.
if (!turningScreenOn && (!mKeyguardShowing || !isDisplayOccluded(DEFAULT_DISPLAY))) {
if (!mKeyguardShowing || !isDisplayOccluded(DEFAULT_DISPLAY)) {
return;
}
@@ -581,26 +565,17 @@ class KeyguardController {
&& controller.mWindowManager.isKeyguardSecure(
controller.mService.getCurrentUserId());
boolean occludingChange = false;
boolean turningScreenOn = false;
if (mTopTurnScreenOnActivity != lastTurnScreenOnActivity
&& mTopTurnScreenOnActivity != null
&& !mService.mWindowManager.mPowerManager.isInteractive()
&& (mRequestDismissKeyguard || occludedByActivity
|| controller.canDismissKeyguard())) {
turningScreenOn = true;
controller.handleTurnScreenOn(mDisplayId);
&& (mRequestDismissKeyguard || occludedByActivity)) {
controller.mTaskSupervisor.wakeUp("handleTurnScreenOn");
mTopTurnScreenOnActivity.setCurrentLaunchCanTurnScreenOn(false);
}
if (lastOccluded != mOccluded) {
occludingChange = true;
controller.handleOccludedChanged(mDisplayId, mTopOccludesActivity);
}
if (occludingChange || turningScreenOn) {
controller.dismissMultiWindowModeForTaskIfNeeded(task, turningScreenOn);
}
}
/**