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

Commit 7d3bb629 authored by Steve Pomeroy's avatar Steve Pomeroy
Browse files

Add NFC observe mode + auto-transact dumpsys protos

Bug: 345268190
Test: adb shell dumpsys nfc --proto
Change-Id: Ic744f40ac09f71cbe79b9f5913877893f4388655
parent b4238056
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -27,6 +27,20 @@ option java_multiple_files = true;
message ApduServiceInfoProto {
    option (.android.msg_privacy).dest = DEST_EXPLICIT;

    message AutoTransactMapping {
        option (.android.msg_privacy).dest = DEST_EXPLICIT;

        optional string aid = 1;
        optional bool should_auto_transact = 2;
    }

    message AutoTransactPattern {
        option (.android.msg_privacy).dest = DEST_EXPLICIT;

        optional string regexp_pattern = 1;
        optional bool should_auto_transact = 2;
    }

    optional .android.content.ComponentNameProto component_name = 1;
    optional string description = 2;
    optional bool on_host = 3;
@@ -35,4 +49,7 @@ message ApduServiceInfoProto {
    repeated AidGroupProto static_aid_groups = 6;
    repeated AidGroupProto dynamic_aid_groups = 7;
    optional string settings_activity_name = 8;
    optional bool should_default_to_observe_mode = 9;
    repeated AutoTransactMapping auto_transact_mapping = 10;
    repeated AutoTransactPattern auto_transact_patterns = 11;
}
+21 −0
Original line number Diff line number Diff line
@@ -1084,6 +1084,27 @@ public final class ApduServiceInfo implements Parcelable {
            proto.end(token);
        }
        proto.write(ApduServiceInfoProto.SETTINGS_ACTIVITY_NAME, mSettingsActivityName);
        proto.write(ApduServiceInfoProto.SHOULD_DEFAULT_TO_OBSERVE_MODE,
                mShouldDefaultToObserveMode);
        {
            long token = proto.start(ApduServiceInfoProto.AUTO_TRANSACT_MAPPING);
            for (Map.Entry<String, Boolean> entry : mAutoTransact.entrySet()) {
                proto.write(ApduServiceInfoProto.AutoTransactMapping.AID, entry.getKey());
                proto.write(ApduServiceInfoProto.AutoTransactMapping.SHOULD_AUTO_TRANSACT,
                        entry.getValue());
            }
            proto.end(token);
        }
        {
            long token = proto.start(ApduServiceInfoProto.AUTO_TRANSACT_PATTERNS);
            for (Map.Entry<Pattern, Boolean> entry : mAutoTransactPatterns.entrySet()) {
                proto.write(ApduServiceInfoProto.AutoTransactPattern.REGEXP_PATTERN,
                        entry.getKey().pattern());
                proto.write(ApduServiceInfoProto.AutoTransactPattern.SHOULD_AUTO_TRANSACT,
                        entry.getValue());
            }
            proto.end(token);
        }
    }

    private static final Pattern AID_PATTERN = Pattern.compile("[0-9A-Fa-f]{10,32}\\*?\\#?");