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

Commit 537db9ac authored by Charles Chen's avatar Charles Chen
Browse files

Clean-up overlay flag

Test: presubmit
Bug: 243518738
Flag: EXEMPT clean up flag

Change-Id: Ie4172c405c7e2a313f9a2c17194496b2d0ceb042
parent 773d8aaf
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -5,13 +5,6 @@
package: "com.android.window.flags"
container: "system"

flag {
    namespace: "windowing_sdk"
    name: "activity_embedding_overlay_presentation_flag"
    description: "Whether the overlay presentation feature is enabled"
    bug: "293370683"
}

flag {
    namespace: "windowing_sdk"
    name: "task_fragment_system_organizer_flag"
+1 −18
Original line number Diff line number Diff line
@@ -107,7 +107,6 @@ import androidx.window.extensions.embedding.TransactionManager.TransactionRecord
import androidx.window.extensions.layout.WindowLayoutComponentImpl;

import com.android.internal.annotations.VisibleForTesting;
import com.android.window.flags.Flags;

import java.util.ArrayList;
import java.util.Collections;
@@ -421,9 +420,6 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
    public void setActivityStackAttributesCalculator(
            @NonNull Function<ActivityStackAttributesCalculatorParams, ActivityStackAttributes>
                    calculator) {
        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
            return;
        }
        synchronized (mLock) {
            mActivityStackAttributesCalculator = calculator;
        }
@@ -431,9 +427,6 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen

    @Override
    public void clearActivityStackAttributesCalculator() {
        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
            return;
        }
        synchronized (mLock) {
            mActivityStackAttributesCalculator = null;
        }
@@ -623,9 +616,6 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
    @Override
    public void updateActivityStackAttributes(@NonNull ActivityStack.Token activityStackToken,
                                              @NonNull ActivityStackAttributes attributes) {
        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
            return;
        }
        Objects.requireNonNull(activityStackToken);
        Objects.requireNonNull(attributes);

@@ -652,9 +642,6 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
    @Nullable
    public ParentContainerInfo getParentContainerInfo(
            @NonNull ActivityStack.Token activityStackToken) {
        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
            return null;
        }
        Objects.requireNonNull(activityStackToken);
        synchronized (mLock) {
            final TaskFragmentContainer container = getContainer(activityStackToken.getRawToken());
@@ -670,9 +657,6 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
    @Override
    @Nullable
    public ActivityStack.Token getActivityStackToken(@NonNull String tag) {
        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
            return null;
        }
        Objects.requireNonNull(tag);
        synchronized (mLock) {
            final TaskFragmentContainer taskFragmentContainer =
@@ -3152,8 +3136,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
                final TaskFragmentContainer launchedInTaskFragment;
                if (launchingActivity != null) {
                    final String overlayTag = options.getString(KEY_OVERLAY_TAG);
                    if (Flags.activityEmbeddingOverlayPresentationFlag()
                            && overlayTag != null) {
                    if (overlayTag != null) {
                        launchedInTaskFragment = createOrUpdateOverlayTaskFragmentIfNeeded(wct,
                                options, intent, launchingActivity);
                    } else {
+1 −12
Original line number Diff line number Diff line
@@ -62,7 +62,6 @@ import androidx.window.extensions.layout.WindowLayoutInfo;

import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.window.flags.Flags;

import java.util.ArrayList;
import java.util.List;
@@ -465,9 +464,6 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
    void setTaskFragmentIsolatedNavigation(@NonNull WindowContainerTransaction wct,
                                           @NonNull TaskFragmentContainer container,
                                           boolean isolatedNavigationEnabled) {
        if (!Flags.activityEmbeddingOverlayPresentationFlag() && container.isOverlay()) {
            return;
        }
        if (container.isIsolatedNavigationEnabled() == isolatedNavigationEnabled) {
            return;
        }
@@ -488,9 +484,6 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
    void setTaskFragmentPinned(@NonNull WindowContainerTransaction wct,
                               @NonNull TaskFragmentContainer container,
                               boolean pinned) {
        if (!Flags.activityEmbeddingOverlayPresentationFlag() && container.isOverlay()) {
            return;
        }
        if (container.isPinned() == pinned) {
            return;
        }
@@ -692,7 +685,7 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
        final TaskContainer taskContainer = container.getTaskContainer();
        final int windowingMode = taskContainer.getWindowingModeForTaskFragment(relativeBounds);
        updateTaskFragmentWindowingModeIfRegistered(wct, container, windowingMode);
        if (container.isOverlay() && isOverlayTransitionSupported()) {
        if (container.isOverlay()) {
            // Use the overlay transition for the overlay container if it's supported.
            final TaskFragmentAnimationParams params = createOverlayAnimationParams(relativeBounds,
                    taskContainer.getBounds(), container);
@@ -704,10 +697,6 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
        setTaskFragmentDimOnTask(wct, fragmentToken, dimOnTask);
    }

    private static boolean isOverlayTransitionSupported() {
        return Flags.activityEmbeddingOverlayPresentationFlag();
    }

    @NonNull
    private static TaskFragmentAnimationParams createOverlayAnimationParams(
            @NonNull Rect relativeBounds, @NonNull Rect parentContainerBounds,
+0 −47
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;

import android.app.Activity;
import android.app.ActivityOptions;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ActivityInfo;
@@ -70,7 +69,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.platform.test.annotations.Presubmit;
import android.platform.test.flag.junit.SetFlagsRule;
import android.util.Size;
import android.window.TaskFragmentAnimationParams;
import android.window.TaskFragmentInfo;
@@ -85,8 +83,6 @@ import androidx.window.common.DeviceStateManagerFoldingFeatureProducer;
import androidx.window.extensions.layout.WindowLayoutComponentImpl;
import androidx.window.extensions.layout.WindowLayoutInfo;

import com.android.window.flags.Flags;

import com.google.testing.junit.testparameterinjector.TestParameter;
import com.google.testing.junit.testparameterinjector.TestParameterInjector;

@@ -121,9 +117,6 @@ public class OverlayPresentationTest {
    private static final Intent PLACEHOLDER_INTENT = new Intent().setComponent(
            new ComponentName("test", "placeholder"));

    @Rule
    public final SetFlagsRule mSetFlagRule = new SetFlagsRule();

    private SplitController.ActivityStartMonitor mMonitor;

    private Intent mIntent;
@@ -168,8 +161,6 @@ public class OverlayPresentationTest {
        doReturn(activityConfig).when(mActivityResources).getConfiguration();
        doReturn(mHandler).when(mSplitController).getHandler();
        mActivity = createMockActivity();

        mSetFlagRule.enableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);
    }

    /** Creates a mock activity in the organizer process. */
@@ -186,44 +177,6 @@ public class OverlayPresentationTest {
        return activity;
    }

    @Test
    public void testStartActivity_overlayFeatureDisabled_notInvokeCreateOverlayContainer() {
        mSetFlagRule.disableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);

        final Bundle optionsBundle = ActivityOptions.makeBasic().toBundle();
        optionsBundle.putString(KEY_OVERLAY_TAG, "test");
        mMonitor.onStartActivity(mActivity, mIntent, optionsBundle);

        verify(mSplitController, never()).createOrUpdateOverlayTaskFragmentIfNeeded(any(), any(),
                any(), any());
    }

    @Test
    public void testSetIsolatedNavigation_overlayFeatureDisabled_earlyReturn() {
        mSetFlagRule.disableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);

        final TaskFragmentContainer container = createTestOverlayContainer(TASK_ID, "test");

        mSplitPresenter.setTaskFragmentIsolatedNavigation(mTransaction, container,
                !container.isIsolatedNavigationEnabled());

        verify(mSplitPresenter, never()).setTaskFragmentIsolatedNavigation(any(),
                any(IBinder.class), anyBoolean());
    }

    @Test
    public void testSetPinned_overlayFeatureDisabled_earlyReturn() {
        mSetFlagRule.disableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);

        final TaskFragmentContainer container = createTestOverlayContainer(TASK_ID, "test");

        mSplitPresenter.setTaskFragmentPinned(mTransaction, container,
                !container.isPinned());

        verify(mSplitPresenter, never()).setTaskFragmentPinned(any(), any(IBinder.class),
                anyBoolean());
    }

    @Test
    public void testGetAllNonFinishingOverlayContainers() {
        assertThat(mSplitController.getAllNonFinishingOverlayContainers()).isEmpty();
+13 −27
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.internal.annotations.VisibleForTesting;
import com.android.window.flags.Flags;
import com.android.wm.shell.activityembedding.ActivityEmbeddingAnimationAdapter.SnapshotAdapter;
import com.android.wm.shell.common.ScreenshotUtils;
import com.android.wm.shell.shared.TransitionUtil;
@@ -443,7 +442,7 @@ class ActivityEmbeddingAnimationRunner {
                }
            }

            calculateParentBounds(change, boundsAnimationChange, parentBounds);
            calculateParentBounds(change, parentBounds);
            // There are two animations in the array. The first one is for the start leash
            // (snapshot), and the second one is for the end leash (TaskFragment).
            final Animation[] animations =
@@ -529,8 +528,7 @@ class ActivityEmbeddingAnimationRunner {
     */
    @VisibleForTesting
    static void calculateParentBounds(@NonNull TransitionInfo.Change change,
              @NonNull TransitionInfo.Change boundsAnimationChange, @NonNull Rect outParentBounds) {
        if (Flags.activityEmbeddingOverlayPresentationFlag()) {
            @NonNull Rect outParentBounds) {
        final Point endParentSize = change.getEndParentSize();
        if (endParentSize.equals(0, 0)) {
            return;
@@ -543,18 +541,6 @@ class ActivityEmbeddingAnimationRunner {
        outParentBounds.set(parentEndAbsPosition.x, parentEndAbsPosition.y,
                parentEndAbsPosition.x + endParentSize.x,
                parentEndAbsPosition.y + endParentSize.y);
        } else {
            // The TaskFragment may be enter/exit split, so we take the union of both as
            // the parent size.
            outParentBounds.union(boundsAnimationChange.getStartAbsBounds());
            outParentBounds.union(boundsAnimationChange.getEndAbsBounds());
            if (boundsAnimationChange != change) {
                // Union the change starting bounds in case the activity is resized and
                // reparented to a TaskFragment. In that case, the TaskFragment may not cover
                // the activity's starting bounds.
                outParentBounds.union(change.getStartAbsBounds());
            }
        }
    }

    /**
Loading