Merge "Cancel current animation instead of candidate" into tm-qpr-dev am: 6eda179081
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22381002 Change-Id: I06cf296709bdf62e3507f19d0876f695bfc12bbe Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -260,22 +260,20 @@ public class KeyguardService extends Service {
|
||||
);
|
||||
}
|
||||
|
||||
public void mergeAnimation(IBinder transition, TransitionInfo info,
|
||||
SurfaceControl.Transaction t, IBinder mergeTarget,
|
||||
IRemoteTransitionFinishedCallback finishCallback) {
|
||||
public void mergeAnimation(IBinder candidateTransition, TransitionInfo candidateInfo,
|
||||
SurfaceControl.Transaction candidateT, IBinder currentTransition,
|
||||
IRemoteTransitionFinishedCallback candidateFinishCallback) {
|
||||
try {
|
||||
final IRemoteTransitionFinishedCallback origFinishCB;
|
||||
final IRemoteTransitionFinishedCallback currentFinishCB;
|
||||
synchronized (mFinishCallbacks) {
|
||||
origFinishCB = mFinishCallbacks.remove(transition);
|
||||
currentFinishCB = mFinishCallbacks.remove(currentTransition);
|
||||
}
|
||||
info.releaseAllSurfaces();
|
||||
t.close();
|
||||
if (origFinishCB == null) {
|
||||
// already finished (or not started yet), so do nothing.
|
||||
if (currentFinishCB == null) {
|
||||
Slog.e(TAG, "Called mergeAnimation, but finish callback is missing");
|
||||
return;
|
||||
}
|
||||
runner.onAnimationCancelled(false /* isKeyguardOccluded */);
|
||||
origFinishCB.onTransitionFinished(null /* wct */, null /* t */);
|
||||
currentFinishCB.onTransitionFinished(null /* wct */, null /* t */);
|
||||
} catch (RemoteException e) {
|
||||
// nothing, we'll just let it finish on its own I guess.
|
||||
}
|
||||
|
||||
@@ -951,10 +951,15 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
||||
|
||||
@Override
|
||||
public void onAnimationCancelled(boolean isKeyguardOccluded) {
|
||||
if (mOccludeByDreamAnimator != null) {
|
||||
mOccludeByDreamAnimator.cancel();
|
||||
}
|
||||
setOccluded(isKeyguardOccluded /* isOccluded */, false /* animate */);
|
||||
mContext.getMainExecutor().execute(() -> {
|
||||
if (mOccludeByDreamAnimator != null) {
|
||||
mOccludeByDreamAnimator.cancel();
|
||||
}
|
||||
});
|
||||
// The value of isKeyguardOccluded here may come from mergeAnimation, which
|
||||
// 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);
|
||||
|
||||
Reference in New Issue
Block a user