OSDN Git Service

Add new logging for system bar window state.
authorJohn Spurlock <jspurlock@google.com>
Mon, 26 Aug 2013 19:37:58 +0000 (15:37 -0400)
committerJohn Spurlock <jspurlock@google.com>
Mon, 26 Aug 2013 19:37:58 +0000 (15:37 -0400)
And re-enable PhoneStatusBar dump output in bugreports.

Bug:10488453
Change-Id: If39b32e82dee59f3c166c5a948d379030da0ea01

packages/SystemUI/src/com/android/systemui/statusbar/SystemBars.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
policy/src/com/android/internal/policy/impl/BarController.java

index 05282fe..ecf7b35 100644 (file)
@@ -22,6 +22,9 @@ import android.util.Log;
 import com.android.systemui.R;
 import com.android.systemui.SystemUI;
 
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
 /**
  * Ensure a single status bar service implementation is running at all times.
  *
@@ -66,6 +69,13 @@ public class SystemBars extends SystemUI implements ServiceMonitor.Callbacks {
         return 0;
     }
 
+    @Override
+    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        if (mStatusBar != null) {
+            mStatusBar.dump(fd, pw, args);
+        }
+    }
+
     private void createStatusBarFromConfig() {
         if (DEBUG) Log.d(TAG, "createStatusBarFromConfig");
         final String clsName = mContext.getString(R.string.config_statusBarComponent);
index fffb130..d7475f3 100644 (file)
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar.phone;
 
+import static android.app.StatusBarManager.windowStateToString;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
@@ -109,6 +110,7 @@ public class PhoneStatusBar extends BaseStatusBar {
     public static final boolean DEBUG_GESTURES = false;
 
     public static final boolean DEBUG_CLINGS = false;
+    public static final boolean DEBUG_WINDOW_STATE = true;
 
     public static final boolean ENABLE_NOTIFICATION_PANEL_CLING = false;
 
@@ -1844,7 +1846,7 @@ public class PhoneStatusBar extends BaseStatusBar {
                 && window == StatusBarManager.WINDOW_STATUS_BAR
                 && mStatusBarWindowState != state) {
             mStatusBarWindowState = state;
-            if (DEBUG) Log.d(TAG, "Status bar " + StatusBarManager.windowStateToString(state));
+            if (DEBUG_WINDOW_STATE) Log.d(TAG, "Status bar " + windowStateToString(state));
             mStatusBarWindow.setEnabled(showing);
             if (!showing) {
                 mStatusBarView.collapseAllPanels(false);
@@ -1854,7 +1856,7 @@ public class PhoneStatusBar extends BaseStatusBar {
                 && window == StatusBarManager.WINDOW_NAVIGATION_BAR
                 && mNavigationBarWindowState != state) {
             mNavigationBarWindowState = state;
-            if (DEBUG) Log.d(TAG, "Navigation bar " + StatusBarManager.windowStateToString(state));
+            if (DEBUG_WINDOW_STATE) Log.d(TAG, "Navigation bar " + windowStateToString(state));
             mNavigationBarView.setEnabled(showing);
         }
     }
@@ -2177,6 +2179,15 @@ public class PhoneStatusBar extends BaseStatusBar {
                     + " scroll " + mScrollView.getScrollX() + "," + mScrollView.getScrollY());
         }
 
+        pw.print("  mStatusBarWindowState=");
+        pw.println(windowStateToString(mStatusBarWindowState));
+        dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions());
+        if (mNavigationBarView != null) {
+            pw.print("  mNavigationBarWindowState=");
+            pw.println(windowStateToString(mNavigationBarWindowState));
+            dumpBarTransitions(pw, "mNavigationBarView", mNavigationBarView.getBarTransitions());
+        }
+
         pw.print("  mNavigationBarView=");
         if (mNavigationBarView == null) {
             pw.println("null");
@@ -2242,6 +2253,11 @@ public class PhoneStatusBar extends BaseStatusBar {
         mNetworkController.dump(fd, pw, args);
     }
 
+    private static void dumpBarTransitions(PrintWriter pw, String var, BarTransitions transitions) {
+        pw.print("  "); pw.print(var); pw.print(".BarTransitions.mMode=");
+        pw.println(BarTransitions.modeToString(transitions.getMode()));
+    }
+
     @Override
     public void createAndAddWindows() {
         addStatusBarWindow();
index 554fd1c..01c53fe 100644 (file)
@@ -33,7 +33,7 @@ import java.io.PrintWriter;
  * Controls state/behavior specific to a system bar window.
  */
 public class BarController {
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = true;
 
     private static final int TRANSIENT_BAR_NONE = 0;
     private static final int TRANSIENT_BAR_SHOWING = 1;
@@ -126,6 +126,7 @@ public class BarController {
     private void updateState(final int state) {
         if (state != mState) {
             mState = state;
+            if (DEBUG) Slog.d(mTag, "mState: " + StatusBarManager.windowStateToString(state));
             mHandler.post(new Runnable() {
                 @Override
                 public void run() {
@@ -135,6 +136,7 @@ public class BarController {
                             statusbar.setWindowState(mStatusBarManagerId, state);
                         }
                     } catch (RemoteException e) {
+                        if (DEBUG) Slog.w(mTag, "Error posting window state", e);
                         // re-acquire status bar service next time it is needed.
                         mStatusBarService = null;
                     }
@@ -204,7 +206,7 @@ public class BarController {
                 mLastTransparent = SystemClock.uptimeMillis();
             }
             mTransientBarState = state;
-            if (DEBUG) Slog.d(mTag, "New state: " + transientBarStateToString(state));
+            if (DEBUG) Slog.d(mTag, "mTransientBarState: " + transientBarStateToString(state));
         }
     }
 
@@ -227,8 +229,10 @@ public class BarController {
 
     public void dump(PrintWriter pw, String prefix) {
         if (mWin != null) {
-            pw.print(prefix); pw.print(mTag); pw.print(' ');
-            pw.print("mTransientBar"); pw.print('=');
+            pw.print(prefix); pw.println(mTag);
+            pw.print("  "); pw.print("mState"); pw.print('=');
+            pw.println(StatusBarManager.windowStateToString(mState));
+            pw.print("  "); pw.print("mTransientBar"); pw.print('=');
             pw.println(transientBarStateToString(mTransientBarState));
         }
     }