Add NFC observe mode + auto-transact dumpsys protos
Bug: 345268190
Test: adb shell dumpsys nfc --proto
Merged-In: Ic744f40ac09f71cbe79b9f5913877893f4388655
Change-Id: Ic744f40ac09f71cbe79b9f5913877893f4388655
diff --git a/core/proto/android/nfc/apdu_service_info.proto b/core/proto/android/nfc/apdu_service_info.proto
index fd110c4..9efdfcb 100644
--- a/core/proto/android/nfc/apdu_service_info.proto
+++ b/core/proto/android/nfc/apdu_service_info.proto
@@ -27,6 +27,20 @@
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 @@
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;
}
diff --git a/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java b/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
index 88704da..3cf0a4d 100644
--- a/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
+++ b/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
@@ -1084,6 +1084,27 @@
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}\\*?\\#?");