Merge "[Ongoing Call] Show semi-transparent background behind status bar in immersive mode." into sc-v2-dev am: a9129a5f9d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15785552 Change-Id: I36f38feb36fcf47702de1888ed6d281dc6df9fa2
This commit is contained in:
@@ -109,9 +109,8 @@ public interface StatusBarStateController {
|
|||||||
* Callback to be notified when the fullscreen or immersive state changes.
|
* 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 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
|
* Callback to be notified when the pulsing state changes
|
||||||
|
|||||||
@@ -446,7 +446,7 @@ public class StatusBarStateControllerImpl implements
|
|||||||
mIsFullscreen = isFullscreen;
|
mIsFullscreen = isFullscreen;
|
||||||
synchronized (mListeners) {
|
synchronized (mListeners) {
|
||||||
for (RankedListener rl : new ArrayList<>(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;
|
private final Executor mUiBgExecutor;
|
||||||
|
|
||||||
protected boolean mDozing;
|
protected boolean mDozing;
|
||||||
|
private boolean mIsFullscreen;
|
||||||
|
|
||||||
private final NotificationMediaManager mMediaManager;
|
private final NotificationMediaManager mMediaManager;
|
||||||
private final NotificationLockscreenUserManager mLockscreenUserManager;
|
private final NotificationLockscreenUserManager mLockscreenUserManager;
|
||||||
@@ -909,6 +910,9 @@ public class StatusBar extends SystemUI implements
|
|||||||
mActivityLaunchAnimator = activityLaunchAnimator;
|
mActivityLaunchAnimator = activityLaunchAnimator;
|
||||||
mDialogLaunchAnimator = dialogLaunchAnimator;
|
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.
|
// TODO(b/190746471): Find a better home for this.
|
||||||
DateTimeView.setReceiverHandler(timeTickHandler);
|
DateTimeView.setReceiverHandler(timeTickHandler);
|
||||||
|
|
||||||
@@ -2243,7 +2247,7 @@ public class StatusBar extends SystemUI implements
|
|||||||
if (!mTransientShown) {
|
if (!mTransientShown) {
|
||||||
mTransientShown = true;
|
mTransientShown = true;
|
||||||
mNoAnimationOnNextBarModeChange = true;
|
mNoAnimationOnNextBarModeChange = true;
|
||||||
handleTransientChanged();
|
maybeUpdateBarMode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2251,11 +2255,11 @@ public class StatusBar extends SystemUI implements
|
|||||||
void clearTransient() {
|
void clearTransient() {
|
||||||
if (mTransientShown) {
|
if (mTransientShown) {
|
||||||
mTransientShown = false;
|
mTransientShown = false;
|
||||||
handleTransientChanged();
|
maybeUpdateBarMode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleTransientChanged() {
|
private void maybeUpdateBarMode() {
|
||||||
final int barMode = barMode(mTransientShown, mAppearance);
|
final int barMode = barMode(mTransientShown, mAppearance);
|
||||||
if (updateBarMode(barMode)) {
|
if (updateBarMode(barMode)) {
|
||||||
mLightBarController.onStatusBarModeChanged(barMode);
|
mLightBarController.onStatusBarModeChanged(barMode);
|
||||||
@@ -2273,9 +2277,11 @@ public class StatusBar extends SystemUI implements
|
|||||||
return false;
|
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;
|
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;
|
return MODE_SEMI_TRANSPARENT;
|
||||||
} else if ((appearance & lightsOutOpaque) == lightsOutOpaque) {
|
} else if ((appearance & lightsOutOpaque) == lightsOutOpaque) {
|
||||||
return MODE_LIGHTS_OUT;
|
return MODE_LIGHTS_OUT;
|
||||||
@@ -4477,6 +4483,12 @@ public class StatusBar extends SystemUI implements
|
|||||||
updateReportRejectedTouchVisibility();
|
updateReportRejectedTouchVisibility();
|
||||||
Trace.endSection();
|
Trace.endSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFullscreenStateChanged(boolean isFullscreen) {
|
||||||
|
mIsFullscreen = isFullscreen;
|
||||||
|
maybeUpdateBarMode();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final BatteryController.BatteryStateChangeCallback mBatteryStateChangeCallback =
|
private final BatteryController.BatteryStateChangeCallback mBatteryStateChangeCallback =
|
||||||
|
|||||||
Reference in New Issue
Block a user