Loading core/java/android/app/Activity.java +43 −20 Original line number Diff line number Diff line Loading @@ -7348,43 +7348,67 @@ public class Activity extends ContextThemeWrapper public void dumpInternal(@NonNull String prefix, @SuppressLint("UseParcelFileDescriptor") @Nullable FileDescriptor fd, @NonNull PrintWriter writer, @Nullable String[] args) { if (args != null && args.length > 0 && CompatChanges.isChangeEnabled(DUMP_IGNORES_SPECIAL_ARGS)) { // Lazy-load mDumpableContainer with Dumpables activity might already have a reference to if (mAutofillClientController != null) { addDumpable(mAutofillClientController); } if (mUiTranslationController != null) { addDumpable(mUiTranslationController); } if (mContentCaptureManager != null) { mContentCaptureManager.addDumpable(this); } boolean dumpInternalState = true; String arg = null; if (args != null && args.length > 0) { arg = args[0]; boolean isSpecialCase = true; // Handle special cases switch (args[0]) { switch (arg) { case "--autofill": dumpAutofillManager(prefix, writer, args); return; break; case "--contentcapture": dumpContentCaptureManager(prefix, writer); return; break; case "--translation": dumpUiTranslation(prefix, writer); return; break; case "--list-dumpables": if (mDumpableContainer == null) { writer.print(prefix); writer.println("No dumpables"); return; } } else { mDumpableContainer.listDumpables(prefix, writer); return; } break; case "--dump-dumpable": if (args.length == 1) { writer.println("--dump-dumpable requires the dumpable name"); return; } if (mDumpableContainer == null) { } else if (mDumpableContainer == null) { writer.println("no dumpables"); return; } } else { // Strips --dump-dumpable NAME String[] prunedArgs = new String[args.length - 2]; System.arraycopy(args, 2, prunedArgs, 0, prunedArgs.length); mDumpableContainer.dumpOneDumpable(prefix, writer, args[1], prunedArgs); return; } break; default: isSpecialCase = false; break; } if (isSpecialCase) { dumpInternalState = !CompatChanges.isChangeEnabled(DUMP_IGNORES_SPECIAL_ARGS); } } if (dumpInternalState) { dump(prefix, fd, writer, args); } else { Log.i(TAG, "Not calling dump() on " + this + " because of special argument " + arg); } } void dumpInner(@NonNull String prefix, @Nullable FileDescriptor fd, Loading Loading @@ -7429,7 +7453,6 @@ public class Activity extends ContextThemeWrapper } private void dumpContentCaptureManager(String prefix, PrintWriter writer) { getContentCaptureManager(); dumpLegacyDumpable(prefix, writer, ContentCaptureManager.DUMPABLE_NAME, /* args= */ null); } Loading core/java/android/view/autofill/AutofillClientController.java +0 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,6 @@ public final class AutofillClientController implements AutofillManager.AutofillC */ public AutofillClientController(Activity activity) { mActivity = activity; activity.addDumpable(this); } private AutofillManager getAutofillManager() { Loading core/java/android/view/contentcapture/ContentCaptureManager.java +11 −3 Original line number Diff line number Diff line Loading @@ -391,6 +391,9 @@ public final class ContentCaptureManager { @GuardedBy("mLock") private MainContentCaptureSession mMainSession; @Nullable // set on-demand by addDumpable() private Dumper mDumpable; /** @hide */ public interface ContentCaptureClient { /** Loading @@ -407,9 +410,6 @@ public final class ContentCaptureManager { mService = Objects.requireNonNull(service, "service cannot be null"); mOptions = Objects.requireNonNull(options, "options cannot be null"); if (context instanceof Activity) { ((Activity) context).addDumpable(new Dumper()); } ContentCaptureHelper.setLoggingLevel(mOptions.loggingLevel); if (sVerbose) Log.v(TAG, "Constructor for " + context.getPackageName()); Loading Loading @@ -748,6 +748,14 @@ public final class ContentCaptureManager { return resultReceiver; } /** @hide */ public void addDumpable(Activity activity) { if (mDumpable == null) { mDumpable = new Dumper(); } activity.addDumpable(mDumpable); } // NOTE: ContentCaptureManager cannot implement it directly as it would be exposed as public API private final class Dumper implements Dumpable { @Override Loading core/java/com/android/internal/util/dump/DumpableContainerImpl.java +4 −2 Original line number Diff line number Diff line Loading @@ -47,8 +47,10 @@ public final class DumpableContainerImpl implements DumpableContainer { Objects.requireNonNull(name, () -> "name of" + dumpable); if (mDumpables.containsKey(name)) { Log.e(TAG, "addDumpable(): ignoring " + dumpable + " as there is already a dumpable" if (DEBUG) { Log.d(TAG, "addDumpable(): ignoring " + dumpable + " as there is already a dumpable" + " with that name (" + name + "): " + mDumpables.get(name)); } return false; } Loading Loading
core/java/android/app/Activity.java +43 −20 Original line number Diff line number Diff line Loading @@ -7348,43 +7348,67 @@ public class Activity extends ContextThemeWrapper public void dumpInternal(@NonNull String prefix, @SuppressLint("UseParcelFileDescriptor") @Nullable FileDescriptor fd, @NonNull PrintWriter writer, @Nullable String[] args) { if (args != null && args.length > 0 && CompatChanges.isChangeEnabled(DUMP_IGNORES_SPECIAL_ARGS)) { // Lazy-load mDumpableContainer with Dumpables activity might already have a reference to if (mAutofillClientController != null) { addDumpable(mAutofillClientController); } if (mUiTranslationController != null) { addDumpable(mUiTranslationController); } if (mContentCaptureManager != null) { mContentCaptureManager.addDumpable(this); } boolean dumpInternalState = true; String arg = null; if (args != null && args.length > 0) { arg = args[0]; boolean isSpecialCase = true; // Handle special cases switch (args[0]) { switch (arg) { case "--autofill": dumpAutofillManager(prefix, writer, args); return; break; case "--contentcapture": dumpContentCaptureManager(prefix, writer); return; break; case "--translation": dumpUiTranslation(prefix, writer); return; break; case "--list-dumpables": if (mDumpableContainer == null) { writer.print(prefix); writer.println("No dumpables"); return; } } else { mDumpableContainer.listDumpables(prefix, writer); return; } break; case "--dump-dumpable": if (args.length == 1) { writer.println("--dump-dumpable requires the dumpable name"); return; } if (mDumpableContainer == null) { } else if (mDumpableContainer == null) { writer.println("no dumpables"); return; } } else { // Strips --dump-dumpable NAME String[] prunedArgs = new String[args.length - 2]; System.arraycopy(args, 2, prunedArgs, 0, prunedArgs.length); mDumpableContainer.dumpOneDumpable(prefix, writer, args[1], prunedArgs); return; } break; default: isSpecialCase = false; break; } if (isSpecialCase) { dumpInternalState = !CompatChanges.isChangeEnabled(DUMP_IGNORES_SPECIAL_ARGS); } } if (dumpInternalState) { dump(prefix, fd, writer, args); } else { Log.i(TAG, "Not calling dump() on " + this + " because of special argument " + arg); } } void dumpInner(@NonNull String prefix, @Nullable FileDescriptor fd, Loading Loading @@ -7429,7 +7453,6 @@ public class Activity extends ContextThemeWrapper } private void dumpContentCaptureManager(String prefix, PrintWriter writer) { getContentCaptureManager(); dumpLegacyDumpable(prefix, writer, ContentCaptureManager.DUMPABLE_NAME, /* args= */ null); } Loading
core/java/android/view/autofill/AutofillClientController.java +0 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,6 @@ public final class AutofillClientController implements AutofillManager.AutofillC */ public AutofillClientController(Activity activity) { mActivity = activity; activity.addDumpable(this); } private AutofillManager getAutofillManager() { Loading
core/java/android/view/contentcapture/ContentCaptureManager.java +11 −3 Original line number Diff line number Diff line Loading @@ -391,6 +391,9 @@ public final class ContentCaptureManager { @GuardedBy("mLock") private MainContentCaptureSession mMainSession; @Nullable // set on-demand by addDumpable() private Dumper mDumpable; /** @hide */ public interface ContentCaptureClient { /** Loading @@ -407,9 +410,6 @@ public final class ContentCaptureManager { mService = Objects.requireNonNull(service, "service cannot be null"); mOptions = Objects.requireNonNull(options, "options cannot be null"); if (context instanceof Activity) { ((Activity) context).addDumpable(new Dumper()); } ContentCaptureHelper.setLoggingLevel(mOptions.loggingLevel); if (sVerbose) Log.v(TAG, "Constructor for " + context.getPackageName()); Loading Loading @@ -748,6 +748,14 @@ public final class ContentCaptureManager { return resultReceiver; } /** @hide */ public void addDumpable(Activity activity) { if (mDumpable == null) { mDumpable = new Dumper(); } activity.addDumpable(mDumpable); } // NOTE: ContentCaptureManager cannot implement it directly as it would be exposed as public API private final class Dumper implements Dumpable { @Override Loading
core/java/com/android/internal/util/dump/DumpableContainerImpl.java +4 −2 Original line number Diff line number Diff line Loading @@ -47,8 +47,10 @@ public final class DumpableContainerImpl implements DumpableContainer { Objects.requireNonNull(name, () -> "name of" + dumpable); if (mDumpables.containsKey(name)) { Log.e(TAG, "addDumpable(): ignoring " + dumpable + " as there is already a dumpable" if (DEBUG) { Log.d(TAG, "addDumpable(): ignoring " + dumpable + " as there is already a dumpable" + " with that name (" + name + "): " + mDumpables.get(name)); } return false; } Loading