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

Commit ae83c46f authored by Ben Murdoch's avatar Ben Murdoch
Browse files

Add dumpsys window logs for ModifierShortcutManager.

Additional logging of active application launch keybaord shortcuts.

Bug: 351963350
Flag: com.android.hardware.input.modifier_shortcut_dump
Test: adb shell dumpsys window

Change-Id: Iafcea2139e293062dfe11a170371d1c23abcd5a5
parent 1e4b183d
Loading
Loading
Loading
Loading
+59 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.os.Handler;
import android.os.RemoteException;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.IndentingPrintWriter;
import android.util.Log;
import android.util.LongSparseArray;
import android.util.Slog;
@@ -55,6 +56,7 @@ import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -705,4 +707,61 @@ public class ModifierShortcutManager {
        }
        return context.getString(resid);
    };

    void dump(String prefix, PrintWriter pw) {
        IndentingPrintWriter ipw = new IndentingPrintWriter(pw,  "  ", prefix);
        ipw.println("ModifierShortcutManager shortcuts:");

        ipw.increaseIndent();
        ipw.println("Roles");
        ipw.increaseIndent();
        for (int i = 0; i <  mRoleShortcuts.size(); i++) {
            String role = mRoleShortcuts.valueAt(i);
            char shortcutChar = (char) mRoleShortcuts.keyAt(i);
            Intent intent = getRoleLaunchIntent(role);
            ipw.println(shortcutChar + " " + role + " " + intent);
        }

        for (int i = 0; i <  mShiftRoleShortcuts.size(); i++) {
            String role = mShiftRoleShortcuts.valueAt(i);
            char shortcutChar = (char) mShiftRoleShortcuts.keyAt(i);
            Intent intent = getRoleLaunchIntent(role);
            ipw.println("SHIFT+" + shortcutChar + " " + role + " " + intent);
        }

        ipw.decreaseIndent();
        ipw.println("Selectors");
        ipw.increaseIndent();
        for (int i = 0; i <  mIntentShortcuts.size(); i++) {
            char shortcutChar = (char) mIntentShortcuts.keyAt(i);
            Intent intent = mIntentShortcuts.valueAt(i);
            ipw.println(shortcutChar + " " + intent);
        }

        for (int i = 0; i <  mShiftShortcuts.size(); i++) {
            char shortcutChar = (char) mShiftShortcuts.keyAt(i);
            Intent intent = mShiftShortcuts.valueAt(i);
            ipw.println("SHIFT+" + shortcutChar + " " + intent);

        }

        if (modifierShortcutManagerMultiuser()) {
            ipw.decreaseIndent();
            ipw.println("ComponentNames");
            ipw.increaseIndent();
            for (int i = 0; i < mComponentShortcuts.size(); i++) {
                char shortcutChar = (char) mComponentShortcuts.keyAt(i);
                ComponentName component = mComponentShortcuts.valueAt(i);
                Intent intent = resolveComponentNameIntent(component);
                ipw.println(shortcutChar + " " + component + " " + intent);
            }

            for (int i = 0; i < mShiftComponentShortcuts.size(); i++) {
                char shortcutChar = (char) mShiftComponentShortcuts.keyAt(i);
                ComponentName component = mShiftComponentShortcuts.valueAt(i);
                Intent intent = resolveComponentNameIntent(component);
                ipw.println("SHIFT+" + shortcutChar + " " + component + " " + intent);
            }
        }
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ import static android.view.WindowManagerGlobal.ADD_PERMISSION_DENIED;
import static android.view.contentprotection.flags.Flags.createAccessibilityOverlayAppOpEnabled;

import static com.android.hardware.input.Flags.emojiAndScreenshotKeycodesAvailable;
import static com.android.hardware.input.Flags.modifierShortcutDump;
import static com.android.server.flags.Flags.modifierShortcutManagerMultiuser;
import static com.android.server.flags.Flags.newBugreportKeyboardShortcut;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.SCREENSHOT_KEYCHORD_DELAY;
@@ -6664,6 +6665,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {

        pw.print(prefix); pw.println("Looper state:");
        mHandler.getLooper().dump(new PrintWriterPrinter(pw), prefix + "  ");
        if (modifierShortcutDump()) {
            mModifierShortcutManager.dump(prefix, pw);
        }
    }

    private static String endcallBehaviorToString(int behavior) {