X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/0db4fc9b17d0988c64a2949093dbb37230e1db2d..refs/heads/master:/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 e9facf15..2b9bd5e7 100644 --- a/src/com/owncloud/android/datamodel/OCFile.java +++ b/src/com/owncloud/android/datamodel/OCFile.java @@ -1,6 +1,8 @@ /** * ownCloud Android client application * + * @author Bartek Przybylski + * @author David A. Velasco * Copyright (C) 2012 Bartek Przybylski * Copyright (C) 2015 ownCloud Inc. * @@ -20,6 +22,8 @@ package com.owncloud.android.datamodel; +import android.content.ContentResolver; +import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; import android.webkit.MimeTypeMap; @@ -78,7 +82,13 @@ public class OCFile implements Parcelable, Comparable { private String mEtagInConflict; // Save file etag in the server, when there is a conflict. No conflict = null - private boolean mShareWithUser; + private boolean mShareWithSharee; + + /** + * URI to the local path of the file contents, if stored in the device; cached after first call + * to {@link #getStorageUri()} + */ + private Uri mLocalUri; /** @@ -124,7 +134,7 @@ public class OCFile implements Parcelable, Comparable { mNeedsUpdateThumbnail = source.readInt() == 1; mIsDownloading = source.readInt() == 1; mEtagInConflict = source.readString(); - mShareWithUser = source.readInt() == 1; + mShareWithSharee = source.readInt() == 1; } @@ -151,7 +161,7 @@ public class OCFile implements Parcelable, Comparable { dest.writeInt(mNeedsUpdateThumbnail ? 1 : 0); dest.writeInt(mIsDownloading ? 1 : 0); dest.writeString(mEtagInConflict); - dest.writeInt(mShareWithUser ? 1 : 0); + dest.writeInt(mShareWithSharee ? 1 : 0); } /** @@ -214,12 +224,31 @@ public class OCFile implements Parcelable, Comparable { } /** + * The URI to the file contents, if stored locally + * + * @return A URI to the local copy of the file, or NULL if not stored in the device + */ + public Uri getStorageUri() { + if (mLocalPath == null || mLocalPath.length() == 0) { + return null; + } + if (mLocalUri == null) { + Uri.Builder builder = new Uri.Builder(); + builder.scheme(ContentResolver.SCHEME_FILE); + builder.path(mLocalPath); + mLocalUri = builder.build(); + } + return mLocalUri; + } + + /** * Can be used to set the path where the file is stored * * @param storage_path to set */ public void setStoragePath(String storage_path) { mLocalPath = storage_path; + mLocalUri = null; } /** @@ -350,7 +379,7 @@ public class OCFile implements Parcelable, Comparable { mNeedsUpdateThumbnail = false; mIsDownloading = false; mEtagInConflict = null; - mShareWithUser = false; + mShareWithSharee = false; } /** @@ -600,12 +629,12 @@ public class OCFile implements Parcelable, Comparable { mEtagInConflict = etagInConflict; } - public boolean isSharedViaUsers() { - return mShareWithUser; + public boolean isSharedWithSharee() { + return mShareWithSharee; } - public void setShareViaUsers(boolean shareWithUser) { - this.mShareWithUser = shareWithUser; + public void setShareWithSharee(boolean shareWithSharee) { + this.mShareWithSharee = shareWithSharee; } public boolean isSharedWithMe() {