Skip to content

Commit 4885295

Browse files
committed
Add copious navigation bar info to SystemUI dumps.
Bug: 5549288 Change-Id: I8556584e6abd22912d55dccc27ccebb6602b1bcb
1 parent 2a40d0d commit 4885295

File tree

2 files changed

+90
-3
lines changed

2 files changed

+90
-3
lines changed

packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.animation.AnimatorListenerAdapter;
2121
import android.content.Context;
2222
import android.content.res.Resources;
23+
import android.graphics.Rect;
2324
import android.os.ServiceManager;
2425
import android.util.AttributeSet;
2526
import android.util.Slog;
@@ -32,6 +33,10 @@
3233
import android.view.WindowManager;
3334
import android.widget.LinearLayout;
3435

36+
import java.io.FileDescriptor;
37+
import java.io.PrintWriter;
38+
import java.lang.StringBuilder;
39+
3540
import com.android.internal.statusbar.IStatusBarService;
3641

3742
import com.android.systemui.R;
@@ -237,4 +242,79 @@ public void reorient() {
237242
Slog.d(TAG, "reorient(): rot=" + mDisplay.getRotation());
238243
}
239244
}
245+
246+
private String getResourceName(int resId) {
247+
if (resId != 0) {
248+
final android.content.res.Resources res = mContext.getResources();
249+
try {
250+
return res.getResourceName(resId);
251+
} catch (android.content.res.Resources.NotFoundException ex) {
252+
return "(unknown)";
253+
}
254+
} else {
255+
return "(null)";
256+
}
257+
}
258+
259+
private static String visibilityToString(int vis) {
260+
switch (vis) {
261+
case View.INVISIBLE:
262+
return "INVISIBLE";
263+
case View.GONE:
264+
return "GONE";
265+
default:
266+
return "VISIBLE";
267+
}
268+
}
269+
270+
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
271+
pw.println("NavigationBarView {");
272+
final Rect r = new Rect();
273+
274+
pw.println(String.format(" this: " + PhoneStatusBar.viewInfo(this)
275+
+ " " + visibilityToString(getVisibility())));
276+
277+
getWindowVisibleDisplayFrame(r);
278+
final boolean offscreen = r.right > mDisplay.getRawWidth()
279+
|| r.bottom > mDisplay.getRawHeight();
280+
pw.println(" window: "
281+
+ r.toShortString()
282+
+ " " + visibilityToString(getWindowVisibility())
283+
+ (offscreen ? " OFFSCREEN!" : ""));
284+
285+
pw.println(String.format(" mCurrentView: id=%s (%dx%d) %s",
286+
getResourceName(mCurrentView.getId()),
287+
mCurrentView.getWidth(), mCurrentView.getHeight(),
288+
visibilityToString(mCurrentView.getVisibility())));
289+
290+
pw.println(String.format(" disabled=0x%08x vertical=%s hidden=%s low=%s menu=%s",
291+
mDisabledFlags,
292+
mVertical ? "true" : "false",
293+
mHidden ? "true" : "false",
294+
mLowProfile ? "true" : "false",
295+
mShowMenu ? "true" : "false"));
296+
297+
final View back = getBackButton();
298+
final View home = getHomeButton();
299+
final View recent = getRecentsButton();
300+
final View menu = getMenuButton();
301+
302+
pw.println(" back: "
303+
+ PhoneStatusBar.viewInfo(back)
304+
+ " " + visibilityToString(back.getVisibility())
305+
);
306+
pw.println(" home: "
307+
+ PhoneStatusBar.viewInfo(home)
308+
+ " " + visibilityToString(home.getVisibility())
309+
);
310+
pw.println(" rcnt: "
311+
+ PhoneStatusBar.viewInfo(recent)
312+
+ " " + visibilityToString(recent.getVisibility())
313+
);
314+
pw.println(" menu: "
315+
+ PhoneStatusBar.viewInfo(menu)
316+
+ " " + visibilityToString(menu.getVisibility())
317+
);
318+
pw.println(" }");
319+
}
240320
}

packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1735,9 +1735,9 @@ private Animation loadAnim(int id, Animation.AnimationListener listener) {
17351735
return anim;
17361736
}
17371737

1738-
public String viewInfo(View v) {
1739-
return "(" + v.getLeft() + "," + v.getTop() + ")(" + v.getRight() + "," + v.getBottom()
1740-
+ " " + v.getWidth() + "x" + v.getHeight() + ")";
1738+
public static String viewInfo(View v) {
1739+
return "[(" + v.getLeft() + "," + v.getTop() + ")(" + v.getRight() + "," + v.getBottom()
1740+
+ ") " + v.getWidth() + "x" + v.getHeight() + "]";
17411741
}
17421742

17431743
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
@@ -1768,6 +1768,13 @@ public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
17681768
+ " scroll " + mScrollView.getScrollX() + "," + mScrollView.getScrollY());
17691769
}
17701770

1771+
pw.print(" mNavigationBarView=");
1772+
if (mNavigationBarView == null) {
1773+
pw.println("null");
1774+
} else {
1775+
mNavigationBarView.dump(fd, pw, args);
1776+
}
1777+
17711778
if (DUMPTRUCK) {
17721779
synchronized (mNotificationData) {
17731780
int N = mNotificationData.size();

0 commit comments

Comments
 (0)