import android.os.Parcel;
import android.os.Parcelable;
+import android.webkit.MimeTypeMap;
import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.utils.FileStorageUtils;
import java.io.File;
private boolean mNeedsUpdating;
private long mLastSyncDateForProperties;
private long mLastSyncDateForData;
- private boolean mKeepInSync;
+ private boolean mFavorite;
private String mEtag;
private boolean mShareByLink;
private String mPublicLink;
- private boolean mFavorite;
-
private String mPermissions;
private String mRemoteId;
mLocalPath = source.readString();
mMimeType = source.readString();
mNeedsUpdating = source.readInt() == 0;
- mKeepInSync = source.readInt() == 1;
+ mFavorite = source.readInt() == 1;
mLastSyncDateForProperties = source.readLong();
mLastSyncDateForData = source.readLong();
mEtag = source.readString();
mShareByLink = source.readInt() == 1;
- mFavorite = source.readInt() == 1;
mPublicLink = source.readString();
mPermissions = source.readString();
mRemoteId = source.readString();
dest.writeString(mLocalPath);
dest.writeString(mMimeType);
dest.writeInt(mNeedsUpdating ? 1 : 0);
- dest.writeInt(mKeepInSync ? 1 : 0);
+ dest.writeInt(mFavorite ? 1 : 0);
dest.writeLong(mLastSyncDateForProperties);
dest.writeLong(mLastSyncDateForData);
dest.writeString(mEtag);
dest.writeInt(mShareByLink ? 1 : 0);
- dest.writeInt(mFavorite ? 1 : 0);
dest.writeString(mPublicLink);
dest.writeString(mPermissions);
dest.writeString(mRemoteId);
/**
* Sets the name of the file
* <p/>
- * Does nothing if the new name is null, empty or includes "/" ; or if the file is the root directory
+ * 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_OC.d(TAG, "OCFile name changin from " + mRemotePath);
- if (name != null && name.length() > 0 && !name.contains(PATH_SEPARATOR) && !mRemotePath.equals(ROOT_PATH)) {
+ if (name != null && name.length() > 0 && !name.contains(PATH_SEPARATOR) &&
+ !mRemotePath.equals(ROOT_PATH)) {
String parent = (new File(getRemotePath())).getParent();
parent = (parent.endsWith(PATH_SEPARATOR)) ? parent : parent + PATH_SEPARATOR;
mRemotePath = parent + name;
mModifiedTimestampAtLastSyncForData = 0;
mLastSyncDateForProperties = 0;
mLastSyncDateForData = 0;
- mKeepInSync = false;
+ mFavorite = false;
mNeedsUpdating = false;
mEtag = null;
mShareByLink = false;
- mFavorite = false;
mPublicLink = null;
mPermissions = null;
mRemoteId = null;
mLastSyncDateForData = lastSyncDate;
}
- public void setKeepInSync(boolean keepInSync) {
- mKeepInSync = keepInSync;
+ public void setFavorite(boolean favorite) {
+ mFavorite = favorite;
}
- public boolean keepInSync() {
- return mKeepInSync;
+ public boolean isFavorite() {
+ return mFavorite;
}
@Override
public int describeContents() {
- return ((Object) this).hashCode();
+ return super.hashCode();
}
@Override
@Override
public String toString() {
- String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, keepInSync=%s etag=%s]";
- asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mKeepInSync), mEtag);
+ String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, " +
+ "parentId=%s, favorite=%s etag=%s]";
+ asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(),
+ mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mFavorite),
+ mEtag);
return asString;
}
this.mShareByLink = shareByLink;
}
- public boolean isFavorite() {
- return mFavorite;
- }
-
- public void setFavorite(boolean mFavorite) {
- this.mFavorite = mFavorite;
- }
-
public String getPublicLink() {
return mPublicLink;
}
*/
public boolean isImage() {
return ((mMimeType != null && mMimeType.startsWith("image/")) ||
- FileStorageUtils.getMimeTypeFromName(mRemotePath).startsWith("image/"));
+ getMimeTypeFromName().startsWith("image/"));
+ }
+
+ /**
+ * @return 'True' if the file is simple text (e.g. not application-dependent, like .doc or .docx)
+ */
+ public boolean isText() {
+ return ((mMimeType != null && mMimeType.startsWith("text/")) ||
+ getMimeTypeFromName().startsWith("text/"));
+ }
+
+ 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 : "";
+ }
+
+ /**
+ * @return 'True' if the file is hidden
+ */
+ public boolean isHidden() {
+ return getFileName().startsWith(".");
}
public String getPermissions() {