Add support for Assets to DataItem

This commit is contained in:
Marvin W 2016-03-14 19:10:22 +01:00
parent 249915ed3f
commit a3001d93f8
2 changed files with 30 additions and 5 deletions

View File

@ -19,13 +19,16 @@ package com.google.android.gms.wearable.internal;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import com.google.android.gms.wearable.DataItem;
import com.google.android.gms.wearable.DataItemAsset;
import org.microg.safeparcel.AutoSafeParcelable; import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled; import org.microg.safeparcel.SafeParceled;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class DataItemParcelable extends AutoSafeParcelable { public class DataItemParcelable extends AutoSafeParcelable implements DataItem {
@SafeParceled(1) @SafeParceled(1)
private int versionCode = 1; private int versionCode = 1;
@SafeParceled(2) @SafeParceled(2)
@ -50,8 +53,8 @@ public class DataItemParcelable extends AutoSafeParcelable {
data = null; data = null;
} }
public Map<String, DataItemAssetParcelable> getAssets() { public Map<String, DataItemAsset> getAssets() {
Map<String, DataItemAssetParcelable> assets = new HashMap<String, DataItemAssetParcelable>(); Map<String, DataItemAsset> assets = new HashMap<String, DataItemAsset>();
this.assets.setClassLoader(DataItemAssetParcelable.class.getClassLoader()); this.assets.setClassLoader(DataItemAssetParcelable.class.getClassLoader());
for (String key : this.assets.keySet()) { for (String key : this.assets.keySet()) {
assets.put(key, (DataItemAssetParcelable) this.assets.getParcelable(key)); assets.put(key, (DataItemAssetParcelable) this.assets.getParcelable(key));
@ -59,9 +62,31 @@ public class DataItemParcelable extends AutoSafeParcelable {
return assets; return assets;
} }
@Override
public byte[] getData() {
return data;
}
@Override
public Uri getUri() { public Uri getUri() {
return uri; return uri;
} }
@Override
public DataItem setData(byte[] data) {
this.data = data;
return this;
}
@Override
public DataItem freeze() {
return this;
}
@Override
public boolean isDataValid() {
return true;
}
public static final Creator<DataItemParcelable> CREATOR = new AutoCreator<DataItemParcelable>(DataItemParcelable.class); public static final Creator<DataItemParcelable> CREATOR = new AutoCreator<DataItemParcelable>(DataItemParcelable.class);
} }

View File

@ -137,8 +137,8 @@ public class PutDataRequest extends AutoSafeParcelable {
sb.append("PutDataRequest[uri=").append(uri) sb.append("PutDataRequest[uri=").append(uri)
.append(", data=").append(data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP)) .append(", data=").append(data == null ? "null" : Base64.encodeToString(data, Base64.NO_WRAP))
.append(", numAssets=").append(getAssets().size()); .append(", numAssets=").append(getAssets().size());
if (verbose) { if (verbose && !getAssets().isEmpty()) {
sb.append(",assets=["); sb.append(", assets=[");
for (String key : getAssets().keySet()) { for (String key : getAssets().keySet()) {
sb.append(key).append('=').append(getAsset(key)).append(", "); sb.append(key).append('=').append(getAsset(key)).append(", ");
} }