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

Commit 69b9b50f authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Initialize PipTaskOrganizer in ShellInit" into main

parents 1e002dc4 fc0d2acd
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ public abstract class Pip1Module {
    @WMSingleton
    @Provides
    static PipTaskOrganizer providePipTaskOrganizer(Context context,
            ShellInit shellInit,
            SyncTransactionQueue syncTransactionQueue,
            PipTransitionState pipTransitionState,
            PipBoundsState pipBoundsState,
@@ -176,7 +177,7 @@ public abstract class Pip1Module {
            DisplayController displayController,
            PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
            @ShellMainThread ShellExecutor mainExecutor) {
        return new PipTaskOrganizer(context,
        return new PipTaskOrganizer(context, shellInit,
                syncTransactionQueue, pipTransitionState, pipBoundsState, pipDisplayLayoutState,
                pipBoundsAlgorithm, menuPhoneController, pipAnimationController,
                pipSurfaceTransactionHelper, pipTransitionController, pipParamsChangedForwarder,
+2 −1
Original line number Diff line number Diff line
@@ -203,6 +203,7 @@ public abstract class TvPipModule {
    @WMSingleton
    @Provides
    static PipTaskOrganizer providePipTaskOrganizer(Context context,
            ShellInit shellInit,
            TvPipMenuController tvPipMenuController,
            SyncTransactionQueue syncTransactionQueue,
            TvPipBoundsState tvPipBoundsState,
@@ -219,7 +220,7 @@ public abstract class TvPipModule {
            DisplayController displayController,
            PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
            @ShellMainThread ShellExecutor mainExecutor) {
        return new TvPipTaskOrganizer(context,
        return new TvPipTaskOrganizer(context, shellInit,
                syncTransactionQueue, pipTransitionState, tvPipBoundsState, pipDisplayLayoutState,
                tvPipBoundsAlgorithm, tvPipMenuController, pipAnimationController,
                pipSurfaceTransactionHelper, tvPipTransition, pipParamsChangedForwarder,
+14 −8
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ import com.android.wm.shell.shared.animation.Interpolators;
import com.android.wm.shell.shared.annotations.ShellMainThread;
import com.android.wm.shell.shared.pip.PipContentOverlay;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;

import java.io.PrintWriter;
@@ -369,6 +370,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
    private Rect mSwipeSourceRectHint;

    public PipTaskOrganizer(Context context,
            @NonNull ShellInit shellInit,
            @NonNull SyncTransactionQueue syncTransactionQueue,
            @NonNull PipTransitionState pipTransitionState,
            @NonNull PipBoundsState pipBoundsState,
@@ -415,17 +417,21 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
        mTaskOrganizer = shellTaskOrganizer;
        mMainExecutor = mainExecutor;

        // TODO: Can be removed once wm components are created on the shell-main thread
        if (!PipUtils.isPip2ExperimentEnabled()) {
            mMainExecutor.execute(() -> {
                mTaskOrganizer.addListenerForType(this, TASK_LISTENER_TYPE_PIP);
            });
            shellInit.addInitCallback(this::onInit, this);
        }
    }

    @VisibleForTesting
    void onInit() {
        // TODO: Can be removed once wm components are created on the shell-main thread
        mMainExecutor.execute(() -> mTaskOrganizer.addListenerForType(
                this, TASK_LISTENER_TYPE_PIP));
        mPipTransitionController.setPipOrganizer(this);
            displayController.addDisplayWindowListener(this);
            pipTransitionController.registerPipTransitionCallback(
        mDisplayController.addDisplayWindowListener(this);
        mPipTransitionController.registerPipTransitionCallback(
                mPipTransitionCallback, mMainExecutor);
    }
    }

    public PipTransitionController getTransitionController() {
        return mPipTransitionController;
+2 −1
Original line number Diff line number Diff line
@@ -490,7 +490,8 @@ public class PipController implements PipTransitionController.PipTransitionCallb
        }
    }

    private void onInit() {
    @VisibleForTesting
    void onInit() {
        mShellCommandHandler.addDumpCallback(this::dump, this);
        mPipInputConsumer = new PipInputConsumer(WindowManagerGlobal.getWindowManagerService(),
                INPUT_CONSUMER_PIP, mMainExecutor);
+3 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.wm.shell.pip.PipSurfaceTransactionHelper;
import com.android.wm.shell.pip.PipTaskOrganizer;
import com.android.wm.shell.pip.PipTransitionState;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.ShellInit;

import java.util.Objects;
import java.util.Optional;
@@ -50,6 +51,7 @@ public class TvPipTaskOrganizer extends PipTaskOrganizer {
    private final TvPipTransition mTvPipTransition;

    public TvPipTaskOrganizer(Context context,
            @NonNull ShellInit shellInit,
            @NonNull SyncTransactionQueue syncTransactionQueue,
            @NonNull PipTransitionState pipTransitionState,
            @NonNull PipBoundsState pipBoundsState,
@@ -67,7 +69,7 @@ public class TvPipTaskOrganizer extends PipTaskOrganizer {
            @NonNull PipUiEventLogger pipUiEventLogger,
            @NonNull ShellTaskOrganizer shellTaskOrganizer,
            ShellExecutor mainExecutor) {
        super(context, syncTransactionQueue, pipTransitionState, pipBoundsState,
        super(context, shellInit, syncTransactionQueue, pipTransitionState, pipBoundsState,
                pipDisplayLayoutState, boundsHandler, pipMenuController, pipAnimationController,
                surfaceTransactionHelper, tvPipTransition, pipParamsChangedForwarder,
                splitScreenOptional, pipPerfHintControllerOptional, Optional.empty(),
Loading