Merge "Describe requested visibilities in public types (4/n: sysui)"
This commit is contained in:
@@ -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);
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -87,7 +87,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;
|
||||
@@ -99,6 +98,7 @@ import android.view.ViewRootImpl.SurfaceChangedCallback;
|
||||
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;
|
||||
@@ -1085,7 +1085,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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -356,11 +356,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) { }
|
||||
|
||||
/**
|
||||
@@ -1090,7 +1090,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();
|
||||
@@ -1099,7 +1099,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();
|
||||
@@ -1582,8 +1582,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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
@@ -928,7 +928,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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
@@ -66,21 +66,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(
|
||||
@@ -89,7 +89,7 @@ internal constructor(
|
||||
originalAppearanceRegions.toList(),
|
||||
navbarColorManagedByIme,
|
||||
behavior,
|
||||
requestedVisibilities,
|
||||
requestedVisibleTypes,
|
||||
packageName,
|
||||
letterboxDetails.toList())
|
||||
|
||||
@@ -104,7 +104,7 @@ internal constructor(
|
||||
|
||||
centralSurfaces.updateBubblesVisibility()
|
||||
statusBarStateController.setSystemBarAttributes(
|
||||
appearance, behavior, requestedVisibilities, packageName)
|
||||
appearance, behavior, requestedVisibleTypes, packageName)
|
||||
}
|
||||
|
||||
private fun modifyAppearanceIfNeeded(
|
||||
@@ -137,14 +137,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()
|
||||
|
||||
@@ -35,7 +35,8 @@ import android.hardware.biometrics.IBiometricSysuiReceiver;
|
||||
import android.hardware.biometrics.PromptInfo;
|
||||
import android.hardware.fingerprint.IUdfpsRefreshRateRequestCallback;
|
||||
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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 */);
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -27,8 +24,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)
|
||||
@@ -88,7 +85,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() {
|
||||
changeSysBarAttrs(TEST_APPEARANCE)
|
||||
|
||||
verify(statusBarStateController)
|
||||
.setSystemBarAttributes(eq(TEST_APPEARANCE), anyInt(), any(), any())
|
||||
.setSystemBarAttributes(eq(TEST_APPEARANCE), anyInt(), anyInt(), any())
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -97,7 +94,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() {
|
||||
|
||||
verify(statusBarStateController)
|
||||
.setSystemBarAttributes(
|
||||
eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), any(), any())
|
||||
eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), anyInt(), any())
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -130,7 +127,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() {
|
||||
|
||||
verify(statusBarStateController)
|
||||
.setSystemBarAttributes(
|
||||
eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), any(), any())
|
||||
eq(TEST_LETTERBOX_APPEARANCE.appearance), anyInt(), anyInt(), any())
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -197,7 +194,7 @@ class SystemBarAttributesListenerTest : SysuiTestCase() {
|
||||
appearanceRegions,
|
||||
/* navbarColorManagedByIme= */ false,
|
||||
WindowInsetsController.BEHAVIOR_DEFAULT,
|
||||
InsetsVisibilities(),
|
||||
WindowInsets.Type.defaultVisible(),
|
||||
"package name",
|
||||
letterboxDetails)
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import android.hardware.fingerprint.IUdfpsRefreshRateRequestCallback;
|
||||
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 */
|
||||
|
||||
@@ -83,7 +83,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;
|
||||
|
||||
@@ -617,15 +618,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) { }
|
||||
}
|
||||
@@ -1211,7 +1212,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;
|
||||
@@ -1223,14 +1224,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;
|
||||
}
|
||||
@@ -1363,7 +1364,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,11 +115,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;
|
||||
@@ -314,7 +312,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;
|
||||
|
||||
@@ -2158,35 +2155,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) {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user