diff options
| author | Martin Brabham <optedoblivion@google.com> | 2021-07-29 21:30:30 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-07-29 21:30:30 +0000 |
| commit | 234cdb9d8aabc270f4241c9ce0c0ea2ea46ef372 (patch) | |
| tree | f090fb06ff692e928e9dfe7fe9065caa8672a8d8 /core/java | |
| parent | 4d1b6559ba074ac8afce1cb694c06ac80d629602 (diff) | |
| parent | 400c21483cf728c42e012244cc491f4f633cae0d (diff) | |
Merge "Add implementation for IRK to parcelable functions." am: 400c21483c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1780808
Change-Id: Ia6d960d126b420bff8dfe3c36f254cf2bf54668a
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/bluetooth/le/ScanFilter.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/core/java/android/bluetooth/le/ScanFilter.java b/core/java/android/bluetooth/le/ScanFilter.java index ddc93327b697..9da6ff3b2752 100644 --- a/core/java/android/bluetooth/le/ScanFilter.java +++ b/core/java/android/bluetooth/le/ScanFilter.java @@ -168,6 +168,15 @@ public final class ScanFilter implements Parcelable { dest.writeByteArray(mManufacturerDataMask); } } + + // IRK + if (mDeviceAddress != null) { + dest.writeInt(mAddressType); + dest.writeInt(mIrk == null ? 0 : 1); + if (mIrk != null) { + dest.writeByteArray(mIrk); + } + } } /** @@ -187,8 +196,10 @@ public final class ScanFilter implements Parcelable { if (in.readInt() == 1) { builder.setDeviceName(in.readString()); } + String address = null; + // If we have a non-null address if (in.readInt() == 1) { - builder.setDeviceAddress(in.readString()); + address = in.readString(); } if (in.readInt() == 1) { ParcelUuid uuid = in.readParcelable(ParcelUuid.class.getClassLoader()); @@ -245,6 +256,17 @@ public final class ScanFilter implements Parcelable { } } + // IRK + if (address != null) { + final int addressType = in.readInt(); + if (in.readInt() == 1) { + final byte[] irk = new byte[16]; + in.readByteArray(irk); + builder.setDeviceAddress(address, addressType, irk); + } else { + builder.setDeviceAddress(address, addressType); + } + } return builder.build(); } }; |
