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

Commit 141d8745 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

Improve RemoteInputManager dump.

This dump information would have given me better insight into the referenced bug

Bug: 208255329
Test: manual dumping
Change-Id: Ie9a63aa261ff23358bc126ce12ad854d1068bf08
parent c832de6b
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.os.UserManager;
import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.IndentingPrintWriter;
import android.util.Log;
import android.util.Pair;
import android.view.MotionEvent;
@@ -66,6 +67,7 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.RemoteInputView;
import com.android.systemui.util.DumpUtilsKt;

import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -653,9 +655,19 @@ public class NotificationRemoteInputManager implements Dumpable {
    }

    @Override
    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
    public void dump(FileDescriptor fd, PrintWriter pwOriginal, String[] args) {
        IndentingPrintWriter pw = DumpUtilsKt.asIndenting(pwOriginal);
        if (mRemoteInputController != null) {
            pw.println("mRemoteInputController: " + mRemoteInputController);
            pw.increaseIndent();
            mRemoteInputController.dump(pw);
            pw.decreaseIndent();
        }
        if (mRemoteInputListener instanceof Dumpable) {
            pw.println("mRemoteInputListener: " + mRemoteInputListener.getClass().getSimpleName());
            pw.increaseIndent();
            ((Dumpable) mRemoteInputListener).dump(fd, pw, args);
            pw.decreaseIndent();
        }
    }

+26 −0
Original line number Diff line number Diff line
@@ -23,11 +23,15 @@ import android.net.Uri;
import android.os.SystemProperties;
import android.service.notification.StatusBarNotification;
import android.util.ArrayMap;
import android.util.IndentingPrintWriter;
import android.util.Pair;

import androidx.annotation.NonNull;

import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.RemoteInputView;
import com.android.systemui.util.DumpUtilsKt;

import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -293,6 +297,28 @@ public class RemoteInputController {
        mRemoteInputUriController.grantInlineReplyUriPermission(sbn, data);
    }

    /** dump debug info; called by {@link NotificationRemoteInputManager} */
    public void dump(@NonNull IndentingPrintWriter pw) {
        pw.print("isRemoteInputActive: ");
        pw.println(isRemoteInputActive()); // Note that this prunes the mOpen list, printed later.
        pw.println("mOpen: " + mOpen.size());
        DumpUtilsKt.withIncreasedIndent(pw, () -> {
            for (Pair<WeakReference<NotificationEntry>, Object> open : mOpen) {
                NotificationEntry entry = open.first.get();
                pw.println(entry == null ? "???" : entry.getKey());
            }
        });
        pw.println("mSpinning: " + mSpinning.size());
        DumpUtilsKt.withIncreasedIndent(pw, () -> {
            for (String key : mSpinning.keySet()) {
                pw.println(key);
            }
        });
        pw.println(mSpinning);
        pw.print("mDelegate: ");
        pw.println(mDelegate);
    }

    public interface Callback {
        default void onRemoteInputActive(boolean active) {}