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

Commit 84c263e8 authored by Charles Chen's avatar Charles Chen
Browse files

Pass token to ActivityStack and SplitInfo

This CL pass the token to ActivityStack and SplitInfo
as SplitInfo and ActivityStack are used as a identifier in
WM Jetpack API.

Bug: 263565444
Test: presubmit
Change-Id: Ifa461ce2070fad5a2f7ad9471c8f759c3a395b0a
parent 3d0d262b
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.hardware.devicestate.DeviceStateRequest;
import android.util.ArraySet;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.window.extensions.core.util.function.Consumer;

import com.android.internal.R;
@@ -185,6 +186,27 @@ public class WindowAreaComponentImpl implements WindowAreaComponent,
        }
    }

    @Override
    public void addRearDisplayPresentationStatusListener(
            @NonNull Consumer<ExtensionWindowAreaStatus> consumer) {}

    @Override
    public void removeRearDisplayPresentationStatusListener(
            @NonNull Consumer<ExtensionWindowAreaStatus> consumer) {}

    @Override
    public void startRearDisplayPresentationSession(@NonNull Activity activity,
            @NonNull Consumer<@WindowAreaSessionState Integer> consumer) {}

    @Override
    public void endRearDisplayPresentationSession() {}

    @Override
    @Nullable
    public ExtensionWindowAreaPresentation getRearDisplayPresentation() {
        return null;
    }

    @GuardedBy("mLock")
    private int getCurrentStatus() {
        if (mRearDisplaySessionStatus == WindowAreaComponent.SESSION_STATE_ACTIVE
+11 −2
Original line number Diff line number Diff line
@@ -17,7 +17,8 @@
package androidx.window.extensions.embedding;

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Binder;
import android.os.IBinder;
import android.util.Pair;
import android.util.Size;
import android.window.WindowContainerTransaction;
@@ -36,6 +37,8 @@ class SplitContainer {
    private final SplitRule mSplitRule;
    @NonNull
    private SplitAttributes mSplitAttributes;
    @NonNull
    private final IBinder mToken;

    SplitContainer(@NonNull TaskFragmentContainer primaryContainer,
            @NonNull Activity primaryActivity,
@@ -46,6 +49,7 @@ class SplitContainer {
        mSecondaryContainer = secondaryContainer;
        mSplitRule = splitRule;
        mSplitAttributes = splitAttributes;
        mToken = new Binder("SplitContainer");

        if (shouldFinishPrimaryWithSecondary(splitRule)) {
            if (mPrimaryContainer.getRunningActivityCount() == 1
@@ -83,6 +87,11 @@ class SplitContainer {
        return mSplitAttributes;
    }

    @NonNull
    IBinder getToken() {
        return mToken;
    }

    /**
     * Updates the {@link SplitAttributes} to this container.
     * It is usually used when there's a folding state change or
@@ -112,7 +121,7 @@ class SplitContainer {
    @NonNull
    SplitInfo toSplitInfo() {
        return new SplitInfo(mPrimaryContainer.toActivityStack(),
                mSecondaryContainer.toActivityStack(), mSplitAttributes);
                mSecondaryContainer.toActivityStack(), mSplitAttributes, mToken);
    }

    static boolean shouldFinishPrimaryWithSecondary(@NonNull SplitRule splitRule) {
+1 −1
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ class TaskFragmentContainer {

    @NonNull
    ActivityStack toActivityStack() {
        return new ActivityStack(collectNonFinishingActivities(), isEmpty());
        return new ActivityStack(collectNonFinishingActivities(), isEmpty(), mToken);
    }

    /** Adds the activity that will be reparented to this container. */