Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 207638e6 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

Do not redact string extras which exclusively contain helpful system information.

Also, include the length of redacted strings.

Test: produce a bugreport and validate the expected strings are present
Change-Id: Ib1e5e18290f4a4854b0594c7e939f9392b8ac4bb
parent e7fc7576
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -585,7 +585,8 @@ public final class NotificationRecord {
                    pw.println("null");
                } else {
                    pw.print(val.getClass().getSimpleName());
                    if (redact && (val instanceof CharSequence || val instanceof String)) {
                    if (redact && (val instanceof CharSequence) && shouldRedactStringExtra(key)) {
                        pw.print(String.format(" [length=%d]", ((CharSequence) val).length()));
                        // redact contents from bugreports
                    } else if (val instanceof Bitmap) {
                        pw.print(String.format(" (%dx%d)",
@@ -611,6 +612,19 @@ public final class NotificationRecord {
        }
    }

    private boolean shouldRedactStringExtra(String key) {
        if (key == null) return true;
        switch (key) {
            // none of these keys contain user-related information; they do not need to be redacted
            case Notification.EXTRA_SUBSTITUTE_APP_NAME:
            case Notification.EXTRA_TEMPLATE:
            case "android.support.v4.app.extra.COMPAT_TEMPLATE":
                return false;
            default:
                return true;
        }
    }

    @Override
    public final String toString() {
        return String.format(