summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jakub Pawlowski <jpawlowski@google.com> 2017-08-09 18:56:57 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2017-08-09 18:56:57 +0000
commitc7da241b3e083ea70bd21a8f279a93b1b53393b3 (patch)
tree83cb5e567fcc296052fcb5067bccaec7f399ef67
parentd27af8af624c85bccdbc7bd53e66f59cfd5ad623 (diff)
parente8c3b91dc306dfae808b4baab395ee66302a6390 (diff)
Merge "Bluetooth: AdvertiseData parceling simplification"
-rw-r--r--core/java/android/bluetooth/le/AdvertiseData.java51
1 files changed, 13 insertions, 38 deletions
diff --git a/core/java/android/bluetooth/le/AdvertiseData.java b/core/java/android/bluetooth/le/AdvertiseData.java
index ff0db9aeb610..bde2d2f890f5 100644
--- a/core/java/android/bluetooth/le/AdvertiseData.java
+++ b/core/java/android/bluetooth/le/AdvertiseData.java
@@ -141,32 +141,18 @@ public final class AdvertiseData implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
- dest.writeList(mServiceUuids);
+ dest.writeTypedArray(mServiceUuids.toArray(new ParcelUuid[mServiceUuids.size()]), flags);
// mManufacturerSpecificData could not be null.
dest.writeInt(mManufacturerSpecificData.size());
for (int i = 0; i < mManufacturerSpecificData.size(); ++i) {
dest.writeInt(mManufacturerSpecificData.keyAt(i));
- byte[] data = mManufacturerSpecificData.valueAt(i);
- if (data == null) {
- dest.writeInt(0);
- } else {
- dest.writeInt(1);
- dest.writeInt(data.length);
- dest.writeByteArray(data);
- }
+ dest.writeByteArray(mManufacturerSpecificData.valueAt(i));
}
dest.writeInt(mServiceData.size());
for (ParcelUuid uuid : mServiceData.keySet()) {
- dest.writeParcelable(uuid, flags);
- byte[] data = mServiceData.get(uuid);
- if (data == null) {
- dest.writeInt(0);
- } else {
- dest.writeInt(1);
- dest.writeInt(data.length);
- dest.writeByteArray(data);
- }
+ dest.writeTypedObject(uuid, flags);
+ dest.writeByteArray(mServiceData.get(uuid));
}
dest.writeByte((byte) (getIncludeTxPowerLevel() ? 1 : 0));
dest.writeByte((byte) (getIncludeDeviceName() ? 1 : 0));
@@ -182,33 +168,22 @@ public final class AdvertiseData implements Parcelable {
@Override
public AdvertiseData createFromParcel(Parcel in) {
Builder builder = new Builder();
- @SuppressWarnings("unchecked")
- List<ParcelUuid> uuids = in.readArrayList(ParcelUuid.class.getClassLoader());
- if (uuids != null) {
- for (ParcelUuid uuid : uuids) {
- builder.addServiceUuid(uuid);
- }
+ ArrayList<ParcelUuid> uuids = in.createTypedArrayList(ParcelUuid.CREATOR);
+ for (ParcelUuid uuid : uuids) {
+ builder.addServiceUuid(uuid);
}
+
int manufacturerSize = in.readInt();
for (int i = 0; i < manufacturerSize; ++i) {
int manufacturerId = in.readInt();
- if (in.readInt() == 1) {
- int manufacturerDataLength = in.readInt();
- byte[] manufacturerData = new byte[manufacturerDataLength];
- in.readByteArray(manufacturerData);
- builder.addManufacturerData(manufacturerId, manufacturerData);
- }
+ byte[] manufacturerData = in.createByteArray();
+ builder.addManufacturerData(manufacturerId, manufacturerData);
}
int serviceDataSize = in.readInt();
for (int i = 0; i < serviceDataSize; ++i) {
- ParcelUuid serviceDataUuid = in.readParcelable(
- ParcelUuid.class.getClassLoader());
- if (in.readInt() == 1) {
- int serviceDataLength = in.readInt();
- byte[] serviceData = new byte[serviceDataLength];
- in.readByteArray(serviceData);
- builder.addServiceData(serviceDataUuid, serviceData);
- }
+ ParcelUuid serviceDataUuid = in.readTypedObject(ParcelUuid.CREATOR);
+ byte[] serviceData = in.createByteArray();
+ builder.addServiceData(serviceDataUuid, serviceData);
}
builder.setIncludeTxPowerLevel(in.readByte() == 1);
builder.setIncludeDeviceName(in.readByte() == 1);