Merge "Hold onto occluded change until it's committed" into udc-dev
This commit is contained in:
@@ -3557,16 +3557,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
mPendingKeyguardOccluded = occluded;
|
||||
mKeyguardOccludedChanged = true;
|
||||
} else {
|
||||
setKeyguardOccludedLw(occluded, true /* notify */);
|
||||
setKeyguardOccludedLw(occluded);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int applyKeyguardOcclusionChange(boolean notify) {
|
||||
public int applyKeyguardOcclusionChange() {
|
||||
if (mKeyguardOccludedChanged) {
|
||||
if (DEBUG_KEYGUARD) Slog.d(TAG, "transition/occluded changed occluded="
|
||||
+ mPendingKeyguardOccluded);
|
||||
if (setKeyguardOccludedLw(mPendingKeyguardOccluded, notify)) {
|
||||
if (setKeyguardOccludedLw(mPendingKeyguardOccluded)) {
|
||||
return FINISH_LAYOUT_REDO_LAYOUT | FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
}
|
||||
}
|
||||
@@ -3585,8 +3585,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
*/
|
||||
private int handleTransitionForKeyguardLw(boolean startKeyguardExitAnimation,
|
||||
boolean notifyOccluded) {
|
||||
final int redoLayout = applyKeyguardOcclusionChange(notifyOccluded);
|
||||
if (redoLayout != 0) return redoLayout;
|
||||
if (notifyOccluded) {
|
||||
final int redoLayout = applyKeyguardOcclusionChange();
|
||||
if (redoLayout != 0) return redoLayout;
|
||||
}
|
||||
if (startKeyguardExitAnimation) {
|
||||
if (DEBUG_KEYGUARD) Slog.d(TAG, "Starting keyguard exit animation");
|
||||
startKeyguardExitAnimation(SystemClock.uptimeMillis());
|
||||
@@ -3837,20 +3839,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the occluded state of the Keyguard.
|
||||
* Updates the occluded state of the Keyguard immediately via
|
||||
* {@link com.android.internal.policy.IKeyguardService}.
|
||||
*
|
||||
* @param isOccluded Whether the Keyguard is occluded by another window.
|
||||
* @param notify Notify keyguard occlude status change immediately via
|
||||
* {@link com.android.internal.policy.IKeyguardService}.
|
||||
* @return Whether the flags have changed and we have to redo the layout.
|
||||
*/
|
||||
private boolean setKeyguardOccludedLw(boolean isOccluded, boolean notify) {
|
||||
private boolean setKeyguardOccludedLw(boolean isOccluded) {
|
||||
if (DEBUG_KEYGUARD) Slog.d(TAG, "setKeyguardOccluded occluded=" + isOccluded);
|
||||
mKeyguardOccludedChanged = false;
|
||||
if (isKeyguardOccluded() == isOccluded) {
|
||||
return false;
|
||||
}
|
||||
mKeyguardDelegate.setOccluded(isOccluded, notify);
|
||||
mKeyguardDelegate.setOccluded(isOccluded, true /* notify */);
|
||||
return mKeyguardDelegate.isShowing();
|
||||
}
|
||||
|
||||
|
||||
@@ -170,10 +170,10 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants {
|
||||
void onKeyguardOccludedChangedLw(boolean occluded, boolean waitAppTransition);
|
||||
|
||||
/**
|
||||
* @param notify {@code true} if the status change should be immediately notified via
|
||||
* {@link com.android.internal.policy.IKeyguardService}
|
||||
* Commit any queued changes to keyguard occlude status that had been deferred during the
|
||||
* start of an animation or transition.
|
||||
*/
|
||||
int applyKeyguardOcclusionChange(boolean notify);
|
||||
int applyKeyguardOcclusionChange();
|
||||
|
||||
/**
|
||||
* Interface to the Window Manager state associated with a particular
|
||||
|
||||
@@ -1481,9 +1481,9 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
|
||||
// then we have to notify KeyguardService directly. This can happen if there is
|
||||
// another ongoing transition when the app changes occlusion OR if the app dies or
|
||||
// is killed. Both of these are common during tests.
|
||||
final boolean notify = !(transit == TRANSIT_KEYGUARD_OCCLUDE
|
||||
|| transit == TRANSIT_KEYGUARD_UNOCCLUDE);
|
||||
mController.mAtm.mWindowManager.mPolicy.applyKeyguardOcclusionChange(notify);
|
||||
if (transit != TRANSIT_KEYGUARD_OCCLUDE && transit != TRANSIT_KEYGUARD_UNOCCLUDE) {
|
||||
mController.mAtm.mWindowManager.mPolicy.applyKeyguardOcclusionChange();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -314,7 +314,7 @@ class TestWindowManagerPolicy implements WindowManagerPolicy {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int applyKeyguardOcclusionChange(boolean notify) {
|
||||
public int applyKeyguardOcclusionChange() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user