summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-11-22 19:04:25 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-11-22 19:04:25 +0000
commit3f0a602a3adaa7a7f677b3582e388df2772bdd51 (patch)
treedad0e1793f19aa1e028e6db772e62923fb4b1b88
parent8470c533ba40e14f0592336ddcd3f0b931e34aa1 (diff)
parent015d8cd602efed6ba575398d3eebc6760b678073 (diff)
Merge "Reacquire wm lock when positing to handler"
-rw-r--r--services/core/java/com/android/server/wm/DisplayPolicy.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 8d5f90d53019..77e557b87648 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -3126,12 +3126,13 @@ public class DisplayPolicy {
: new AppearanceRegion[]{
new AppearanceRegion(fullscreenAppearance, fullscreenStackBounds)};
final boolean isNavbarColorManagedByIme = result.second;
+ String cause = win.toString();
mHandler.post(() -> {
StatusBarManagerInternal statusBar = getStatusBarManagerInternal();
if (statusBar != null) {
final int displayId = getDisplayId();
statusBar.setDisableFlags(displayId, visibility & StatusBarManager.DISABLE_MASK,
- win.toString());
+ cause);
if (transientState.first.length > 0) {
statusBar.showTransient(displayId, transientState.first);
}
@@ -3143,8 +3144,10 @@ public class DisplayPolicy {
statusBar.topAppWindowChanged(displayId, isFullscreen, isImmersive);
// TODO(b/118118435): Remove this after removing system UI visibilities.
- mDisplayContent.statusBarVisibilityChanged(
- visibility & ~(View.STATUS_BAR_UNHIDE | View.NAVIGATION_BAR_UNHIDE));
+ synchronized (mLock) {
+ mDisplayContent.statusBarVisibilityChanged(
+ visibility & ~(View.STATUS_BAR_UNHIDE | View.NAVIGATION_BAR_UNHIDE));
+ }
}
});
return diff;