Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05d43372 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Preset remote animation proc for transient launch" into udc-dev am: c85c9ab1

parents 9441bab3 c85c9ab1
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -574,7 +574,9 @@ public class ActivityStartController {
        mService.deferWindowLayout();
        mService.deferWindowLayout();
        try {
        try {
            final TransitionController controller = r.mTransitionController;
            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.collect(task);
                controller.setTransientLaunch(r, TaskDisplayArea.getRootTaskAbove(rootTask));
                controller.setTransientLaunch(r, TaskDisplayArea.getRootTaskAbove(rootTask));
            }
            }
+7 −6
Original line number Original line Diff line number Diff line
@@ -66,6 +66,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityManager;
import android.app.IApplicationThread;
import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo;
import android.graphics.Point;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.Rect;
@@ -83,7 +84,6 @@ import android.util.SparseArray;
import android.view.Display;
import android.view.Display;
import android.view.SurfaceControl;
import android.view.SurfaceControl;
import android.view.WindowManager;
import android.view.WindowManager;
import android.window.RemoteTransition;
import android.window.ScreenCapture;
import android.window.ScreenCapture;
import android.window.TransitionInfo;
import android.window.TransitionInfo;


@@ -160,7 +160,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
    private final TransitionController mController;
    private final TransitionController mController;
    private final BLASTSyncEngine mSyncEngine;
    private final BLASTSyncEngine mSyncEngine;
    private final Token mToken;
    private final Token mToken;
    private RemoteTransition mRemoteTransition = null;
    private IApplicationThread mRemoteAnimApp;


    /** Only use for clean-up after binder death! */
    /** Only use for clean-up after binder death! */
    private SurfaceControl.Transaction mStartTransaction = null;
    private SurfaceControl.Transaction mStartTransaction = null;
@@ -1075,12 +1075,13 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
        return mForcePlaying;
        return mForcePlaying;
    }
    }


    void setRemoteTransition(RemoteTransition remoteTransition) {
    void setRemoteAnimationApp(IApplicationThread app) {
        mRemoteTransition = remoteTransition;
        mRemoteAnimApp = app;
    }
    }


    RemoteTransition getRemoteTransition() {
    /** Returns the app which will run the transition animation. */
        return mRemoteTransition;
    IApplicationThread getRemoteAnimationApp() {
        return mRemoteAnimApp;
    }
    }


    void setNoAnimation(WindowContainer wc) {
    void setNoAnimation(WindowContainer wc) {
+5 −4
Original line number Original line Diff line number Diff line
@@ -567,7 +567,9 @@ class TransitionController {
            transition.mLogger.mRequestTimeNs = SystemClock.elapsedRealtimeNanos();
            transition.mLogger.mRequestTimeNs = SystemClock.elapsedRealtimeNanos();
            transition.mLogger.mRequest = request;
            transition.mLogger.mRequest = request;
            mTransitionPlayer.requestStartTransition(transition.getToken(), request);
            mTransitionPlayer.requestStartTransition(transition.getToken(), request);
            transition.setRemoteTransition(remoteTransition);
            if (remoteTransition != null) {
                transition.setRemoteAnimationApp(remoteTransition.getAppThread());
            }
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            Slog.e(TAG, "Error requesting transition", e);
            Slog.e(TAG, "Error requesting transition", e);
            transition.start();
            transition.start();
@@ -779,9 +781,8 @@ class TransitionController {
            mRemotePlayer.clear();
            mRemotePlayer.clear();
            return;
            return;
        }
        }
        final RemoteTransition remote = transition.getRemoteTransition();
        final IApplicationThread appThread = transition.getRemoteAnimationApp();
        if (remote == null) return;
        if (appThread == null || appThread == mTransitionPlayerProc.getThread()) return;
        final IApplicationThread appThread = remote.getAppThread();
        final WindowProcessController delegate = mAtm.getProcessController(appThread);
        final WindowProcessController delegate = mAtm.getProcessController(appThread);
        if (delegate == null) return;
        if (delegate == null) return;
        mRemotePlayer.update(delegate, isPlaying, true /* predict */);
        mRemotePlayer.update(delegate, isPlaying, true /* predict */);