X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/0c4adf5134ef12dff149c6e7bf03be4c7e15b8db..5b8731873ea8c0e5e9e35ff54ef075fe200cc749:/src/com/owncloud/android/datamodel/FileDataStorageManager.java diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java index f4611936..39ddb927 100644 --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -42,7 +42,9 @@ import android.database.Cursor; import android.net.Uri; import android.os.RemoteException; -public class FileDataStorageManager implements DataStorageManager { +public class FileDataStorageManager { + + public static final int ROOT_PARENT_ID = 0; private ContentResolver mContentResolver; private ContentProviderClient mContentProvider; @@ -62,7 +64,7 @@ public class FileDataStorageManager implements DataStorageManager { mAccount = account; } - @Override + public OCFile getFileByPath(String path) { Cursor c = getCursorForValue(ProviderTableMeta.FILE_PATH, path); OCFile file = null; @@ -80,12 +82,11 @@ public class FileDataStorageManager implements DataStorageManager { private OCFile createRootDir() { OCFile file = new OCFile(OCFile.PATH_SEPARATOR); file.setMimetype("DIR"); - file.setParentId(DataStorageManager.ROOT_PARENT_ID); + file.setParentId(FileDataStorageManager.ROOT_PARENT_ID); saveFile(file); return file; } - @Override public OCFile getFileById(long id) { Cursor c = getCursorForValue(ProviderTableMeta._ID, String.valueOf(id)); OCFile file = null; @@ -106,17 +107,14 @@ public class FileDataStorageManager implements DataStorageManager { return file; } - @Override public boolean fileExists(long id) { return fileExists(ProviderTableMeta._ID, String.valueOf(id)); } - @Override public boolean fileExists(String path) { return fileExists(ProviderTableMeta.FILE_PATH, path); } - @Override public boolean saveFile(OCFile file) { boolean overriden = false; ContentValues cv = new ContentValues(); @@ -126,7 +124,7 @@ public class FileDataStorageManager implements DataStorageManager { cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, file.getFileLength()); cv.put(ProviderTableMeta.FILE_CONTENT_TYPE, file.getMimetype()); cv.put(ProviderTableMeta.FILE_NAME, file.getFileName()); - if (file.getParentId() != 0) + //if (file.getParentId() != DataStorageManager.ROOT_PARENT_ID) cv.put(ProviderTableMeta.FILE_PARENT, file.getParentId()); cv.put(ProviderTableMeta.FILE_PATH, file.getRemotePath()); if (!file.isDirectory()) @@ -135,6 +133,7 @@ public class FileDataStorageManager implements DataStorageManager { cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDateForProperties()); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData()); cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.keepInSync() ? 1 : 0); + cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag()); boolean sameRemotePath = fileExists(file.getRemotePath()); boolean changesSizeOfAncestors = false; @@ -205,7 +204,6 @@ public class FileDataStorageManager implements DataStorageManager { } - @Override public void saveFiles(List files) { Iterator filesIt = files.iterator(); @@ -222,7 +220,7 @@ public class FileDataStorageManager implements DataStorageManager { cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, file.getFileLength()); cv.put(ProviderTableMeta.FILE_CONTENT_TYPE, file.getMimetype()); cv.put(ProviderTableMeta.FILE_NAME, file.getFileName()); - if (file.getParentId() != 0) + if (file.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) cv.put(ProviderTableMeta.FILE_PARENT, file.getParentId()); cv.put(ProviderTableMeta.FILE_PATH, file.getRemotePath()); if (!file.isDirectory()) @@ -231,6 +229,7 @@ public class FileDataStorageManager implements DataStorageManager { cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDateForProperties()); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData()); cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.keepInSync() ? 1 : 0); + cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag()); if (fileExists(file.getRemotePath())) { OCFile oldFile = getFileByPath(file.getRemotePath()); @@ -330,7 +329,6 @@ public class FileDataStorageManager implements DataStorageManager { return mContentProvider; } - @Override public Vector getDirectoryContent(OCFile f) { if (f != null && f.isDirectory() && f.getFileId() != -1) { return getDirectoryContent(f.getFileId()); @@ -472,11 +470,12 @@ public class FileDataStorageManager implements DataStorageManager { getColumnIndex(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA))); file.setKeepInSync(c.getInt( c.getColumnIndex(ProviderTableMeta.FILE_KEEP_IN_SYNC)) == 1 ? true : false); + file.setEtag(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_ETAG))); + } return file; } - @Override public void removeFile(OCFile file, boolean removeLocalCopy) { Uri file_uri = Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_FILE, ""+file.getFileId()); if (getContentProvider() != null) { @@ -507,7 +506,6 @@ public class FileDataStorageManager implements DataStorageManager { } } - @Override public void removeDirectory(OCFile dir, boolean removeDBData, boolean removeLocalContent) { // TODO consider possible failures if (dir != null && dir.isDirectory() && dir.getFileId() != -1) { @@ -546,7 +544,6 @@ public class FileDataStorageManager implements DataStorageManager { * TODO explore better (faster) implementations * TODO throw exceptions up ! */ - @Override public void moveDirectory(OCFile dir, String newPath) { // TODO check newPath @@ -610,7 +607,6 @@ public class FileDataStorageManager implements DataStorageManager { } } - @Override public Vector getDirectoryImages(OCFile directory) { Vector ret = new Vector(); if (directory != null) { @@ -631,7 +627,6 @@ public class FileDataStorageManager implements DataStorageManager { * Calculate and save the folderSize on DB * @param id */ - @Override public void calculateFolderSize(long id) { long folderSize = 0; @@ -674,9 +669,8 @@ public class FileDataStorageManager implements DataStorageManager { OCFile file; - while (parentId != 0) { + while (parentId != FileDataStorageManager.ROOT_PARENT_ID) { - Log_OC.d(TAG, "parent = " + parentId); // Update the size of the parent calculateFolderSize(parentId);