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

Commit 30d46ef8 authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "Handle race between creating and assigning RemoteTargetHandles" into sc-v2-dev

parents 4ff90a43 15028e03
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -16,9 +16,8 @@

package com.android.quickstep;

import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;

import android.content.Context;
import android.util.Log;

import androidx.annotation.Nullable;

@@ -34,7 +33,9 @@ import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
 * {@link TaskViewSimulator}
 */
public class RemoteTargetGluer {
    private final RemoteTargetHandle[] mRemoteTargetHandles;
    private static final String TAG = "RemoteTargetGluer";

    private RemoteTargetHandle[] mRemoteTargetHandles;
    private SplitConfigurationOptions.StagedSplitBounds mStagedSplitBounds;

    /**
@@ -93,6 +94,13 @@ public class RemoteTargetGluer {
    public RemoteTargetHandle[] assignTargetsForSplitScreen(RemoteAnimationTargets targets) {
        int[] splitIds = LauncherSplitScreenListener.INSTANCE.getNoCreate()
                .getRunningSplitTaskIds();
        if (splitIds.length == 0 && mRemoteTargetHandles.length > 1) {
            // There's a chance that between the creation of this class and assigning targets,
            // LauncherSplitScreenListener may have received callback that removes split
            mRemoteTargetHandles = new RemoteTargetHandle[]{mRemoteTargetHandles[0]};
            Log.w(TAG, "splitTaskIds changed between creation and assignment");
        }

        RemoteAnimationTargetCompat primaryTaskTarget;
        RemoteAnimationTargetCompat secondaryTaskTarget;
        if (mRemoteTargetHandles.length == 1) {