Loading services/java/com/android/server/IntentResolver.java +51 −21 Original line number Diff line number Diff line Loading @@ -91,38 +91,64 @@ public class IntentResolver<F extends IntentFilter, R extends Object> { } } void dumpMap(PrintWriter out, String prefix, Map<String, ArrayList<F>> map) { boolean dumpMap(PrintWriter out, String titlePrefix, String title, String prefix, Map<String, ArrayList<F>> map, String packageName) { String eprefix = prefix + " "; String fprefix = prefix + " "; boolean printedSomething = false; for (Map.Entry<String, ArrayList<F>> e : map.entrySet()) { out.print(eprefix); out.print(e.getKey()); out.println(":"); ArrayList<F> a = e.getValue(); final int N = a.size(); boolean printedHeader = false; for (int i=0; i<N; i++) { dumpFilter(out, fprefix, a.get(i)); F filter = a.get(i); if (packageName != null && !packageName.equals(packageForFilter(filter))) { continue; } if (title != null) { out.print(titlePrefix); out.println(title); title = null; } if (!printedHeader) { out.print(eprefix); out.print(e.getKey()); out.println(":"); printedHeader = true; } printedSomething = true; dumpFilter(out, fprefix, filter); } } return printedSomething; } public void dump(PrintWriter out, String prefix) { public boolean dump(PrintWriter out, String title, String prefix, String packageName) { String innerPrefix = prefix + " "; out.print(prefix); out.println("Full MIME Types:"); dumpMap(out, innerPrefix, mTypeToFilter); out.println(" "); out.print(prefix); out.println("Base MIME Types:"); dumpMap(out, innerPrefix, mBaseTypeToFilter); out.println(" "); out.print(prefix); out.println("Wild MIME Types:"); dumpMap(out, innerPrefix, mWildTypeToFilter); out.println(" "); out.print(prefix); out.println("Schemes:"); dumpMap(out, innerPrefix, mSchemeToFilter); out.println(" "); out.print(prefix); out.println("Non-Data Actions:"); dumpMap(out, innerPrefix, mActionToFilter); out.println(" "); out.print(prefix); out.println("MIME Typed Actions:"); dumpMap(out, innerPrefix, mTypedActionToFilter); String sepPrefix = "\n" + prefix; String curPrefix = title + "\n" + prefix; if (dumpMap(out, curPrefix, "Full MIME Types:", innerPrefix, mTypeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Base MIME Types:", innerPrefix, mBaseTypeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Wild MIME Types:", innerPrefix, mWildTypeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Schemes:", innerPrefix, mSchemeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Non-Data Actions:", innerPrefix, mActionToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "MIME Typed Actions:", innerPrefix, mTypedActionToFilter, packageName)) { curPrefix = sepPrefix; } return curPrefix == sepPrefix; } private class IteratorWrapper implements Iterator<F> { Loading Loading @@ -286,6 +312,10 @@ public class IntentResolver<F extends IntentFilter, R extends Object> { return true; } protected String packageForFilter(F filter) { return null; } protected R newResult(F filter, int match) { return (R)filter; } Loading services/java/com/android/server/PackageManagerService.java +359 −115 File changed.Preview size limit exceeded, changes collapsed. Show changes services/java/com/android/server/am/ActivityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -9356,7 +9356,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen dumpAll = true; } else if ("-h".equals(opt)) { pw.println("Activity manager dump options:"); pw.println(" [-a] [h- [cmd] ..."); pw.println(" [-a] [-h] [cmd] ..."); pw.println(" cmd may be one of:"); pw.println(" activities: activity stack state"); pw.println(" broadcasts: broadcast state"); Loading Loading @@ -9756,7 +9756,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen pw.println(" "); pw.println("Receiver Resolver Table:"); mReceiverResolver.dump(pw, " "); mReceiverResolver.dump(pw, null, " ", null); needSep = true; } Loading tests/AndroidTests/Android.mk +3 −1 Original line number Diff line number Diff line Loading @@ -16,4 +16,6 @@ LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) include $(call all-makefiles-under,$(LOCAL_PATH)) LOCAL_STORED_PATH:= $(LOCAL_PATH) include $(call all-makefiles-under,$(LOCAL_STORED_PATH)) include $(call all-makefiles-under,$(LOCAL_STORED_PATH)/apks) tests/AndroidTests/apks/install_decl_perm/Android.mk 0 → 100644 +11 −0 Original line number Diff line number Diff line LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := tests LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := AndroidTests_install_decl_perm include $(BUILD_PACKAGE) Loading
services/java/com/android/server/IntentResolver.java +51 −21 Original line number Diff line number Diff line Loading @@ -91,38 +91,64 @@ public class IntentResolver<F extends IntentFilter, R extends Object> { } } void dumpMap(PrintWriter out, String prefix, Map<String, ArrayList<F>> map) { boolean dumpMap(PrintWriter out, String titlePrefix, String title, String prefix, Map<String, ArrayList<F>> map, String packageName) { String eprefix = prefix + " "; String fprefix = prefix + " "; boolean printedSomething = false; for (Map.Entry<String, ArrayList<F>> e : map.entrySet()) { out.print(eprefix); out.print(e.getKey()); out.println(":"); ArrayList<F> a = e.getValue(); final int N = a.size(); boolean printedHeader = false; for (int i=0; i<N; i++) { dumpFilter(out, fprefix, a.get(i)); F filter = a.get(i); if (packageName != null && !packageName.equals(packageForFilter(filter))) { continue; } if (title != null) { out.print(titlePrefix); out.println(title); title = null; } if (!printedHeader) { out.print(eprefix); out.print(e.getKey()); out.println(":"); printedHeader = true; } printedSomething = true; dumpFilter(out, fprefix, filter); } } return printedSomething; } public void dump(PrintWriter out, String prefix) { public boolean dump(PrintWriter out, String title, String prefix, String packageName) { String innerPrefix = prefix + " "; out.print(prefix); out.println("Full MIME Types:"); dumpMap(out, innerPrefix, mTypeToFilter); out.println(" "); out.print(prefix); out.println("Base MIME Types:"); dumpMap(out, innerPrefix, mBaseTypeToFilter); out.println(" "); out.print(prefix); out.println("Wild MIME Types:"); dumpMap(out, innerPrefix, mWildTypeToFilter); out.println(" "); out.print(prefix); out.println("Schemes:"); dumpMap(out, innerPrefix, mSchemeToFilter); out.println(" "); out.print(prefix); out.println("Non-Data Actions:"); dumpMap(out, innerPrefix, mActionToFilter); out.println(" "); out.print(prefix); out.println("MIME Typed Actions:"); dumpMap(out, innerPrefix, mTypedActionToFilter); String sepPrefix = "\n" + prefix; String curPrefix = title + "\n" + prefix; if (dumpMap(out, curPrefix, "Full MIME Types:", innerPrefix, mTypeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Base MIME Types:", innerPrefix, mBaseTypeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Wild MIME Types:", innerPrefix, mWildTypeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Schemes:", innerPrefix, mSchemeToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "Non-Data Actions:", innerPrefix, mActionToFilter, packageName)) { curPrefix = sepPrefix; } if (dumpMap(out, curPrefix, "MIME Typed Actions:", innerPrefix, mTypedActionToFilter, packageName)) { curPrefix = sepPrefix; } return curPrefix == sepPrefix; } private class IteratorWrapper implements Iterator<F> { Loading Loading @@ -286,6 +312,10 @@ public class IntentResolver<F extends IntentFilter, R extends Object> { return true; } protected String packageForFilter(F filter) { return null; } protected R newResult(F filter, int match) { return (R)filter; } Loading
services/java/com/android/server/PackageManagerService.java +359 −115 File changed.Preview size limit exceeded, changes collapsed. Show changes
services/java/com/android/server/am/ActivityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -9356,7 +9356,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen dumpAll = true; } else if ("-h".equals(opt)) { pw.println("Activity manager dump options:"); pw.println(" [-a] [h- [cmd] ..."); pw.println(" [-a] [-h] [cmd] ..."); pw.println(" cmd may be one of:"); pw.println(" activities: activity stack state"); pw.println(" broadcasts: broadcast state"); Loading Loading @@ -9756,7 +9756,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen pw.println(" "); pw.println("Receiver Resolver Table:"); mReceiverResolver.dump(pw, " "); mReceiverResolver.dump(pw, null, " ", null); needSep = true; } Loading
tests/AndroidTests/Android.mk +3 −1 Original line number Diff line number Diff line Loading @@ -16,4 +16,6 @@ LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) include $(call all-makefiles-under,$(LOCAL_PATH)) LOCAL_STORED_PATH:= $(LOCAL_PATH) include $(call all-makefiles-under,$(LOCAL_STORED_PATH)) include $(call all-makefiles-under,$(LOCAL_STORED_PATH)/apks)
tests/AndroidTests/apks/install_decl_perm/Android.mk 0 → 100644 +11 −0 Original line number Diff line number Diff line LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := tests LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := AndroidTests_install_decl_perm include $(BUILD_PACKAGE)