Merge "[Ongoing Call] Show semi-transparent background behind status bar in immersive mode." into sc-v2-dev am: a9129a5f9d am: df876ad5bf

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15785552

Change-Id: I677b6b54e58e0c219ef9442711a05489fc3ffbb1
This commit is contained in:
Caitlin Cassidy
2021-10-08 16:06:16 +00:00
committed by Automerger Merge Worker
3 changed files with 19 additions and 8 deletions

View File

@@ -109,9 +109,8 @@ public interface StatusBarStateController {
* Callback to be notified when the fullscreen or immersive state changes.
*
* @param isFullscreen if any of the system bar is hidden by the focused window.
* @param isImmersive if the navigation bar can stay hidden when the display gets tapped.
*/
default void onFullscreenStateChanged(boolean isFullscreen, boolean isImmersive) {}
default void onFullscreenStateChanged(boolean isFullscreen) {}
/**
* Callback to be notified when the pulsing state changes

View File

@@ -446,7 +446,7 @@ public class StatusBarStateControllerImpl implements
mIsFullscreen = isFullscreen;
synchronized (mListeners) {
for (RankedListener rl : new ArrayList<>(mListeners)) {
rl.mListener.onFullscreenStateChanged(isFullscreen, true /* isImmersive */);
rl.mListener.onFullscreenStateChanged(isFullscreen);
}
}
}

View File

@@ -628,6 +628,7 @@ public class StatusBar extends SystemUI implements
private final Executor mUiBgExecutor;
protected boolean mDozing;
private boolean mIsFullscreen;
private final NotificationMediaManager mMediaManager;
private final NotificationLockscreenUserManager mLockscreenUserManager;
@@ -909,6 +910,9 @@ public class StatusBar extends SystemUI implements
mActivityLaunchAnimator = activityLaunchAnimator;
mDialogLaunchAnimator = dialogLaunchAnimator;
// The status bar background may need updating when the ongoing call status changes.
mOngoingCallController.addCallback((animate) -> maybeUpdateBarMode());
// TODO(b/190746471): Find a better home for this.
DateTimeView.setReceiverHandler(timeTickHandler);
@@ -2242,7 +2246,7 @@ public class StatusBar extends SystemUI implements
if (!mTransientShown) {
mTransientShown = true;
mNoAnimationOnNextBarModeChange = true;
handleTransientChanged();
maybeUpdateBarMode();
}
}
@@ -2250,11 +2254,11 @@ public class StatusBar extends SystemUI implements
void clearTransient() {
if (mTransientShown) {
mTransientShown = false;
handleTransientChanged();
maybeUpdateBarMode();
}
}
private void handleTransientChanged() {
private void maybeUpdateBarMode() {
final int barMode = barMode(mTransientShown, mAppearance);
if (updateBarMode(barMode)) {
mLightBarController.onStatusBarModeChanged(barMode);
@@ -2272,9 +2276,11 @@ public class StatusBar extends SystemUI implements
return false;
}
private static @TransitionMode int barMode(boolean isTransient, int appearance) {
private @TransitionMode int barMode(boolean isTransient, int appearance) {
final int lightsOutOpaque = APPEARANCE_LOW_PROFILE_BARS | APPEARANCE_OPAQUE_STATUS_BARS;
if (isTransient) {
if (mOngoingCallController.hasOngoingCall() && mIsFullscreen) {
return MODE_SEMI_TRANSPARENT;
} else if (isTransient) {
return MODE_SEMI_TRANSPARENT;
} else if ((appearance & lightsOutOpaque) == lightsOutOpaque) {
return MODE_LIGHTS_OUT;
@@ -4476,6 +4482,12 @@ public class StatusBar extends SystemUI implements
updateReportRejectedTouchVisibility();
Trace.endSection();
}
@Override
public void onFullscreenStateChanged(boolean isFullscreen) {
mIsFullscreen = isFullscreen;
maybeUpdateBarMode();
}
};
private final BatteryController.BatteryStateChangeCallback mBatteryStateChangeCallback =