From 5bf6e1a1dbfffa0732d2cc5dd1d02cf1d2f3b9b4 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 14 Aug 2012 18:35:02 -0700 Subject: Add more debug info when a container view ID can't be found. Change-Id: Ibb2afc49747bd2d0ac24605cb3ec390334f8abf8 --- core/java/android/app/FragmentManager.java | 93 +++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 3 deletions(-) (limited to 'core/java/android/app/FragmentManager.java') diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index c9e092c..c1e11bb 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -20,6 +20,7 @@ import android.animation.Animator; import android.animation.AnimatorInflater; import android.animation.AnimatorListenerAdapter; import android.content.res.Configuration; +import android.content.res.Resources; import android.content.res.TypedArray; import android.os.Bundle; import android.os.Handler; @@ -427,6 +428,94 @@ final class FragmentManagerImpl extends FragmentManager { } }; + private void logViewHierarchy(String prefix, View view) { + StringBuilder builder = new StringBuilder(128); + builder.append(prefix); + DebugUtils.buildShortClassTag(view, builder); + int id = view.getId(); + if (id != -1) { + builder.append(" #"); + builder.append(Integer.toHexString(id)); + if (id != 0 && id != -1) { + try { + String pkgname; + switch (id&0xff000000) { + case 0x7f000000: + pkgname="app"; + break; + case 0x01000000: + pkgname="android"; + break; + default: + pkgname = view.getResources().getResourcePackageName(id); + break; + } + String typename = view.getResources().getResourceTypeName(id); + String entryname = view.getResources().getResourceEntryName(id); + builder.append(" ("); + builder.append(pkgname); + builder.append(":"); + builder.append(typename); + builder.append("/"); + builder.append(entryname); + builder.append(")"); + } catch (Resources.NotFoundException e) { + } + } + } + Object tag = view.getTag(); + if (tag != null) { + builder.append(" "); + builder.append(tag); + } + builder.append("}"); + Log.e(TAG, builder.toString()); + + if (!(view instanceof ViewGroup)) { + return; + } + ViewGroup grp = (ViewGroup)view; + final int N = grp.getChildCount(); + if (N <= 0) { + return; + } + prefix = prefix + " "; + for (int i=0; i