summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Charles Chen <charlesccchen@google.com> 2025-02-17 16:48:12 +0800
committer Charles Chen <charlesccchen@google.com> 2025-02-21 12:04:47 +0800
commit537db9acd19c02d0314a22f7c2578c02d716f442 (patch)
treea7fad8cda77b7704882e00358db2b188ee38802f
parent773d8aaf2f99adf14a1e1d87279e8bc646cad623 (diff)
Clean-up overlay flag
Test: presubmit Bug: 243518738 Flag: EXEMPT clean up flag Change-Id: Ie4172c405c7e2a313f9a2c17194496b2d0ceb042
-rw-r--r--core/java/android/window/flags/windowing_sdk.aconfig7
-rw-r--r--libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java19
-rw-r--r--libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java13
-rw-r--r--libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java47
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java40
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java11
-rw-r--r--services/core/java/com/android/server/wm/Transition.java7
7 files changed, 19 insertions, 125 deletions
diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig
index 6e45d3dc659f..f2490a376dad 100644
--- a/core/java/android/window/flags/windowing_sdk.aconfig
+++ b/core/java/android/window/flags/windowing_sdk.aconfig
@@ -7,13 +7,6 @@ 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"
description: "Whether the TaskFragment system organizer feature is enabled"
bug: "284050041"
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
index b0fadb06b7e3..e141f70d8abb 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
@@ -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 {
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
index 7ab9e2e65b76..f2c1115306d0 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
@@ -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,
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java
index 5b97e7e2ca71..4334a9c266d1 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java
@@ -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. */
@@ -187,44 +178,6 @@ public class OverlayPresentationTest {
}
@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();
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
index 78f5154c0ecb..c3e783ddf4f1 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
@@ -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,32 +528,19 @@ class ActivityEmbeddingAnimationRunner {
*/
@VisibleForTesting
static void calculateParentBounds(@NonNull TransitionInfo.Change change,
- @NonNull TransitionInfo.Change boundsAnimationChange, @NonNull Rect outParentBounds) {
- if (Flags.activityEmbeddingOverlayPresentationFlag()) {
- final Point endParentSize = change.getEndParentSize();
- if (endParentSize.equals(0, 0)) {
- return;
- }
- final Point endRelPosition = change.getEndRelOffset();
- final Point endAbsPosition = new Point(change.getEndAbsBounds().left,
- change.getEndAbsBounds().top);
- final Point parentEndAbsPosition = new Point(endAbsPosition.x - endRelPosition.x,
- endAbsPosition.y - endRelPosition.y);
- 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());
- }
+ @NonNull Rect outParentBounds) {
+ final Point endParentSize = change.getEndParentSize();
+ if (endParentSize.equals(0, 0)) {
+ return;
}
+ final Point endRelPosition = change.getEndRelOffset();
+ final Point endAbsPosition = new Point(change.getEndAbsBounds().left,
+ change.getEndAbsBounds().top);
+ final Point parentEndAbsPosition = new Point(endAbsPosition.x - endRelPosition.x,
+ endAbsPosition.y - endRelPosition.y);
+ outParentBounds.set(parentEndAbsPosition.x, parentEndAbsPosition.y,
+ parentEndAbsPosition.x + endParentSize.x,
+ parentEndAbsPosition.y + endParentSize.y);
}
/**
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
index 17419da2d1bc..bc965b9729cb 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
@@ -39,14 +39,12 @@ import android.animation.Animator;
import android.annotation.NonNull;
import android.graphics.Point;
import android.graphics.Rect;
-import android.platform.test.annotations.EnableFlags;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.window.TransitionInfo;
import androidx.test.filters.SmallTest;
-import com.android.window.flags.Flags;
import com.android.wm.shell.transition.TransitionInfoBuilder;
import com.google.testing.junit.testparameterinjector.TestParameter;
@@ -146,12 +144,9 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
assertEquals(0, animator.getDuration());
}
- // TODO(b/243518738): Rewrite with TestParameter
- @EnableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG)
@Test
public void testCalculateParentBounds_flagEnabled_emptyParentSize() {
TransitionInfo.Change change;
- final TransitionInfo.Change stubChange = createChange(0 /* flags */);
final Rect actualParentBounds = new Rect();
change = prepareChangeForParentBoundsCalculationTest(
new Point(0, 0) /* endRelOffset */,
@@ -159,17 +154,15 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
new Point() /* endParentSize */
);
- calculateParentBounds(change, stubChange, actualParentBounds);
+ calculateParentBounds(change, actualParentBounds);
assertTrue("Parent bounds must be empty because end parent size is not set.",
actualParentBounds.isEmpty());
}
- @EnableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG)
@Test
public void testCalculateParentBounds_flagEnabled(
@TestParameter ParentBoundsTestParameters params) {
- final TransitionInfo.Change stubChange = createChange(0 /*flags*/);
final Rect parentBounds = params.getParentBounds();
final Rect endAbsBounds = params.getEndAbsBounds();
final TransitionInfo.Change change = prepareChangeForParentBoundsCalculationTest(
@@ -178,7 +171,7 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim
endAbsBounds, new Point(parentBounds.width(), parentBounds.height()));
final Rect actualParentBounds = new Rect();
- calculateParentBounds(change, stubChange, actualParentBounds);
+ calculateParentBounds(change, actualParentBounds);
assertEquals(parentBounds, actualParentBounds);
}
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index a84feca054e7..10fc4a4dad24 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -3024,9 +3024,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
final Rect parentBounds = parent.getBounds();
change.setEndRelOffset(bounds.left - parentBounds.left,
bounds.top - parentBounds.top);
- if (Flags.activityEmbeddingOverlayPresentationFlag()) {
- change.setEndParentSize(parentBounds.width(), parentBounds.height());
- }
+ change.setEndParentSize(parentBounds.width(), parentBounds.height());
int endRotation = target.getWindowConfiguration().getRotation();
if (activityRecord != null) {
// TODO(b/227427984): Shell needs to aware letterbox.
@@ -3077,8 +3075,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
AnimationOptions animOptions = null;
if (activityRecord != null && animOptionsForActivityTransition != null) {
animOptions = animOptionsForActivityTransition;
- } else if (Flags.activityEmbeddingOverlayPresentationFlag()
- && isEmbeddedTaskFragment) {
+ } else if (isEmbeddedTaskFragment) {
final TaskFragmentAnimationParams params = taskFragment.getAnimationParams();
if (params.hasOverrideAnimation()) {
// Only set AnimationOptions if there's any animation override.