From ed410b692820783e5677fd174693588ddc528414 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Fri, 5 May 2017 15:16:14 +0200 Subject: [PATCH] Don't yell when calling into SystemUI Test: Open app from recents, make sure no yelling in logging Bug: 32969571 Change-Id: I19ba834713edceae7c678c49629fe8530dc9dbb8 --- .../com/android/server/wm/AppTransition.java | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index 7a36da202aad1..a38addb1dad0b 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -54,6 +54,7 @@ import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Path; import android.graphics.Rect; +import android.os.Binder; import android.os.Debug; import android.os.IBinder; import android.os.IRemoteCallback; @@ -1808,27 +1809,25 @@ public class AppTransition implements Dump { final IAppTransitionAnimationSpecsFuture future = mNextAppTransitionAnimationsSpecsFuture; mNextAppTransitionAnimationsSpecsFuture = null; - mDefaultExecutor.execute(new Runnable() { - @Override - public void run() { - AppTransitionAnimationSpec[] specs = null; - try { - specs = future.get(); - } catch (RemoteException e) { - Slog.w(TAG, "Failed to fetch app transition specs: " + e); - } - synchronized (mService.mWindowMap) { - mNextAppTransitionAnimationsSpecsPending = false; - overridePendingAppTransitionMultiThumb(specs, - mNextAppTransitionFutureCallback, null /* finishedCallback */, - mNextAppTransitionScaleUp); - mNextAppTransitionFutureCallback = null; - if (specs != null) { - mService.prolongAnimationsFromSpecs(specs, mNextAppTransitionScaleUp); - } - } - mService.requestTraversal(); + mDefaultExecutor.execute(() -> { + AppTransitionAnimationSpec[] specs = null; + try { + Binder.allowBlocking(future.asBinder()); + specs = future.get(); + } catch (RemoteException e) { + Slog.w(TAG, "Failed to fetch app transition specs: " + e); } + synchronized (mService.mWindowMap) { + mNextAppTransitionAnimationsSpecsPending = false; + overridePendingAppTransitionMultiThumb(specs, + mNextAppTransitionFutureCallback, null /* finishedCallback */, + mNextAppTransitionScaleUp); + mNextAppTransitionFutureCallback = null; + if (specs != null) { + mService.prolongAnimationsFromSpecs(specs, mNextAppTransitionScaleUp); + } + } + mService.requestTraversal(); }); } }