diff --git a/apex/blobstore/framework/java/android/app/blob/BlobInfo.java b/apex/blobstore/framework/java/android/app/blob/BlobInfo.java index 80062d5d245f825bcf8dc5fe8e108d31d3569dbb..ba92d95b483edd15767427eed2d3444fbc381f2c 100644 --- a/apex/blobstore/framework/java/android/app/blob/BlobInfo.java +++ b/apex/blobstore/framework/java/android/app/blob/BlobInfo.java @@ -16,9 +16,13 @@ package android.app.blob; +import static android.text.format.Formatter.FLAG_IEC_UNITS; + import android.annotation.NonNull; +import android.app.AppGlobals; import android.os.Parcel; import android.os.Parcelable; +import android.text.format.Formatter; import java.util.Collections; import java.util.List; @@ -32,13 +36,15 @@ public final class BlobInfo implements Parcelable { private final long mId; private final long mExpiryTimeMs; private final CharSequence mLabel; + private final long mSizeBytes; private final List mLeaseInfos; - public BlobInfo(long id, long expiryTimeMs, CharSequence label, + public BlobInfo(long id, long expiryTimeMs, CharSequence label, long sizeBytes, List leaseInfos) { mId = id; mExpiryTimeMs = expiryTimeMs; mLabel = label; + mSizeBytes = sizeBytes; mLeaseInfos = leaseInfos; } @@ -46,6 +52,7 @@ public final class BlobInfo implements Parcelable { mId = in.readLong(); mExpiryTimeMs = in.readLong(); mLabel = in.readCharSequence(); + mSizeBytes = in.readLong(); mLeaseInfos = in.readArrayList(null /* classloader */); } @@ -61,6 +68,10 @@ public final class BlobInfo implements Parcelable { return mLabel; } + public long getSizeBytes() { + return mSizeBytes; + } + public List getLeases() { return Collections.unmodifiableList(mLeaseInfos); } @@ -70,6 +81,7 @@ public final class BlobInfo implements Parcelable { dest.writeLong(mId); dest.writeLong(mExpiryTimeMs); dest.writeCharSequence(mLabel); + dest.writeLong(mSizeBytes); dest.writeList(mLeaseInfos); } @@ -83,10 +95,16 @@ public final class BlobInfo implements Parcelable { + "id: " + mId + "," + "expiryMs: " + mExpiryTimeMs + "," + "label: " + mLabel + "," + + "size: " + formatBlobSize(mSizeBytes) + "," + "leases: " + LeaseInfo.toShortString(mLeaseInfos) + "," + "}"; } + private static String formatBlobSize(long sizeBytes) { + return Formatter.formatFileSize(AppGlobals.getInitialApplication(), + sizeBytes, FLAG_IEC_UNITS); + } + @Override public int describeContents() { return 0; diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java index 8fff0d9c950b4c73a2bb4835d45eaf7ae7bb8290..0a5ada2823883cca0e8985b2e8f2f914cb2e91cb 100644 --- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java +++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java @@ -482,7 +482,8 @@ public class BlobStoreManagerService extends SystemService { descriptionResId, leasee.description)); }); blobInfos.add(new BlobInfo(blobMetadata.getBlobId(), - blobHandle.getExpiryTimeMillis(), blobHandle.getLabel(), leaseInfos)); + blobHandle.getExpiryTimeMillis(), blobHandle.getLabel(), + blobMetadata.getSize(), leaseInfos)); }); } return blobInfos;