Merge "[Ongoing Call] Show semi-transparent background behind status bar in immersive mode." into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a9129a5f9d
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user