X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/9aab2d26da38f26e7ff03a0b5db3bd01b51bce05..b12ca42b45b69cee9e15de0abe5758f3d75f527e:/src/com/owncloud/android/operations/DownloadFileOperation.java?ds=sidebyside diff --git a/src/com/owncloud/android/operations/DownloadFileOperation.java b/src/com/owncloud/android/operations/DownloadFileOperation.java index 2704654d..59343d15 100644 --- a/src/com/owncloud/android/operations/DownloadFileOperation.java +++ b/src/com/owncloud/android/operations/DownloadFileOperation.java @@ -22,11 +22,13 @@ import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.http.HttpStatus; @@ -56,6 +58,7 @@ public class DownloadFileOperation extends RemoteOperation { private OCFile mFile; private Set mDataTransferListeners = new HashSet(); private final AtomicBoolean mCancellationRequested = new AtomicBoolean(false); + private long mModificationTimestamp = 0; public DownloadFileOperation(Account account, OCFile file) { @@ -94,7 +97,7 @@ public class DownloadFileOperation extends RemoteOperation { } public String getMimeType() { - String mimeType = mFile.getMimetype(); // TODO fix the mime types in OCFiles FOREVER + String mimeType = mFile.getMimetype(); if (mimeType == null || mimeType.length() <= 0) { try { mimeType = MimeTypeMap.getSingleton() @@ -114,6 +117,10 @@ public class DownloadFileOperation extends RemoteOperation { return mFile.getFileLength(); } + public long getModificationTimestamp() { + return (mModificationTimestamp > 0) ? mModificationTimestamp : mFile.getModificationTimestamp(); + } + public void addDatatransferProgressListener (OnDatatransferProgressListener listener) { mDataTransferListeners.add(listener); @@ -189,6 +196,11 @@ public class DownloadFileOperation extends RemoteOperation { } } savedFile = true; + Header modificationTime = get.getResponseHeader("Last-Modified"); + if (modificationTime != null) { + Date d = WebdavUtils.parseResponseDate((String) modificationTime.getValue()); + mModificationTimestamp = (d != null) ? d.getTime() : 0; + } } else { client.exhaustResponse(get.getResponseBodyAsStream());