diff options
author | Chris Li <lihongyu@google.com> | 2023-11-16 10:10:07 +0000 |
---|---|---|
committer | Chris Li <lihongyu@google.com> | 2023-11-16 12:03:09 +0000 |
commit | 074f5056f0af89d59b1a0dfdfab9da32597ffc6e (patch) | |
tree | 200f84d4b8f3b2df144af4257a9abbab218ea0e1 | |
parent | 3a2972e54499271bf5eae0809d60b018ac6d00f6 (diff) | |
download | base-074f5056f0af89d59b1a0dfdfab9da32597ffc6e.tar.gz |
Disable AE component for device that doesn't support multi window
Low memory device that doesn't support multi window will not support AE
either.
Bug: 301861200
Test: atest WMJetpackUnitTests:WindowExtensionsTest
Merged-In: I54656fecfcd022d80d03464e111b582ac64808e8
Change-Id: I54656fecfcd022d80d03464e111b582ac64808e8
2 files changed, 15 insertions, 2 deletions
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java index 76e0e1eb7a95..fcdf6aad8627 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java @@ -16,12 +16,14 @@ package androidx.window.extensions; +import android.app.ActivityTaskManager; import android.app.ActivityThread; import android.app.Application; import android.content.Context; import android.window.TaskFragmentOrganizer; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.window.common.DeviceStateManagerFoldingFeatureProducer; import androidx.window.common.RawFoldingFeatureProducer; import androidx.window.extensions.area.WindowAreaComponent; @@ -111,9 +113,13 @@ public class WindowExtensionsImpl implements WindowExtensions { * {@link WindowExtensions#getWindowLayoutComponent()}. * @return {@link ActivityEmbeddingComponent} OEM implementation. */ - @NonNull + @Nullable public ActivityEmbeddingComponent getActivityEmbeddingComponent() { if (mSplitController == null) { + if (!ActivityTaskManager.supportsMultiWindow(getApplication())) { + // Disable AE for device that doesn't support multi window. + return null; + } synchronized (mLock) { if (mSplitController == null) { mSplitController = new SplitController( diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/WindowExtensionsTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/WindowExtensionsTest.java index d189ae2cf72e..45564cb46c67 100644 --- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/WindowExtensionsTest.java +++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/WindowExtensionsTest.java @@ -16,8 +16,11 @@ package androidx.window.extensions; +import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; + import static com.google.common.truth.Truth.assertThat; +import android.app.ActivityTaskManager; import android.platform.test.annotations.Presubmit; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -52,7 +55,11 @@ public class WindowExtensionsTest { @Test public void testGetActivityEmbeddingComponent() { - assertThat(mExtensions.getActivityEmbeddingComponent()).isNotNull(); + if (ActivityTaskManager.supportsMultiWindow(getInstrumentation().getContext())) { + assertThat(mExtensions.getActivityEmbeddingComponent()).isNotNull(); + } else { + assertThat(mExtensions.getActivityEmbeddingComponent()).isNull(); + } } @Test |