diff options
| author | 2025-02-17 16:48:12 +0800 | |
|---|---|---|
| committer | 2025-02-21 12:04:47 +0800 | |
| commit | 537db9acd19c02d0314a22f7c2578c02d716f442 (patch) | |
| tree | a7fad8cda77b7704882e00358db2b188ee38802f | |
| parent | 773d8aaf2f99adf14a1e1d87279e8bc646cad623 (diff) | |
Clean-up overlay flag
Test: presubmit
Bug: 243518738
Flag: EXEMPT clean up flag
Change-Id: Ie4172c405c7e2a313f9a2c17194496b2d0ceb042
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. |