1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Merge pull request #63 from owncloud/fix_refresh_large_default_storage

Fixed refresh when quota response holds an unexpected value or format
This commit is contained in:
David A. Velasco 2015-05-18 14:46:58 +02:00
commit 67d800027c
2 changed files with 35 additions and 17 deletions

View File

@ -24,6 +24,7 @@
package com.owncloud.android.lib.common.network; package com.owncloud.android.lib.common.network;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import org.apache.jackrabbit.webdav.MultiStatusResponse; import org.apache.jackrabbit.webdav.MultiStatusResponse;
@ -37,6 +38,9 @@ import android.net.Uri;
import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.common.utils.Log_OC;
public class WebdavEntry { 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 NAMESPACE_OC = "http://owncloud.org/ns";
public static final String EXTENDED_PROPERTY_NAME_PERMISSIONS = "permissions"; public static final String EXTENDED_PROPERTY_NAME_PERMISSIONS = "permissions";
public static final String EXTENDED_PROPERTY_NAME_REMOTE_ID = "id"; 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 String mName, mPath, mUri, mContentType, mEtag, mPermissions, mRemoteId;
private long mContentLength, mCreateTimestamp, mModifiedTimestamp, mSize; private long mContentLength, mCreateTimestamp, mModifiedTimestamp, mSize;
private long mQuotaUsedBytes, mQuotaAvailableBytes; private BigDecimal mQuotaUsedBytes, mQuotaAvailableBytes;
public WebdavEntry(MultiStatusResponse ms, String splitElement) { public WebdavEntry(MultiStatusResponse ms, String splitElement) {
resetData(); resetData();
@ -131,14 +135,27 @@ public class WebdavEntry {
// {DAV:}quota-used-bytes // {DAV:}quota-used-bytes
prop = propSet.get(DavPropertyName.create(PROPERTY_QUOTA_USED_BYTES)); prop = propSet.get(DavPropertyName.create(PROPERTY_QUOTA_USED_BYTES));
if (prop != null) { 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 // {DAV:}quota-available-bytes
prop = propSet.get(DavPropertyName.create(PROPERTY_QUOTA_AVAILABLE_BYTES)); prop = propSet.get(DavPropertyName.create(PROPERTY_QUOTA_AVAILABLE_BYTES));
if (prop != null) { 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 <oc:permissions> // OC permissions property <oc:permissions>
prop = propSet.get( prop = propSet.get(
EXTENDED_PROPERTY_NAME_PERMISSIONS, Namespace.getNamespace(NAMESPACE_OC) EXTENDED_PROPERTY_NAME_PERMISSIONS, Namespace.getNamespace(NAMESPACE_OC)
@ -222,11 +239,11 @@ public class WebdavEntry {
return mSize; return mSize;
} }
public long quotaUsedBytes() { public BigDecimal quotaUsedBytes() {
return mQuotaUsedBytes; return mQuotaUsedBytes;
} }
public long quotaAvailableBytes() { public BigDecimal quotaAvailableBytes() {
return mQuotaAvailableBytes; return mQuotaAvailableBytes;
} }
@ -234,7 +251,7 @@ public class WebdavEntry {
mName = mUri = mContentType = mPermissions = null; mRemoteId = null; mName = mUri = mContentType = mPermissions = null; mRemoteId = null;
mContentLength = mCreateTimestamp = mModifiedTimestamp = 0; mContentLength = mCreateTimestamp = mModifiedTimestamp = 0;
mSize = 0; mSize = 0;
mQuotaUsedBytes = 0; mQuotaUsedBytes = null;
mQuotaAvailableBytes = 0; mQuotaAvailableBytes = null;
} }
} }

View File

@ -25,6 +25,7 @@
package com.owncloud.android.lib.resources.files; package com.owncloud.android.lib.resources.files;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
@ -51,8 +52,8 @@ public class RemoteFile implements Parcelable, Serializable {
private String mPermissions; private String mPermissions;
private String mRemoteId; private String mRemoteId;
private long mSize; private long mSize;
private long mQuotaUsedBytes; private BigDecimal mQuotaUsedBytes;
private long mQuotaAvailableBytes; private BigDecimal mQuotaAvailableBytes;
/** /**
* Getters and Setters * Getters and Setters
@ -130,11 +131,11 @@ public class RemoteFile implements Parcelable, Serializable {
mSize = size; mSize = size;
} }
public void setQuotaUsedBytes (long quotaUsedBytes) { public void setQuotaUsedBytes (BigDecimal quotaUsedBytes) {
mQuotaUsedBytes = quotaUsedBytes; mQuotaUsedBytes = quotaUsedBytes;
} }
public void setQuotaAvailableBytes (long quotaAvailableBytes) { public void setQuotaAvailableBytes (BigDecimal quotaAvailableBytes) {
mQuotaAvailableBytes = quotaAvailableBytes; mQuotaAvailableBytes = quotaAvailableBytes;
} }
@ -184,8 +185,8 @@ public class RemoteFile implements Parcelable, Serializable {
mPermissions = null; mPermissions = null;
mRemoteId = null; mRemoteId = null;
mSize = 0; mSize = 0;
mQuotaUsedBytes = 0; mQuotaUsedBytes = null;
mQuotaAvailableBytes = 0; mQuotaAvailableBytes = null;
} }
/** /**
@ -223,8 +224,8 @@ public class RemoteFile implements Parcelable, Serializable {
mPermissions= source.readString(); mPermissions= source.readString();
mRemoteId = source.readString(); mRemoteId = source.readString();
mSize = source.readLong(); mSize = source.readLong();
mQuotaUsedBytes = source.readLong(); mQuotaUsedBytes = (BigDecimal) source.readSerializable();
mQuotaAvailableBytes = source.readLong(); mQuotaAvailableBytes = (BigDecimal) source.readSerializable();
} }
@Override @Override
@ -243,8 +244,8 @@ public class RemoteFile implements Parcelable, Serializable {
dest.writeString(mPermissions); dest.writeString(mPermissions);
dest.writeString(mRemoteId); dest.writeString(mRemoteId);
dest.writeLong(mSize); dest.writeLong(mSize);
dest.writeLong(mQuotaUsedBytes); dest.writeSerializable(mQuotaUsedBytes);
dest.writeLong(mQuotaAvailableBytes); dest.writeSerializable(mQuotaAvailableBytes);
} }
} }