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

Commit 4f208d01 authored by Evan Rosky's avatar Evan Rosky Committed by Automerger Merge Worker
Browse files

Merge "Hooks for interracting with stage split components using legacy...

Merge "Hooks for interracting with stage split components using legacy recentsanimation" into sc-v2-dev am: 33edb79a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15193834

Change-Id: If06077464a9d03255c32e69348fd19ec2266c5c7
parents a57fc955 33edb79a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -90,4 +90,11 @@ interface ISplitScreen {
     oneway void startTasksWithLegacyTransition(int mainTaskId, in Bundle mainOptions,
                            int sideTaskId, in Bundle sideOptions, int sidePosition,
                            in RemoteAnimationAdapter adapter) = 11;

    /**
     * Blocking call that notifies and gets additional split-screen targets when entering
     * recents (for example: the dividerBar).
     * @param cancel is true if leaving recents back to split (eg. the gesture was cancelled).
     */
    RemoteAnimationTarget[] onGoingToRecentsLegacy(boolean cancel) = 12;
}
+15 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.os.RemoteException;
import android.os.UserHandle;
import android.util.Slog;
import android.view.RemoteAnimationAdapter;
import android.view.RemoteAnimationTarget;
import android.window.IRemoteTransition;

import androidx.annotation.BinderThread;
@@ -267,6 +268,11 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        return options;
    }

    RemoteAnimationTarget[] onGoingToRecentsLegacy(boolean cancel) {
        if (!isSplitScreenVisible()) return null;
        return new RemoteAnimationTarget[]{mStageCoordinator.getDividerBarLegacyTarget()};
    }

    public void dump(@NonNull PrintWriter pw, String prefix) {
        pw.println(prefix + TAG);
        if (mStageCoordinator != null) {
@@ -466,5 +472,14 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
                        controller.startIntent(intent, fillInIntent, stage, position, options);
                    });
        }

        @Override
        public RemoteAnimationTarget[] onGoingToRecentsLegacy(boolean cancel) {
            final RemoteAnimationTarget[][] out = new RemoteAnimationTarget[][]{null};
            executeRemoteCallWithTaskPermission(mController, "onGoingToRecentsLegacy",
                    (controller) -> out[0] = controller.onGoingToRecentsLegacy(cancel),
                    true /* blocking */);
            return out[0];
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -970,7 +970,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        }
    }

    private RemoteAnimationTarget getDividerBarLegacyTarget() {
    RemoteAnimationTarget getDividerBarLegacyTarget() {
        final Rect bounds = mSplitLayout.getDividerBounds();
        return new RemoteAnimationTarget(-1 /* taskId */, -1 /* mode */,
                mSplitLayout.getDividerLeash(), false /* isTranslucent */, null /* clipRect */,