Merge "Preset remote animation proc for transient launch" into udc-dev
This commit is contained in:
@@ -574,7 +574,9 @@ public class ActivityStartController {
|
||||
mService.deferWindowLayout();
|
||||
try {
|
||||
final TransitionController controller = r.mTransitionController;
|
||||
if (controller.getTransitionPlayer() != null) {
|
||||
final Transition transition = controller.getCollectingTransition();
|
||||
if (transition != null) {
|
||||
transition.setRemoteAnimationApp(r.app.getThread());
|
||||
controller.collect(task);
|
||||
controller.setTransientLaunch(r, TaskDisplayArea.getRootTaskAbove(rootTask));
|
||||
}
|
||||
|
||||
@@ -66,6 +66,7 @@ import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.IApplicationThread;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
@@ -83,7 +84,6 @@ import android.util.SparseArray;
|
||||
import android.view.Display;
|
||||
import android.view.SurfaceControl;
|
||||
import android.view.WindowManager;
|
||||
import android.window.RemoteTransition;
|
||||
import android.window.ScreenCapture;
|
||||
import android.window.TransitionInfo;
|
||||
|
||||
@@ -160,7 +160,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
|
||||
private final TransitionController mController;
|
||||
private final BLASTSyncEngine mSyncEngine;
|
||||
private final Token mToken;
|
||||
private RemoteTransition mRemoteTransition = null;
|
||||
private IApplicationThread mRemoteAnimApp;
|
||||
|
||||
/** Only use for clean-up after binder death! */
|
||||
private SurfaceControl.Transaction mStartTransaction = null;
|
||||
@@ -1075,12 +1075,13 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
|
||||
return mForcePlaying;
|
||||
}
|
||||
|
||||
void setRemoteTransition(RemoteTransition remoteTransition) {
|
||||
mRemoteTransition = remoteTransition;
|
||||
void setRemoteAnimationApp(IApplicationThread app) {
|
||||
mRemoteAnimApp = app;
|
||||
}
|
||||
|
||||
RemoteTransition getRemoteTransition() {
|
||||
return mRemoteTransition;
|
||||
/** Returns the app which will run the transition animation. */
|
||||
IApplicationThread getRemoteAnimationApp() {
|
||||
return mRemoteAnimApp;
|
||||
}
|
||||
|
||||
void setNoAnimation(WindowContainer wc) {
|
||||
|
||||
@@ -567,7 +567,9 @@ class TransitionController {
|
||||
transition.mLogger.mRequestTimeNs = SystemClock.elapsedRealtimeNanos();
|
||||
transition.mLogger.mRequest = request;
|
||||
mTransitionPlayer.requestStartTransition(transition.getToken(), request);
|
||||
transition.setRemoteTransition(remoteTransition);
|
||||
if (remoteTransition != null) {
|
||||
transition.setRemoteAnimationApp(remoteTransition.getAppThread());
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Slog.e(TAG, "Error requesting transition", e);
|
||||
transition.start();
|
||||
@@ -779,9 +781,8 @@ class TransitionController {
|
||||
mRemotePlayer.clear();
|
||||
return;
|
||||
}
|
||||
final RemoteTransition remote = transition.getRemoteTransition();
|
||||
if (remote == null) return;
|
||||
final IApplicationThread appThread = remote.getAppThread();
|
||||
final IApplicationThread appThread = transition.getRemoteAnimationApp();
|
||||
if (appThread == null || appThread == mTransitionPlayerProc.getThread()) return;
|
||||
final WindowProcessController delegate = mAtm.getProcessController(appThread);
|
||||
if (delegate == null) return;
|
||||
mRemotePlayer.update(delegate, isPlaying, true /* predict */);
|
||||
|
||||
Reference in New Issue
Block a user