X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/81965a51a5a234d114779b62630f3e13e32a2122..dc648f1ae9b636b6089906db88219924519f6dbf:/src/eu/alefzero/owncloud/datamodel/OCFile.java diff --git a/src/eu/alefzero/owncloud/datamodel/OCFile.java b/src/eu/alefzero/owncloud/datamodel/OCFile.java index 57853c40..25532389 100644 --- a/src/eu/alefzero/owncloud/datamodel/OCFile.java +++ b/src/eu/alefzero/owncloud/datamodel/OCFile.java @@ -23,6 +23,7 @@ import java.util.Vector; import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta; import android.accounts.Account; +import android.content.ContentProvider; import android.content.ContentProviderClient; import android.content.ContentResolver; import android.content.ContentValues; @@ -74,6 +75,28 @@ public class OCFile { return new_file; } + public static OCFile createNewFile(ContentResolver contentResolver, Account a, + String path, int length, int creation_timestamp, int modified_timestamp, + String mimetype, long parent_id) { + OCFile new_file = new OCFile(contentResolver, a); + Cursor c = new_file.cr_.query(ProviderTableMeta.CONTENT_URI_FILE, null, + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + + ProviderTableMeta.FILE_PATH + "=?", new String[]{new_file.account_.name, + path}, null); + if (c.moveToFirst()) + new_file.setFileData(c); + c.close(); + + new_file.path_ = path; + new_file.length_ = length; + new_file.creation_timestamp_ = creation_timestamp; + new_file.modified_timestamp_ = modified_timestamp; + new_file.mimetype_ = mimetype; + new_file.parent_id_ = parent_id; + + return new_file; + } + public OCFile(ContentResolver cr, Account account, long id) { cr_ = cr; account_ = account; @@ -100,6 +123,25 @@ public class OCFile { } } + public OCFile(ContentProviderClient cp, Account account, String path) { + cp_ = cp; + account_ = account; + + try { + Cursor c = cp_.query(ProviderTableMeta.CONTENT_URI_FILE, null, + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + + ProviderTableMeta.FILE_PATH + "=?", new String[]{account_.name, + path}, null); + if (c.moveToFirst()) { + setFileData(c); + if (path_ != null) + path_ = path; + } + } catch (RemoteException e) { + Log.d(TAG , e.getMessage()); + } + } + public long getFileId() { return id_; } @@ -244,6 +286,12 @@ public class OCFile { cp_ = cp; resetData(); } + + private OCFile(ContentResolver cr, Account account) { + account_ = account; + cr_ = cr; + resetData(); + } private void resetData() { id_ = -1;