X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/586793a261e7444ba60df46051b572b5f2ad84c5..a8fade7369bc8d1752dc4ba5fe07935cac84e96f:/src/com/owncloud/android/datamodel/OCFile.java diff --git a/src/com/owncloud/android/datamodel/OCFile.java b/src/com/owncloud/android/datamodel/OCFile.java index fb89f574..87a38a69 100644 --- a/src/com/owncloud/android/datamodel/OCFile.java +++ b/src/com/owncloud/android/datamodel/OCFile.java @@ -1,10 +1,10 @@ /* ownCloud Android client application * Copyright (C) 2012 Bartek Przybylski + * Copyright (C) 2012-2013 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -20,9 +20,11 @@ package com.owncloud.android.datamodel; import java.io.File; +import com.owncloud.android.Log_OC; + import android.os.Parcel; import android.os.Parcelable; -import android.util.Log; +import android.webkit.MimeTypeMap; public class OCFile implements Parcelable, Comparable { @@ -58,6 +60,7 @@ public class OCFile implements Parcelable, Comparable { private String mEtag; + /** * Create new {@link OCFile} with given path. * @@ -93,6 +96,7 @@ public class OCFile implements Parcelable, Comparable { mKeepInSync = source.readInt() == 1; mLastSyncDateForProperties = source.readLong(); mLastSyncDateForData = source.readLong(); + mEtag = source.readString(); } @Override @@ -110,6 +114,7 @@ public class OCFile implements Parcelable, Comparable { dest.writeInt(mKeepInSync ? 1 : 0); dest.writeLong(mLastSyncDateForProperties); dest.writeLong(mLastSyncDateForData); + dest.writeString(mEtag); } /** @@ -261,7 +266,7 @@ public class OCFile implements Parcelable, Comparable { * Does nothing if the new name is null, empty or includes "/" ; or if the file is the root directory */ public void setFileName(String name) { - Log.d(TAG, "OCFile name changin from " + mRemotePath); + Log_OC.d(TAG, "OCFile name changin from " + mRemotePath); if (name != null && name.length() > 0 && !name.contains(PATH_SEPARATOR) && !mRemotePath.equals(PATH_SEPARATOR)) { String parent = (new File(getRemotePath())).getParent(); parent = (parent.endsWith(PATH_SEPARATOR)) ? parent : parent + PATH_SEPARATOR; @@ -269,7 +274,7 @@ public class OCFile implements Parcelable, Comparable { if (isDirectory()) { mRemotePath += PATH_SEPARATOR; } - Log.d(TAG, "OCFile name changed to " + mRemotePath); + Log_OC.d(TAG, "OCFile name changed to " + mRemotePath); } } @@ -317,6 +322,7 @@ public class OCFile implements Parcelable, Comparable { mLastSyncDateForData = 0; mKeepInSync = false; mNeedsUpdating = false; + mEtag = null; } /** @@ -437,8 +443,8 @@ public class OCFile implements Parcelable, Comparable { @Override public String toString() { - String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, keepInSinc=%s]"; - asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mKeepInSync)); + String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, keepInSinc=%s etag=%s]"; + asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mKeepInSync), mEtag); return asString; } @@ -446,6 +452,10 @@ public class OCFile implements Parcelable, Comparable { return mEtag; } + public void setEtag(String etag) { + this.mEtag = etag; + } + public long getLocalModificationTimestamp() { if (mLocalPath != null && mLocalPath.length() > 0) { File f = new File(mLocalPath); @@ -454,12 +464,30 @@ public class OCFile implements Parcelable, Comparable { return 0; } + /** @return 'True' if the file contains audio */ public boolean isAudio() { return (mMimeType != null && mMimeType.startsWith("audio/")); } + /** @return 'True' if the file contains video */ public boolean isVideo() { return (mMimeType != null && mMimeType.startsWith("video/")); } + /** @return 'True' if the file contains an image */ + public boolean isImage() { + return ((mMimeType != null && mMimeType.startsWith("image/")) || + getMimeTypeFromName().startsWith("image/")); + } + + public String getMimeTypeFromName() { + String extension = ""; + int pos = mRemotePath.lastIndexOf('.'); + if (pos >= 0) { + extension = mRemotePath.substring(pos + 1); + } + String result = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase()); + return (result != null) ? result : ""; + } + }