From 53f28eccc546504cb1e894c02176ecce3139264e Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Wed, 29 Oct 2014 17:26:12 +0100 Subject: [PATCH] Improve dump of status bar service Tracks which window caused the disable flags instead of just blaming PhoneWindowManager. Bug: 17830264 Change-Id: If6c957120bb2ee8e0083f80e35c71eb21b8672b6 --- .../com/android/internal/statusbar/IStatusBarService.aidl | 2 +- .../systemui/statusbar/phone/NavigationBarTransitions.java | 3 ++- .../com/android/internal/policy/impl/PhoneWindowManager.java | 5 +++-- .../android/server/statusbar/StatusBarManagerService.java | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl index e6bcea1eb4ab1..5e610ed32d006 100644 --- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl @@ -51,7 +51,7 @@ interface IStatusBarService void onNotificationVisibilityChanged( in String[] newlyVisibleKeys, in String[] noLongerVisibleKeys); void onNotificationExpansionChanged(in String key, in boolean userAction, in boolean expanded); - void setSystemUiVisibility(int vis, int mask); + void setSystemUiVisibility(int vis, int mask, String cause); void setWindowState(int window, int state); void showRecentApps(boolean triggeredFromAltTab); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java index f3930ba14014b..052b6c6258077 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java @@ -171,7 +171,8 @@ public final class NavigationBarTransitions extends BarTransitions { applyLightsOut(false, false, false); try { - mBarService.setSystemUiVisibility(0, View.SYSTEM_UI_FLAG_LOW_PROFILE); + mBarService.setSystemUiVisibility(0, View.SYSTEM_UI_FLAG_LOW_PROFILE, + "LightsOutListener"); } catch (android.os.RemoteException ex) { } } diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 558cf56f14d61..12ff4f614db00 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -5730,7 +5730,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { private int updateSystemUiVisibilityLw() { // If there is no window focused, there will be nobody to handle the events // anyway, so just hang on in whatever state we're in until things settle down. - WindowState win = mFocusedWindow != null ? mFocusedWindow : mTopFullscreenOpaqueWindowState; + final WindowState win = mFocusedWindow != null ? mFocusedWindow + : mTopFullscreenOpaqueWindowState; if (win == null) { return 0; } @@ -5766,7 +5767,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { try { IStatusBarService statusbar = getStatusBarService(); if (statusbar != null) { - statusbar.setSystemUiVisibility(visibility, 0xffffffff); + statusbar.setSystemUiVisibility(visibility, 0xffffffff, win.toString()); statusbar.topAppWindowChanged(needsMenu); } } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java index 15e0bf03d2e0b..1919281e53293 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java @@ -353,7 +353,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub { } @Override - public void setSystemUiVisibility(int vis, int mask) { + public void setSystemUiVisibility(int vis, int mask, String cause) { // also allows calls from window manager which is in this process. enforceStatusBarService(); @@ -365,7 +365,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub { mCurrentUserId, vis & StatusBarManager.DISABLE_MASK, mSysUiVisToken, - "WindowManager.LayoutParams"); + cause); } }