X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/4f3267b3fae8c4320c93bc3f1e48ce022a716ad7..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 bfa99631..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; @@ -59,6 +60,7 @@ public class OCFile { path}, null); if (c.moveToFirst()) new_file.setFileData(c); + c.close(); } catch (RemoteException e) { Log.e(TAG, e.getMessage()); } @@ -69,11 +71,32 @@ public class OCFile { new_file.modified_timestamp_ = modified_timestamp; new_file.mimetype_ = mimetype; new_file.parent_id_ = parent_id; - Log.e(TAG, parent_id+""); 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_; } @@ -228,6 +270,7 @@ public class OCFile { ret.add(child); } while (c.moveToNext()); + c.close(); return ret; } return null; @@ -243,7 +286,7 @@ public class OCFile { cp_ = cp; resetData(); } - + private OCFile(ContentResolver cr, Account account) { account_ = account; cr_ = cr;