diff options
| author | 2022-10-19 17:02:28 +0800 | |
|---|---|---|
| committer | 2022-10-19 17:07:25 +0800 | |
| commit | f97972a767dfd473e743b37857007f59b0c52dba (patch) | |
| tree | 390f0f856506ce484fe68457d31fd93e1fa91c46 | |
| parent | ec584382fac02084c267ad7ad01b5f5b23734e6b (diff) | |
Describe requested visibilities in public types (4/n: sysui)
This CL migrates requestedVisibilities (InsetsVisibilities) to
requestedVisibleTypes (int) at System UI.
Bug: 253420890
Bug: 234093736
Test: atest RegisterStatusBarResultTest LightsOutNotifControllerTest
CentralSurfacesCommandQueueCallbacksTest
SystemBarAttributesListenerTest CommandQueueTest SizeCompatTests
Change-Id: I8f1644fae63218ccad04defc44b541d7415f50ed
20 files changed, 102 insertions, 132 deletions
diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl index 44cfe1aa4a79..19a4ba91c64e 100644 --- a/core/java/com/android/internal/statusbar/IStatusBar.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl @@ -29,7 +29,6 @@ import android.media.MediaRoute2Info; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.service.notification.StatusBarNotification; -import android.view.InsetsVisibilities; import com.android.internal.statusbar.IAddTileResultCallback; import com.android.internal.statusbar.IUndoMediaTransferCallback; @@ -201,13 +200,13 @@ oneway interface IStatusBar * stacks. * @param navbarColorManagedByIme {@code true} if navigation bar color is managed by IME. * @param behavior the behavior of the focused window. - * @param requestedVisibilities the collection of the requested visibilities of system insets. + * @param requestedVisibleTypes the collection of insets types requested visible. * @param packageName the package name of the focused app. * @param letterboxDetails a set of letterbox details of apps visible on the screen. */ void onSystemBarAttributesChanged(int displayId, int appearance, in AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - int behavior, in InsetsVisibilities requestedVisibilities, String packageName, + int behavior, int requestedVisibleTypes, String packageName, in LetterboxDetails[] letterboxDetails); /** diff --git a/core/java/com/android/internal/statusbar/RegisterStatusBarResult.java b/core/java/com/android/internal/statusbar/RegisterStatusBarResult.java index 8b898f01554f..54221ce92dc4 100644 --- a/core/java/com/android/internal/statusbar/RegisterStatusBarResult.java +++ b/core/java/com/android/internal/statusbar/RegisterStatusBarResult.java @@ -21,7 +21,6 @@ import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; import android.util.ArrayMap; -import android.view.InsetsVisibilities; import com.android.internal.view.AppearanceRegion; @@ -40,7 +39,7 @@ public final class RegisterStatusBarResult implements Parcelable { public final IBinder mImeToken; public final boolean mNavbarColorManagedByIme; public final int mBehavior; - public final InsetsVisibilities mRequestedVisibilities; + public final int mRequestedVisibleTypes; public final String mPackageName; public final int[] mTransientBarTypes; public final LetterboxDetails[] mLetterboxDetails; @@ -48,7 +47,7 @@ public final class RegisterStatusBarResult implements Parcelable { public RegisterStatusBarResult(ArrayMap<String, StatusBarIcon> icons, int disabledFlags1, int appearance, AppearanceRegion[] appearanceRegions, int imeWindowVis, int imeBackDisposition, boolean showImeSwitcher, int disabledFlags2, IBinder imeToken, - boolean navbarColorManagedByIme, int behavior, InsetsVisibilities requestedVisibilities, + boolean navbarColorManagedByIme, int behavior, int requestedVisibleTypes, String packageName, @NonNull int[] transientBarTypes, LetterboxDetails[] letterboxDetails) { mIcons = new ArrayMap<>(icons); @@ -62,7 +61,7 @@ public final class RegisterStatusBarResult implements Parcelable { mImeToken = imeToken; mNavbarColorManagedByIme = navbarColorManagedByIme; mBehavior = behavior; - mRequestedVisibilities = requestedVisibilities; + mRequestedVisibleTypes = requestedVisibleTypes; mPackageName = packageName; mTransientBarTypes = transientBarTypes; mLetterboxDetails = letterboxDetails; @@ -86,7 +85,7 @@ public final class RegisterStatusBarResult implements Parcelable { dest.writeStrongBinder(mImeToken); dest.writeBoolean(mNavbarColorManagedByIme); dest.writeInt(mBehavior); - dest.writeTypedObject(mRequestedVisibilities, 0); + dest.writeInt(mRequestedVisibleTypes); dest.writeString(mPackageName); dest.writeIntArray(mTransientBarTypes); dest.writeParcelableArray(mLetterboxDetails, flags); @@ -112,8 +111,7 @@ public final class RegisterStatusBarResult implements Parcelable { final IBinder imeToken = source.readStrongBinder(); final boolean navbarColorManagedByIme = source.readBoolean(); final int behavior = source.readInt(); - final InsetsVisibilities requestedVisibilities = - source.readTypedObject(InsetsVisibilities.CREATOR); + final int requestedVisibleTypes = source.readInt(); final String packageName = source.readString(); final int[] transientBarTypes = source.createIntArray(); final LetterboxDetails[] letterboxDetails = @@ -121,7 +119,7 @@ public final class RegisterStatusBarResult implements Parcelable { return new RegisterStatusBarResult(icons, disabledFlags1, appearance, appearanceRegions, imeWindowVis, imeBackDisposition, showImeSwitcher, disabledFlags2, imeToken, navbarColorManagedByIme, behavior, - requestedVisibilities, packageName, transientBarTypes, + requestedVisibleTypes, packageName, transientBarTypes, letterboxDetails); } diff --git a/core/tests/coretests/src/com/android/internal/statusbar/RegisterStatusBarResultTest.java b/core/tests/coretests/src/com/android/internal/statusbar/RegisterStatusBarResultTest.java index c53fb23ba948..048c48bc45fa 100644 --- a/core/tests/coretests/src/com/android/internal/statusbar/RegisterStatusBarResultTest.java +++ b/core/tests/coretests/src/com/android/internal/statusbar/RegisterStatusBarResultTest.java @@ -25,7 +25,7 @@ import android.os.Binder; import android.os.Parcel; import android.os.UserHandle; import android.util.ArrayMap; -import android.view.InsetsVisibilities; +import android.view.WindowInsets; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -65,7 +65,7 @@ public class RegisterStatusBarResultTest { new Binder() /* imeToken */, true /* navbarColorManagedByIme */, BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE, - new InsetsVisibilities() /* requestedVisibilities */, + WindowInsets.Type.defaultVisible(), "test" /* packageName */, new int[0] /* transientBarTypes */, new LetterboxDetails[] {letterboxDetails}); @@ -87,7 +87,7 @@ public class RegisterStatusBarResultTest { assertThat(copy.mImeToken).isSameInstanceAs(original.mImeToken); assertThat(copy.mNavbarColorManagedByIme).isEqualTo(original.mNavbarColorManagedByIme); assertThat(copy.mBehavior).isEqualTo(original.mBehavior); - assertThat(copy.mRequestedVisibilities).isEqualTo(original.mRequestedVisibilities); + assertThat(copy.mRequestedVisibleTypes).isEqualTo(original.mRequestedVisibleTypes); assertThat(copy.mPackageName).isEqualTo(original.mPackageName); assertThat(copy.mTransientBarTypes).isEqualTo(original.mTransientBarTypes); assertThat(copy.mLetterboxDetails).isEqualTo(original.mLetterboxDetails); diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 6da8c69c013b..96a12532c5ca 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -81,7 +81,6 @@ import android.view.Gravity; import android.view.HapticFeedbackConstants; import android.view.InsetsFrameProvider; import android.view.InsetsState.InternalInsetsType; -import android.view.InsetsVisibilities; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.Surface; @@ -89,6 +88,7 @@ import android.view.View; import android.view.ViewTreeObserver; import android.view.ViewTreeObserver.InternalInsetsInfo; import android.view.ViewTreeObserver.OnComputeInternalInsetsListener; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; import android.view.WindowManager; @@ -1042,7 +1042,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements @Override public void onSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, String packageName, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { if (displayId != mDisplayId) { return; diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java index 73fc21ef928c..eb87ff08d123 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java @@ -49,8 +49,8 @@ import android.os.IBinder; import android.os.RemoteException; import android.util.Log; import android.view.Display; -import android.view.InsetsVisibilities; import android.view.View; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; @@ -355,7 +355,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, @Override public void onSystemBarAttributesChanged(int displayId, int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, int behavior, - InsetsVisibilities requestedVisibilities, String packageName, + @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { mOverviewProxyService.onSystemBarAttributesChanged(displayId, behavior); boolean nbModeChanged = false; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java index 9d4a27c64e5b..ddd1cbbe0337 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java @@ -53,7 +53,7 @@ import android.os.RemoteException; import android.util.Pair; import android.util.SparseArray; import android.view.InsetsState.InternalInsetsType; -import android.view.InsetsVisibilities; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; @@ -352,11 +352,11 @@ public class CommandQueue extends IStatusBar.Stub implements default void onRecentsAnimationStateChanged(boolean running) { } /** - * @see IStatusBar#onSystemBarAttributesChanged. + * @see IStatusBar#onSystemBarAttributesChanged */ default void onSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { } /** @@ -1080,7 +1080,7 @@ public class CommandQueue extends IStatusBar.Stub implements @Override public void onSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, String packageName, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { synchronized (mLock) { SomeArgs args = SomeArgs.obtain(); @@ -1089,7 +1089,7 @@ public class CommandQueue extends IStatusBar.Stub implements args.argi3 = navbarColorManagedByIme ? 1 : 0; args.arg1 = appearanceRegions; args.argi4 = behavior; - args.arg2 = requestedVisibilities; + args.argi5 = requestedVisibleTypes; args.arg3 = packageName; args.arg4 = letterboxDetails; mHandler.obtainMessage(MSG_SYSTEM_BAR_CHANGED, args).sendToTarget(); @@ -1542,8 +1542,7 @@ public class CommandQueue extends IStatusBar.Stub implements for (int i = 0; i < mCallbacks.size(); i++) { mCallbacks.get(i).onSystemBarAttributesChanged(args.argi1, args.argi2, (AppearanceRegion[]) args.arg1, args.argi3 == 1, args.argi4, - (InsetsVisibilities) args.arg2, (String) args.arg3, - (LetterboxDetails[]) args.arg4); + args.argi5, (String) args.arg3, (LetterboxDetails[]) args.arg4); } args.recycle(); break; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java index c04bc8289f81..fdec745e8894 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java @@ -16,8 +16,6 @@ package com.android.systemui.statusbar; -import static android.view.InsetsState.ITYPE_NAVIGATION_BAR; -import static android.view.InsetsState.ITYPE_STATUS_BAR; import static android.view.WindowInsetsController.APPEARANCE_LOW_PROFILE_BARS; import static com.android.internal.jank.InteractionJankMonitor.CUJ_LOCKSCREEN_TRANSITION_FROM_AOD; @@ -34,9 +32,10 @@ import android.util.FloatProperty; import android.util.Log; import android.view.Choreographer; import android.view.InsetsFlags; -import android.view.InsetsVisibilities; import android.view.View; import android.view.ViewDebug; +import android.view.WindowInsets; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; import android.view.animation.Interpolator; @@ -497,9 +496,9 @@ public class StatusBarStateControllerImpl implements @Override public void setSystemBarAttributes(@Appearance int appearance, @Behavior int behavior, - InsetsVisibilities requestedVisibilities, String packageName) { - boolean isFullscreen = !requestedVisibilities.getVisibility(ITYPE_STATUS_BAR) - || !requestedVisibilities.getVisibility(ITYPE_NAVIGATION_BAR); + @InsetsType int requestedVisibleTypes, String packageName) { + boolean isFullscreen = (requestedVisibleTypes & WindowInsets.Type.statusBars()) == 0 + || (requestedVisibleTypes & WindowInsets.Type.navigationBars()) == 0; if (mIsFullscreen != isFullscreen) { mIsFullscreen = isFullscreen; synchronized (mListeners) { @@ -514,12 +513,12 @@ public class StatusBarStateControllerImpl implements if (DEBUG_IMMERSIVE_APPS) { boolean dim = (appearance & APPEARANCE_LOW_PROFILE_BARS) != 0; String behaviorName = ViewDebug.flagsToString(InsetsFlags.class, "behavior", behavior); - String requestedVisibilityString = requestedVisibilities.toString(); - if (requestedVisibilityString.isEmpty()) { - requestedVisibilityString = "none"; + String requestedVisibleTypesString = WindowInsets.Type.toString(requestedVisibleTypes); + if (requestedVisibleTypesString.isEmpty()) { + requestedVisibleTypesString = "none"; } Log.d(TAG, packageName + " dim=" + dim + " behavior=" + behaviorName - + " requested visibilities: " + requestedVisibilityString); + + " requested visible types: " + requestedVisibleTypesString); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java b/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java index 2cc77384fb2a..118910793418 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java @@ -19,8 +19,8 @@ package com.android.systemui.statusbar; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.annotation.IntDef; -import android.view.InsetsVisibilities; import android.view.View; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; @@ -154,7 +154,7 @@ public interface SysuiStatusBarStateController extends StatusBarStateController * Set the system bar attributes */ void setSystemBarAttributes(@Appearance int appearance, @Behavior int behavior, - InsetsVisibilities requestedVisibilities, String packageName); + @InsetsType int requestedVisibleTypes, String packageName); /** * Set pulsing diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java index d6fadcab9c25..41f0520a9d14 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacks.java @@ -38,8 +38,8 @@ import android.os.Vibrator; import android.util.Log; import android.util.Slog; import android.view.InsetsState.InternalInsetsType; -import android.view.InsetsVisibilities; import android.view.KeyEvent; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; @@ -458,7 +458,7 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba @Override public void onSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, String packageName, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { if (displayId != mDisplayId) { return; @@ -471,7 +471,7 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba appearanceRegions, navbarColorManagedByIme, behavior, - requestedVisibilities, + requestedVisibleTypes, packageName, letterboxDetails ); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 2c834cf781a6..7270c4885536 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -924,7 +924,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces { } mCommandQueueCallbacks.onSystemBarAttributesChanged(mDisplayId, result.mAppearance, result.mAppearanceRegions, result.mNavbarColorManagedByIme, result.mBehavior, - result.mRequestedVisibilities, result.mPackageName, result.mLetterboxDetails); + result.mRequestedVisibleTypes, result.mPackageName, result.mLetterboxDetails); // StatusBarManagerService has a back up of IME token and it's restored here. mCommandQueueCallbacks.setImeWindowStatus(mDisplayId, result.mImeToken, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java index 6e98c49e6d43..eba7fe09a8af 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightsOutNotifController.java @@ -22,8 +22,8 @@ import static com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFrag import android.animation.Animator; import android.animation.AnimatorListenerAdapter; -import android.view.InsetsVisibilities; import android.view.View; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; import android.view.WindowManager; @@ -144,7 +144,7 @@ public class LightsOutNotifController extends ViewController<View> { @Override public void onSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { if (displayId != mDisplayId) { return; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemBarAttributesListener.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemBarAttributesListener.kt index a0415f2f3d7c..e095c0fd6211 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemBarAttributesListener.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemBarAttributesListener.kt @@ -16,7 +16,7 @@ package com.android.systemui.statusbar.phone -import android.view.InsetsVisibilities +import android.view.WindowInsets.Type.InsetsType import android.view.WindowInsetsController.Appearance import android.view.WindowInsetsController.Behavior import com.android.internal.statusbar.LetterboxDetails @@ -69,21 +69,21 @@ internal constructor( params.appearanceRegionsArray, params.navbarColorManagedByIme, params.behavior, - params.requestedVisibilities, + params.requestedVisibleTypes, params.packageName, params.letterboxesArray) } } fun onSystemBarAttributesChanged( - displayId: Int, - @Appearance originalAppearance: Int, - originalAppearanceRegions: Array<AppearanceRegion>, - navbarColorManagedByIme: Boolean, - @Behavior behavior: Int, - requestedVisibilities: InsetsVisibilities, - packageName: String, - letterboxDetails: Array<LetterboxDetails> + displayId: Int, + @Appearance originalAppearance: Int, + originalAppearanceRegions: Array<AppearanceRegion>, + navbarColorManagedByIme: Boolean, + @Behavior behavior: Int, + @InsetsType requestedVisibleTypes: Int, + packageName: String, + letterboxDetails: Array<LetterboxDetails> ) { lastSystemBarAttributesParams = SystemBarAttributesParams( @@ -92,7 +92,7 @@ internal constructor( originalAppearanceRegions.toList(), navbarColorManagedByIme, behavior, - requestedVisibilities, + requestedVisibleTypes, packageName, letterboxDetails.toList()) @@ -107,7 +107,7 @@ internal constructor( centralSurfaces.updateBubblesVisibility() statusBarStateController.setSystemBarAttributes( - appearance, behavior, requestedVisibilities, packageName) + appearance, behavior, requestedVisibleTypes, packageName) } private fun modifyAppearanceIfNeeded( @@ -144,14 +144,14 @@ internal constructor( * [SystemBarAttributesListener.onSystemBarAttributesChanged]. */ private data class SystemBarAttributesParams( - val displayId: Int, - @Appearance val appearance: Int, - val appearanceRegions: List<AppearanceRegion>, - val navbarColorManagedByIme: Boolean, - @Behavior val behavior: Int, - val requestedVisibilities: InsetsVisibilities, - val packageName: String, - val letterboxes: List<LetterboxDetails>, + val displayId: Int, + @Appearance val appearance: Int, + val appearanceRegions: List<AppearanceRegion>, + val navbarColorManagedByIme: Boolean, + @Behavior val behavior: Int, + @InsetsType val requestedVisibleTypes: Int, + val packageName: String, + val letterboxes: List<LetterboxDetails>, ) { val letterboxesArray = letterboxes.toTypedArray() val appearanceRegionsArray = appearanceRegions.toTypedArray() diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java index cf7f8dd26647..0666a72b92eb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java @@ -35,7 +35,8 @@ import android.hardware.biometrics.IBiometricSysuiReceiver; import android.hardware.biometrics.PromptInfo; import android.hardware.fingerprint.IUdfpsHbmListener; import android.os.Bundle; -import android.view.InsetsVisibilities; +import android.view.WindowInsets; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; @@ -135,27 +136,29 @@ public class CommandQueueTest extends SysuiTestCase { public void testOnSystemBarAttributesChanged() { doTestOnSystemBarAttributesChanged(DEFAULT_DISPLAY, 1, new AppearanceRegion[]{new AppearanceRegion(2, new Rect())}, false, - BEHAVIOR_DEFAULT, new InsetsVisibilities(), "test", TEST_LETTERBOX_DETAILS); + BEHAVIOR_DEFAULT, WindowInsets.Type.defaultVisible(), "test", + TEST_LETTERBOX_DETAILS); } @Test public void testOnSystemBarAttributesChangedForSecondaryDisplay() { doTestOnSystemBarAttributesChanged(SECONDARY_DISPLAY, 1, new AppearanceRegion[]{new AppearanceRegion(2, new Rect())}, false, - BEHAVIOR_DEFAULT, new InsetsVisibilities(), "test", TEST_LETTERBOX_DETAILS); + BEHAVIOR_DEFAULT, WindowInsets.Type.defaultVisible(), "test", + TEST_LETTERBOX_DETAILS); } private void doTestOnSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, String packageName, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { mCommandQueue.onSystemBarAttributesChanged(displayId, appearance, appearanceRegions, - navbarColorManagedByIme, behavior, requestedVisibilities, packageName, + navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName, letterboxDetails); waitForIdleSync(); verify(mCallbacks).onSystemBarAttributesChanged(eq(displayId), eq(appearance), eq(appearanceRegions), eq(navbarColorManagedByIme), eq(behavior), - eq(requestedVisibilities), eq(packageName), eq(letterboxDetails)); + eq(requestedVisibleTypes), eq(packageName), eq(letterboxDetails)); } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java index e1f20d52d5fe..5ebaf692ab44 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesCommandQueueCallbacksTest.java @@ -29,7 +29,7 @@ import android.app.StatusBarManager; import android.os.PowerManager; import android.os.Vibrator; import android.testing.AndroidTestingRunner; -import android.view.InsetsVisibilities; +import android.view.WindowInsets; import androidx.test.filters.SmallTest; @@ -177,7 +177,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase { AppearanceRegion[] appearanceRegions = new AppearanceRegion[]{}; boolean navbarColorManagedByIme = true; int behavior = 456; - InsetsVisibilities requestedVisibilities = new InsetsVisibilities(); + int requestedVisibleTypes = WindowInsets.Type.systemBars(); String packageName = "test package name"; LetterboxDetails[] letterboxDetails = new LetterboxDetails[]{}; @@ -187,7 +187,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase { appearanceRegions, navbarColorManagedByIme, behavior, - requestedVisibilities, + requestedVisibleTypes, packageName, letterboxDetails); @@ -197,7 +197,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase { appearanceRegions, navbarColorManagedByIme, behavior, - requestedVisibilities, + requestedVisibleTypes, packageName, letterboxDetails ); @@ -209,7 +209,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase { AppearanceRegion[] appearanceRegions = new AppearanceRegion[]{}; boolean navbarColorManagedByIme = true; int behavior = 456; - InsetsVisibilities requestedVisibilities = new InsetsVisibilities(); + int requestedVisibleTypes = WindowInsets.Type.systemBars(); String packageName = "test package name"; LetterboxDetails[] letterboxDetails = new LetterboxDetails[]{}; @@ -219,7 +219,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase { appearanceRegions, navbarColorManagedByIme, behavior, - requestedVisibilities, + requestedVisibleTypes, packageName, letterboxDetails); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java index fca9771648ea..287ebba4db24 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightsOutNotifControllerTest.java @@ -30,6 +30,7 @@ import android.testing.TestableLooper.RunWithLooper; import android.view.Display; import android.view.View; import android.view.ViewPropertyAnimator; +import android.view.WindowInsets; import android.view.WindowManager; import androidx.lifecycle.Observer; @@ -107,7 +108,7 @@ public class LightsOutNotifControllerTest extends SysuiTestCase { null /* appearanceRegions */, false /* navbarColorManagedByIme */, BEHAVIOR_DEFAULT, - null /* requestedVisibilities */, + WindowInsets.Type.defaultVisible(), null /* packageName */, null /* letterboxDetails */); assertTrue(mLightsOutNotifController.areLightsOut()); @@ -121,7 +122,7 @@ public class LightsOutNotifControllerTest extends SysuiTestCase { null /* appearanceRegions */, false /* navbarColorManagedByIme */, BEHAVIOR_DEFAULT, - null /* requestedVisibilities */, + WindowInsets.Type.defaultVisible(), null /* packageName */, null /* letterboxDetails */); assertFalse(mLightsOutNotifController.areLightsOut()); @@ -153,7 +154,7 @@ public class LightsOutNotifControllerTest extends SysuiTestCase { null /* appearanceRegions */, false /* navbarColorManagedByIme */, BEHAVIOR_DEFAULT, - null /* requestedVisibilities */, + WindowInsets.Type.defaultVisible(), null /* packageName */, null /* letterboxDetails */); @@ -174,7 +175,7 @@ public class LightsOutNotifControllerTest extends SysuiTestCase { null /* appearanceRegions */, false /* navbarColorManagedByIme */, BEHAVIOR_DEFAULT, - null /* requestedVisibilities */, + WindowInsets.Type.defaultVisible(), null /* packageName */, null /* letterboxDetails */); @@ -195,7 +196,7 @@ public class LightsOutNotifControllerTest extends SysuiTestCase { null /* appearanceRegions */, false /* navbarColorManagedByIme */, BEHAVIOR_DEFAULT, - null /* requestedVisibilities */, + WindowInsets.Type.defaultVisible(), null /* packageName */, null /* letterboxDetails */); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemBarAttributesListenerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemBarAttributesListenerTest.kt index fa7b2599c108..c49602afbc37 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemBarAttributesListenerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemBarAttributesListenerTest.kt @@ -3,12 +3,9 @@ package com.android.systemui.statusbar.phone import android.graphics.Rect import android.testing.AndroidTestingRunner import android.view.Display -import android.view.InsetsVisibilities +import android.view.WindowInsets import android.view.WindowInsetsController -import android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS -import android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS -import android.view.WindowInsetsController.APPEARANCE_LOW_PROFILE_BARS -import android.view.WindowInsetsController.Appearance +import android.view.WindowInsetsController.* import androidx.test.filters.SmallTest import com.android.internal.statusbar.LetterboxDetails import com.android.internal.view.AppearanceRegion @@ -29,8 +26,8 @@ import org.mockito.Mockito import org.mockito.Mockito.reset import org.mockito.Mockito.verify import org.mockito.Mockito.verifyZeroInteractions -import org.mockito.Mockito.`when` as whenever import org.mockito.MockitoAnnotations +import org.mockito.Mockito.`when` as whenever @SmallTest @RunWith(AndroidTestingRunner::class) @@ -96,7 +93,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() { changeSysBarAttrs(TEST_APPEARANCE) verify(statusBarStateController) - .setSystemBarAttributes(eq(TEST_APPEARANCE), anyInt(), any(), any()) + .setSystemBarAttributes(eq(TEST_APPEARANCE), anyInt(), anyInt(), any()) } @Test @@ -107,7 +104,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() { verify(statusBarStateController) .setSystemBarAttributes( - eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), any(), any()) + eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), anyInt(), any()) } @Test @@ -143,7 +140,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() { verify(statusBarStateController) .setSystemBarAttributes( - eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), any(), any()) + eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), anyInt(), any()) } @Test @@ -224,7 +221,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() { appearanceRegions, /* navbarColorManagedByIme= */ false, WindowInsetsController.BEHAVIOR_DEFAULT, - InsetsVisibilities(), + WindowInsets.Type.defaultVisible(), "package name", letterboxDetails) } diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java index 4111446ae670..a4f0a7a45e5c 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java @@ -22,7 +22,7 @@ import android.hardware.fingerprint.IUdfpsHbmListener; import android.os.Bundle; import android.os.IBinder; import android.view.InsetsState.InternalInsetsType; -import android.view.InsetsVisibilities; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; @@ -158,7 +158,7 @@ public interface StatusBarManagerInternal { /** @see com.android.internal.statusbar.IStatusBar#onSystemBarAttributesChanged */ void onSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, String packageName, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails); /** @see com.android.internal.statusbar.IStatusBar#showTransient */ diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java index 7ccf85f34737..b19d72a088f4 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java @@ -80,7 +80,8 @@ import android.util.Pair; import android.util.Slog; import android.util.SparseArray; import android.view.InsetsState.InternalInsetsType; -import android.view.InsetsVisibilities; +import android.view.WindowInsets; +import android.view.WindowInsets.Type.InsetsType; import android.view.WindowInsetsController.Appearance; import android.view.WindowInsetsController.Behavior; @@ -614,15 +615,15 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D @Override public void onSystemBarAttributesChanged(int displayId, @Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { getUiState(displayId).setBarAttributes(appearance, appearanceRegions, - navbarColorManagedByIme, behavior, requestedVisibilities, packageName, + navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName, letterboxDetails); if (mBar != null) { try { mBar.onSystemBarAttributesChanged(displayId, appearance, appearanceRegions, - navbarColorManagedByIme, behavior, requestedVisibilities, packageName, + navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName, letterboxDetails); } catch (RemoteException ex) { } } @@ -1208,7 +1209,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D private final ArraySet<Integer> mTransientBarTypes = new ArraySet<>(); private boolean mNavbarColorManagedByIme = false; private @Behavior int mBehavior; - private InsetsVisibilities mRequestedVisibilities = new InsetsVisibilities(); + private @InsetsType int mRequestedVisibleTypes = WindowInsets.Type.defaultVisible(); private String mPackageName = "none"; private int mDisabled1 = 0; private int mDisabled2 = 0; @@ -1220,14 +1221,14 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D private void setBarAttributes(@Appearance int appearance, AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme, - @Behavior int behavior, InsetsVisibilities requestedVisibilities, + @Behavior int behavior, @InsetsType int requestedVisibleTypes, String packageName, LetterboxDetails[] letterboxDetails) { mAppearance = appearance; mAppearanceRegions = appearanceRegions; mNavbarColorManagedByIme = navbarColorManagedByIme; mBehavior = behavior; - mRequestedVisibilities = requestedVisibilities; + mRequestedVisibleTypes = requestedVisibleTypes; mPackageName = packageName; mLetterboxDetails = letterboxDetails; } @@ -1355,7 +1356,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D state.mAppearance, state.mAppearanceRegions, state.mImeWindowVis, state.mImeBackDisposition, state.mShowImeSwitcher, gatherDisableActionsLocked(mCurrentUserId, 2), state.mImeToken, - state.mNavbarColorManagedByIme, state.mBehavior, state.mRequestedVisibilities, + state.mNavbarColorManagedByIme, state.mBehavior, state.mRequestedVisibleTypes, state.mPackageName, transientBarTypes, state.mLetterboxDetails); } } diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 02b48de8c7a0..74d0cc66b239 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -123,11 +123,9 @@ import android.view.InsetsFrameProvider; import android.view.InsetsSource; import android.view.InsetsState; import android.view.InsetsState.InternalInsetsType; -import android.view.InsetsVisibilities; import android.view.Surface; import android.view.View; import android.view.ViewDebug; -import android.view.WindowInsets; import android.view.WindowInsets.Type; import android.view.WindowInsets.Type.InsetsType; import android.view.WindowLayout; @@ -326,7 +324,6 @@ public class DisplayPolicy { private int mLastAppearance; private int mLastBehavior; private int mLastRequestedVisibleTypes = Type.defaultVisible(); - private InsetsVisibilities mRequestedVisibilities = new InsetsVisibilities(); private AppearanceRegion[] mLastStatusBarAppearanceRegions; private LetterboxDetails[] mLastLetterboxDetails; @@ -2346,35 +2343,16 @@ public class DisplayPolicy { mService.mInputManager.setSystemUiLightsOut( isFullscreen || (appearance & APPEARANCE_LOW_PROFILE_BARS) != 0); } - final InsetsVisibilities requestedVisibilities = - mLastRequestedVisibleTypes == requestedVisibleTypes - ? mRequestedVisibilities - : toInsetsVisibilities(requestedVisibleTypes); mLastAppearance = appearance; mLastBehavior = behavior; mLastRequestedVisibleTypes = requestedVisibleTypes; - mRequestedVisibilities = requestedVisibilities; mFocusedApp = focusedApp; mLastFocusIsFullscreen = isFullscreen; mLastStatusBarAppearanceRegions = statusBarAppearanceRegions; mLastLetterboxDetails = letterboxDetails; callStatusBarSafely(statusBar -> statusBar.onSystemBarAttributesChanged(displayId, appearance, statusBarAppearanceRegions, isNavbarColorManagedByIme, behavior, - requestedVisibilities, focusedApp, letterboxDetails)); - } - - // TODO (253420890): Remove this when removing mRequestedVisibilities. - private static InsetsVisibilities toInsetsVisibilities(@InsetsType int requestedVisibleTypes) { - final @InsetsType int defaultVisibleTypes = WindowInsets.Type.defaultVisible(); - final InsetsVisibilities insetsVisibilities = new InsetsVisibilities(); - for (@InternalInsetsType int i = InsetsState.SIZE - 1; i >= 0; i--) { - @InsetsType int type = InsetsState.toPublicType(i); - if ((type & (requestedVisibleTypes ^ defaultVisibleTypes)) != 0) { - // We only set the visibility if it is different from the default one. - insetsVisibilities.setVisibility(i, (type & requestedVisibleTypes) != 0); - } - } - return insetsVisibilities; + requestedVisibleTypes, focusedApp, letterboxDetails)); } private void callStatusBarSafely(Consumer<StatusBarManagerInternal> consumer) { diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java index d59fce089292..c906abcdc986 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java @@ -87,7 +87,6 @@ import android.platform.test.annotations.Presubmit; import android.provider.DeviceConfig; import android.provider.DeviceConfig.Properties; import android.view.InsetsFrameProvider; -import android.view.InsetsVisibilities; import android.view.WindowManager; import androidx.test.filters.MediumTest; @@ -2302,8 +2301,7 @@ public class SizeCompatTests extends WindowTestsBase { // We should get a null LetterboxDetails object as there is no letterboxed activity, so // nothing will get passed to SysUI verify(statusBar, never()).onSystemBarAttributesChanged(anyInt(), anyInt(), - any(), anyBoolean(), anyInt(), - any(InsetsVisibilities.class), isNull(), isNull()); + any(), anyBoolean(), anyInt(), anyInt(), isNull(), isNull()); } @@ -2331,8 +2329,7 @@ public class SizeCompatTests extends WindowTestsBase { // Check that letterboxDetails actually gets passed to SysUI StatusBarManagerInternal statusBar = displayPolicy.getStatusBarManagerInternal(); verify(statusBar).onSystemBarAttributesChanged(anyInt(), anyInt(), - any(), anyBoolean(), anyInt(), - any(InsetsVisibilities.class), isNull(), eq(expectedLetterboxDetails)); + any(), anyBoolean(), anyInt(), anyInt(), isNull(), eq(expectedLetterboxDetails)); } @Test @@ -2367,8 +2364,7 @@ public class SizeCompatTests extends WindowTestsBase { // Check that letterboxDetails actually gets passed to SysUI StatusBarManagerInternal statusBarManager = displayPolicy.getStatusBarManagerInternal(); verify(statusBarManager).onSystemBarAttributesChanged(anyInt(), anyInt(), - any(), anyBoolean(), anyInt(), - any(InsetsVisibilities.class), isNull(), eq(expectedLetterboxDetails)); + any(), anyBoolean(), anyInt(), anyInt(), isNull(), eq(expectedLetterboxDetails)); } @Test @@ -2420,8 +2416,7 @@ public class SizeCompatTests extends WindowTestsBase { // Check that letterboxDetails actually gets passed to SysUI StatusBarManagerInternal statusBar = displayPolicy.getStatusBarManagerInternal(); verify(statusBar).onSystemBarAttributesChanged(anyInt(), anyInt(), - any(), anyBoolean(), anyInt(), - any(InsetsVisibilities.class), isNull(), eq(expectedLetterboxDetails)); + any(), anyBoolean(), anyInt(), anyInt(), isNull(), eq(expectedLetterboxDetails)); } private void recomputeNaturalConfigurationOfUnresizableActivity() { |