Merge "Keyguard: use transition state for syncing occlude [RESTRICT AUTOMERGE]" into tm-qpr-dev
This commit is contained in:
@@ -963,14 +963,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
mOccludeByDreamAnimator.cancel();
|
mOccludeByDreamAnimator.cancel();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// The value of isKeyguardOccluded here may come from mergeAnimation, which
|
Log.d(TAG, "Occlude by Dream animation cancelled.");
|
||||||
// isn't reliable. In all cases, after running or cancelling this animation,
|
|
||||||
// keyguard should be occluded.
|
|
||||||
setOccluded(true /* isOccluded */, false /* animate */);
|
|
||||||
if (DEBUG) {
|
|
||||||
Log.d(TAG, "Occlude by Dream animation cancelled. Occluded state is now: "
|
|
||||||
+ mOccluded);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1076,10 +1069,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setOccluded(isKeyguardOccluded /* isOccluded */, false /* animate */);
|
Log.d(TAG, "Unocclude animation cancelled.");
|
||||||
Log.d(TAG, "Unocclude animation cancelled. Occluded state is now: "
|
|
||||||
+ mOccluded);
|
|
||||||
|
|
||||||
mInteractionJankMonitor.cancel(CUJ_LOCKSCREEN_OCCLUSION);
|
mInteractionJankMonitor.cancel(CUJ_LOCKSCREEN_OCCLUSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3446,10 +3436,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
public void onAnimationCancelled(boolean isKeyguardOccluded) throws RemoteException {
|
public void onAnimationCancelled(boolean isKeyguardOccluded) throws RemoteException {
|
||||||
super.onAnimationCancelled(isKeyguardOccluded);
|
super.onAnimationCancelled(isKeyguardOccluded);
|
||||||
|
|
||||||
Log.d(TAG, "Occlude animation cancelled by WM. "
|
Log.d(TAG, "Occlude animation cancelled by WM.");
|
||||||
+ "Setting occluded state to: " + isKeyguardOccluded);
|
|
||||||
setOccluded(isKeyguardOccluded /* occluded */, false /* animate */);
|
|
||||||
|
|
||||||
mInteractionJankMonitor.cancel(CUJ_LOCKSCREEN_OCCLUSION);
|
mInteractionJankMonitor.cancel(CUJ_LOCKSCREEN_OCCLUSION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2134,10 +2134,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mWindowManagerInternal.registerAppTransitionListener(new AppTransitionListener() {
|
mWindowManagerInternal.registerAppTransitionListener(new AppTransitionListener() {
|
||||||
|
private boolean mOccludeChangingInTransition = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int onAppTransitionStartingLocked(boolean keyguardGoingAway,
|
public int onAppTransitionStartingLocked(boolean keyguardGoingAway,
|
||||||
boolean keyguardOccluding, long duration, long statusBarAnimationStartTime,
|
boolean keyguardOccluding, long duration, long statusBarAnimationStartTime,
|
||||||
long statusBarAnimationDuration) {
|
long statusBarAnimationDuration) {
|
||||||
|
mOccludeChangingInTransition = keyguardGoingAway || keyguardOccluding;
|
||||||
|
|
||||||
// When remote animation is enabled for KEYGUARD_GOING_AWAY transition, SysUI
|
// When remote animation is enabled for KEYGUARD_GOING_AWAY transition, SysUI
|
||||||
// receives IRemoteAnimationRunner#onAnimationStart to start animation, so we don't
|
// receives IRemoteAnimationRunner#onAnimationStart to start animation, so we don't
|
||||||
// need to call IKeyguardService#keyguardGoingAway here.
|
// need to call IKeyguardService#keyguardGoingAway here.
|
||||||
@@ -2153,6 +2157,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
0 /* duration */);
|
0 /* duration */);
|
||||||
|
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
|
if (mOccludeChangingInTransition) {
|
||||||
|
mKeyguardOccludedChanged = true;
|
||||||
|
mOccludeChangingInTransition = false;
|
||||||
|
}
|
||||||
|
applyKeyguardOcclusionChange(false);
|
||||||
mLockAfterAppTransitionFinished = false;
|
mLockAfterAppTransitionFinished = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2160,12 +2169,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
@Override
|
@Override
|
||||||
public void onAppTransitionFinishedLocked(IBinder token) {
|
public void onAppTransitionFinishedLocked(IBinder token) {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
|
if (mOccludeChangingInTransition) {
|
||||||
|
mKeyguardOccludedChanged = true;
|
||||||
|
mOccludeChangingInTransition = false;
|
||||||
|
}
|
||||||
|
applyKeyguardOcclusionChange(false /* transitionStarted */);
|
||||||
if (!mLockAfterAppTransitionFinished) {
|
if (!mLockAfterAppTransitionFinished) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mLockAfterAppTransitionFinished = false;
|
mLockAfterAppTransitionFinished = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
lockNow(null);
|
lockNow(null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -3355,7 +3368,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
if (mKeyguardOccludedChanged) {
|
if (mKeyguardOccludedChanged) {
|
||||||
if (DEBUG_KEYGUARD) Slog.d(TAG, "transition/occluded changed occluded="
|
if (DEBUG_KEYGUARD) Slog.d(TAG, "transition/occluded changed occluded="
|
||||||
+ mPendingKeyguardOccluded);
|
+ mPendingKeyguardOccluded);
|
||||||
if (setKeyguardOccludedLw(mPendingKeyguardOccluded, false /* force */,
|
if (setKeyguardOccludedLw(mPendingKeyguardOccluded, true /* force */,
|
||||||
transitionStarted)) {
|
transitionStarted)) {
|
||||||
return FINISH_LAYOUT_REDO_LAYOUT | FINISH_LAYOUT_REDO_WALLPAPER;
|
return FINISH_LAYOUT_REDO_LAYOUT | FINISH_LAYOUT_REDO_WALLPAPER;
|
||||||
}
|
}
|
||||||
@@ -3616,6 +3629,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
private boolean setKeyguardOccludedLw(boolean isOccluded, boolean force,
|
private boolean setKeyguardOccludedLw(boolean isOccluded, boolean force,
|
||||||
boolean transitionStarted) {
|
boolean transitionStarted) {
|
||||||
if (DEBUG_KEYGUARD) Slog.d(TAG, "setKeyguardOccluded occluded=" + isOccluded);
|
if (DEBUG_KEYGUARD) Slog.d(TAG, "setKeyguardOccluded occluded=" + isOccluded);
|
||||||
|
mPendingKeyguardOccluded = isOccluded;
|
||||||
mKeyguardOccludedChanged = false;
|
mKeyguardOccludedChanged = false;
|
||||||
if (isKeyguardOccluded() == isOccluded && !force) {
|
if (isKeyguardOccluded() == isOccluded && !force) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user