summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Caitlin Cassidy <ccassidy@google.com> 2021-09-08 21:04:17 +0000
committer Caitlin Cassidy <ccassidy@google.com> 2021-10-06 12:56:43 +0000
commitaf84f95ca029b0b33b9b63798acccbab5b4ffbcc (patch)
treeb9a8f0b2a41c0b7f868c173ca0468f760f9824ca
parentb62c73879e4cbd7c8facc9de8fa8ee8e7b822173 (diff)
[Ongoing Call] Show semi-transparent background behind status bar in immersive mode.
Test: atest+manual Bug: 195839150 Change-Id: I0d79d889ddc199e290f8976b9b3ccb55ee8f51ac
-rw-r--r--packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java22
3 files changed, 19 insertions, 8 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java
index 6c5c4ef94921..9829918a0302 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java
@@ -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
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java
index 19876ba063bb..cbb3aba5cc64 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java
@@ -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);
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 2130e028e863..9415e506d179 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -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);
@@ -2237,7 +2241,7 @@ public class StatusBar extends SystemUI implements
if (!mTransientShown) {
mTransientShown = true;
mNoAnimationOnNextBarModeChange = true;
- handleTransientChanged();
+ maybeUpdateBarMode();
}
}
@@ -2245,11 +2249,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);
@@ -2267,9 +2271,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;
@@ -4471,6 +4477,12 @@ public class StatusBar extends SystemUI implements
updateReportRejectedTouchVisibility();
Trace.endSection();
}
+
+ @Override
+ public void onFullscreenStateChanged(boolean isFullscreen) {
+ mIsFullscreen = isFullscreen;
+ maybeUpdateBarMode();
+ }
};
private final BatteryController.BatteryStateChangeCallback mBatteryStateChangeCallback =