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

Commit 38517434 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Ensure PipTransitionController initializes in order" into tm-qpr-dev

parents 38215c1d df8bbef5
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import com.android.wm.shell.pip.tv.TvPipTaskOrganizer;
import com.android.wm.shell.pip.tv.TvPipTransition;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;

import java.util.Optional;
@@ -138,12 +139,14 @@ public abstract class TvPipModule {
    @WMSingleton
    @Provides
    static PipTransitionController provideTvPipTransition(
            Transitions transitions, ShellTaskOrganizer shellTaskOrganizer,
            ShellInit shellInit,
            ShellTaskOrganizer shellTaskOrganizer,
            Transitions transitions,
            PipAnimationController pipAnimationController,
            TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
            TvPipBoundsState tvPipBoundsState, TvPipMenuController pipMenuController) {
        return new TvPipTransition(tvPipBoundsState, pipMenuController,
                tvPipBoundsAlgorithm, pipAnimationController, transitions, shellTaskOrganizer);
        return new TvPipTransition(shellInit, shellTaskOrganizer, transitions, tvPipBoundsState,
                pipMenuController, tvPipBoundsAlgorithm, pipAnimationController);
    }

    @WMSingleton
+4 −4
Original line number Diff line number Diff line
@@ -409,15 +409,15 @@ public abstract class WMShellModule {
    @WMSingleton
    @Provides
    static PipTransitionController providePipTransitionController(Context context,
            Transitions transitions, ShellTaskOrganizer shellTaskOrganizer,
            ShellInit shellInit, ShellTaskOrganizer shellTaskOrganizer, Transitions transitions,
            PipAnimationController pipAnimationController, PipBoundsAlgorithm pipBoundsAlgorithm,
            PipBoundsState pipBoundsState, PipTransitionState pipTransitionState,
            PhonePipMenuController pipMenuController,
            PipSurfaceTransactionHelper pipSurfaceTransactionHelper,
            Optional<SplitScreenController> splitScreenOptional) {
        return new PipTransition(context, pipBoundsState, pipTransitionState, pipMenuController,
                pipBoundsAlgorithm, pipAnimationController, transitions, shellTaskOrganizer,
                pipSurfaceTransactionHelper, splitScreenOptional);
        return new PipTransition(context, shellInit, shellTaskOrganizer, transitions,
                pipBoundsState, pipTransitionState, pipMenuController, pipBoundsAlgorithm,
                pipAnimationController, pipSurfaceTransactionHelper, splitScreenOptional);
    }

    @WMSingleton
+6 −4
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ import com.android.wm.shell.R;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.CounterRotatorHelper;
import com.android.wm.shell.transition.Transitions;

@@ -107,17 +108,18 @@ public class PipTransition extends PipTransitionController {
    private boolean mHasFadeOut;

    public PipTransition(Context context,
            @NonNull ShellInit shellInit,
            @NonNull ShellTaskOrganizer shellTaskOrganizer,
            @NonNull Transitions transitions,
            PipBoundsState pipBoundsState,
            PipTransitionState pipTransitionState,
            PipMenuController pipMenuController,
            PipBoundsAlgorithm pipBoundsAlgorithm,
            PipAnimationController pipAnimationController,
            Transitions transitions,
            @NonNull ShellTaskOrganizer shellTaskOrganizer,
            PipSurfaceTransactionHelper pipSurfaceTransactionHelper,
            Optional<SplitScreenController> splitScreenOptional) {
        super(pipBoundsState, pipMenuController, pipBoundsAlgorithm,
                pipAnimationController, transitions, shellTaskOrganizer);
        super(shellInit, shellTaskOrganizer, transitions, pipBoundsState, pipMenuController,
                pipBoundsAlgorithm, pipAnimationController);
        mContext = context;
        mPipTransitionState = pipTransitionState;
        mEnterExitAnimationDuration = context.getResources()
+12 −4
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.window.WindowContainerTransaction;
import androidx.annotation.NonNull;

import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;

import java.util.ArrayList;
@@ -131,10 +132,13 @@ public abstract class PipTransitionController implements Transitions.TransitionH
    public void onFixedRotationStarted() {
    }

    public PipTransitionController(PipBoundsState pipBoundsState,
    public PipTransitionController(
            @NonNull ShellInit shellInit,
            @NonNull ShellTaskOrganizer shellTaskOrganizer,
            @NonNull Transitions transitions,
            PipBoundsState pipBoundsState,
            PipMenuController pipMenuController, PipBoundsAlgorithm pipBoundsAlgorithm,
            PipAnimationController pipAnimationController, Transitions transitions,
            @android.annotation.NonNull ShellTaskOrganizer shellTaskOrganizer) {
            PipAnimationController pipAnimationController) {
        mPipBoundsState = pipBoundsState;
        mPipMenuController = pipMenuController;
        mShellTaskOrganizer = shellTaskOrganizer;
@@ -142,10 +146,14 @@ public abstract class PipTransitionController implements Transitions.TransitionH
        mPipAnimationController = pipAnimationController;
        mTransitions = transitions;
        if (Transitions.ENABLE_SHELL_TRANSITIONS) {
            transitions.addHandler(this);
            shellInit.addInitCallback(this::onInit, this);
        }
    }

    private void onInit() {
        mTransitions.addHandler(this);
    }

    void setPipOrganizer(PipTaskOrganizer pto) {
        mPipOrganizer = pto;
    }
+9 −6
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.wm.shell.pip.PipAnimationController;
import com.android.wm.shell.pip.PipBoundsState;
import com.android.wm.shell.pip.PipMenuController;
import com.android.wm.shell.pip.PipTransitionController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;

/**
@@ -39,14 +40,16 @@ import com.android.wm.shell.transition.Transitions;
 * TODO: Implement animation once TV is using Transitions.
 */
public class TvPipTransition extends PipTransitionController {
    public TvPipTransition(PipBoundsState pipBoundsState,
    public TvPipTransition(
            @NonNull ShellInit shellInit,
            @NonNull ShellTaskOrganizer shellTaskOrganizer,
            @NonNull Transitions transitions,
            PipBoundsState pipBoundsState,
            PipMenuController pipMenuController,
            TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
            PipAnimationController pipAnimationController,
            Transitions transitions,
            @NonNull ShellTaskOrganizer shellTaskOrganizer) {
        super(pipBoundsState, pipMenuController, tvPipBoundsAlgorithm, pipAnimationController,
                transitions, shellTaskOrganizer);
            PipAnimationController pipAnimationController) {
        super(shellInit, shellTaskOrganizer, transitions, pipBoundsState, pipMenuController,
                tvPipBoundsAlgorithm, pipAnimationController);
    }

    @Override
Loading