diff options
| author | 2024-03-07 18:16:32 +0000 | |
|---|---|---|
| committer | 2024-03-07 18:16:32 +0000 | |
| commit | 742f7de477e38d6c0a2413583ead2ed33f4f7284 (patch) | |
| tree | 8d81982a6609eb577cfef51c104047a0888d3ed2 | |
| parent | 247901f04630facc26fc29ed032e02e866d847e7 (diff) | |
| parent | 1654ad1dcddfbf4296940957f340fd5e0531c334 (diff) | |
Merge "Provide information on whether a polling frame is auto-transact" into main
| -rw-r--r-- | nfc/api/current.txt | 3 | ||||
| -rw-r--r-- | nfc/java/android/nfc/cardemulation/PollingFrame.java | 25 |
2 files changed, 26 insertions, 2 deletions
diff --git a/nfc/api/current.txt b/nfc/api/current.txt index 54f1421e463d..9e0bb86f46a5 100644 --- a/nfc/api/current.txt +++ b/nfc/api/current.txt @@ -265,10 +265,11 @@ package android.nfc.cardemulation { } @FlaggedApi("android.nfc.nfc_read_polling_loop") public final class PollingFrame implements android.os.Parcelable { - ctor public PollingFrame(int, @Nullable byte[], int, int); + ctor public PollingFrame(int, @Nullable byte[], int, int, boolean); method public int describeContents(); method @NonNull public byte[] getData(); method public int getTimestamp(); + method public boolean getTriggeredAutoTransact(); method public int getType(); method public int getVendorSpecificGain(); method public void writeToParcel(@NonNull android.os.Parcel, int); diff --git a/nfc/java/android/nfc/cardemulation/PollingFrame.java b/nfc/java/android/nfc/cardemulation/PollingFrame.java index 29d7bdf37fe4..7028c8f43eed 100644 --- a/nfc/java/android/nfc/cardemulation/PollingFrame.java +++ b/nfc/java/android/nfc/cardemulation/PollingFrame.java @@ -133,12 +133,23 @@ public final class PollingFrame implements Parcelable{ @FlaggedApi(android.nfc.Flags.FLAG_NFC_READ_POLLING_LOOP) public static final String KEY_POLLING_LOOP_TIMESTAMP = "android.nfc.cardemulation.TIMESTAMP"; + /** + * KEY_POLLING_LOOP_TIMESTAMP is the Bundle key for whether this polling frame triggered + * autoTransact in the Bundle included in MSG_POLLING_LOOP. + * + * @hide + */ + @FlaggedApi(android.nfc.Flags.FLAG_NFC_READ_POLLING_LOOP) + public static final String KEY_POLLING_LOOP_TRIGGERED_AUTOTRANSACT = + "android.nfc.cardemulation.TRIGGERED_AUTOTRANSACT"; + @PollingFrameType private final int mType; private final byte[] mData; private final int mGain; private final int mTimestamp; + private final boolean mTriggeredAutoTransact; public static final @NonNull Parcelable.Creator<PollingFrame> CREATOR = new Parcelable.Creator<>() { @@ -159,14 +170,17 @@ public final class PollingFrame implements Parcelable{ mData = (data == null) ? new byte[0] : data; mGain = frame.getInt(KEY_POLLING_LOOP_GAIN, -1); mTimestamp = frame.getInt(KEY_POLLING_LOOP_TIMESTAMP); + mTriggeredAutoTransact = frame.containsKey(KEY_POLLING_LOOP_TRIGGERED_AUTOTRANSACT) + && frame.getBoolean(KEY_POLLING_LOOP_TRIGGERED_AUTOTRANSACT); } public PollingFrame(@PollingFrameType int type, @Nullable byte[] data, - int gain, int timestamp) { + int gain, int timestamp, boolean triggeredAutoTransact) { mType = type; mData = data == null ? new byte[0] : data; mGain = gain; mTimestamp = timestamp; + mTriggeredAutoTransact = triggeredAutoTransact; } /** @@ -210,6 +224,14 @@ public final class PollingFrame implements Parcelable{ return mTimestamp; } + /** + * Returns whether this frame triggered the device to automatically disable observe mode and + * allow one transaction. + */ + public boolean getTriggeredAutoTransact() { + return mTriggeredAutoTransact; + } + @Override public int describeContents() { return 0; @@ -233,6 +255,7 @@ public final class PollingFrame implements Parcelable{ } frame.putByteArray(KEY_POLLING_LOOP_DATA, getData()); frame.putInt(KEY_POLLING_LOOP_TIMESTAMP, getTimestamp()); + frame.putBoolean(KEY_POLLING_LOOP_TRIGGERED_AUTOTRANSACT, getTriggeredAutoTransact()); return frame; } |