diff options
| author | 2019-11-22 19:04:25 +0000 | |
|---|---|---|
| committer | 2019-11-22 19:04:25 +0000 | |
| commit | 3f0a602a3adaa7a7f677b3582e388df2772bdd51 (patch) | |
| tree | dad0e1793f19aa1e028e6db772e62923fb4b1b88 | |
| parent | 8470c533ba40e14f0592336ddcd3f0b931e34aa1 (diff) | |
| parent | 015d8cd602efed6ba575398d3eebc6760b678073 (diff) | |
Merge "Reacquire wm lock when positing to handler"
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayPolicy.java | 9 |
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; |