diff --git a/src/com/owncloud/android/lib/common/network/WebdavEntry.java b/src/com/owncloud/android/lib/common/network/WebdavEntry.java index e5c5b764..8deb7e22 100644 --- a/src/com/owncloud/android/lib/common/network/WebdavEntry.java +++ b/src/com/owncloud/android/lib/common/network/WebdavEntry.java @@ -24,6 +24,7 @@ package com.owncloud.android.lib.common.network; +import java.math.BigDecimal; import java.util.Date; import org.apache.jackrabbit.webdav.MultiStatusResponse; @@ -37,6 +38,9 @@ import android.net.Uri; import com.owncloud.android.lib.common.utils.Log_OC; public class WebdavEntry { + + private static final String TAG = WebdavEntry.class.getSimpleName(); + public static final String NAMESPACE_OC = "http://owncloud.org/ns"; public static final String EXTENDED_PROPERTY_NAME_PERMISSIONS = "permissions"; public static final String EXTENDED_PROPERTY_NAME_REMOTE_ID = "id"; @@ -49,7 +53,7 @@ public class WebdavEntry { private String mName, mPath, mUri, mContentType, mEtag, mPermissions, mRemoteId; private long mContentLength, mCreateTimestamp, mModifiedTimestamp, mSize; - private long mQuotaUsedBytes, mQuotaAvailableBytes; + private BigDecimal mQuotaUsedBytes, mQuotaAvailableBytes; public WebdavEntry(MultiStatusResponse ms, String splitElement) { resetData(); @@ -131,14 +135,27 @@ public class WebdavEntry { // {DAV:}quota-used-bytes prop = propSet.get(DavPropertyName.create(PROPERTY_QUOTA_USED_BYTES)); if (prop != null) { - mQuotaUsedBytes = Long.parseLong((String) prop.getValue()); + String quotaUsedBytesSt = (String) prop.getValue(); + try { + mQuotaUsedBytes = new BigDecimal(quotaUsedBytesSt); + } catch (NumberFormatException e) { + Log_OC.w(TAG, "No value for QuotaUsedBytes"); + } + Log_OC.d(TAG , "QUOTA_USED_BYTES " + quotaUsedBytesSt ); } // {DAV:}quota-available-bytes prop = propSet.get(DavPropertyName.create(PROPERTY_QUOTA_AVAILABLE_BYTES)); if (prop != null) { - mQuotaAvailableBytes = Long.parseLong((String) prop.getValue()); + String quotaAvailableBytesSt = (String) prop.getValue(); + try { + mQuotaAvailableBytes = new BigDecimal(quotaAvailableBytesSt); + } catch (NumberFormatException e) { + Log_OC.w(TAG, "No value for QuotaAvailableBytes"); + } + Log_OC.d(TAG , "QUOTA_AVAILABLE_BYTES " + quotaAvailableBytesSt ); } + // OC permissions property prop = propSet.get( EXTENDED_PROPERTY_NAME_PERMISSIONS, Namespace.getNamespace(NAMESPACE_OC) @@ -222,11 +239,11 @@ public class WebdavEntry { return mSize; } - public long quotaUsedBytes() { + public BigDecimal quotaUsedBytes() { return mQuotaUsedBytes; } - public long quotaAvailableBytes() { + public BigDecimal quotaAvailableBytes() { return mQuotaAvailableBytes; } @@ -234,7 +251,7 @@ public class WebdavEntry { mName = mUri = mContentType = mPermissions = null; mRemoteId = null; mContentLength = mCreateTimestamp = mModifiedTimestamp = 0; mSize = 0; - mQuotaUsedBytes = 0; - mQuotaAvailableBytes = 0; + mQuotaUsedBytes = null; + mQuotaAvailableBytes = null; } } diff --git a/src/com/owncloud/android/lib/resources/files/RemoteFile.java b/src/com/owncloud/android/lib/resources/files/RemoteFile.java index 1a5d13f9..6be850b2 100644 --- a/src/com/owncloud/android/lib/resources/files/RemoteFile.java +++ b/src/com/owncloud/android/lib/resources/files/RemoteFile.java @@ -25,6 +25,7 @@ package com.owncloud.android.lib.resources.files; import java.io.Serializable; +import java.math.BigDecimal; import android.os.Parcel; import android.os.Parcelable; @@ -51,8 +52,8 @@ public class RemoteFile implements Parcelable, Serializable { private String mPermissions; private String mRemoteId; private long mSize; - private long mQuotaUsedBytes; - private long mQuotaAvailableBytes; + private BigDecimal mQuotaUsedBytes; + private BigDecimal mQuotaAvailableBytes; /** * Getters and Setters @@ -130,11 +131,11 @@ public class RemoteFile implements Parcelable, Serializable { mSize = size; } - public void setQuotaUsedBytes (long quotaUsedBytes) { + public void setQuotaUsedBytes (BigDecimal quotaUsedBytes) { mQuotaUsedBytes = quotaUsedBytes; } - public void setQuotaAvailableBytes (long quotaAvailableBytes) { + public void setQuotaAvailableBytes (BigDecimal quotaAvailableBytes) { mQuotaAvailableBytes = quotaAvailableBytes; } @@ -184,8 +185,8 @@ public class RemoteFile implements Parcelable, Serializable { mPermissions = null; mRemoteId = null; mSize = 0; - mQuotaUsedBytes = 0; - mQuotaAvailableBytes = 0; + mQuotaUsedBytes = null; + mQuotaAvailableBytes = null; } /** @@ -223,8 +224,8 @@ public class RemoteFile implements Parcelable, Serializable { mPermissions= source.readString(); mRemoteId = source.readString(); mSize = source.readLong(); - mQuotaUsedBytes = source.readLong(); - mQuotaAvailableBytes = source.readLong(); + mQuotaUsedBytes = (BigDecimal) source.readSerializable(); + mQuotaAvailableBytes = (BigDecimal) source.readSerializable(); } @Override @@ -243,8 +244,8 @@ public class RemoteFile implements Parcelable, Serializable { dest.writeString(mPermissions); dest.writeString(mRemoteId); dest.writeLong(mSize); - dest.writeLong(mQuotaUsedBytes); - dest.writeLong(mQuotaAvailableBytes); + dest.writeSerializable(mQuotaUsedBytes); + dest.writeSerializable(mQuotaAvailableBytes); } }