X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/49ad249816495a1c20254ac8d91abb581d86114a..890bf7fa51135aa24e07ab8d02c002b22a66716a:/src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java diff --git a/src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java b/src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java index a47b7de7..0ad0d1bb 100644 --- a/src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java +++ b/src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java @@ -29,6 +29,7 @@ import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; +import android.os.Environment; import android.os.RemoteException; import android.util.Log; @@ -58,8 +59,8 @@ public class FileDataStorageManager implements DataStorageManager { OCFile file = null; if (c.moveToFirst()) { file = createFileInstance(c); - c.close(); } + c.close(); return file; } @@ -69,8 +70,8 @@ public class FileDataStorageManager implements DataStorageManager { OCFile file = null; if (c.moveToFirst()) { file = createFileInstance(c); - c.close(); } + c.close(); return file; } @@ -95,15 +96,17 @@ public class FileDataStorageManager implements DataStorageManager { cv.put(ProviderTableMeta.FILE_NAME, file.getFileName()); if (file.getParentId() != 0) cv.put(ProviderTableMeta.FILE_PARENT, file.getParentId()); - cv.put(ProviderTableMeta.FILE_PATH, file.getPath()); - cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getStoragePath()); + cv.put(ProviderTableMeta.FILE_PATH, file.getRemotePath()); + if (!file.isDirectory()) + cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getStoragePath()); cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDate()); - if (fileExists(file.getPath())) { - OCFile tmpfile = getFileByPath(file.getPath()); + if (fileExists(file.getRemotePath())) { + OCFile tmpfile = getFileByPath(file.getRemotePath()); file.setStoragePath(tmpfile.getStoragePath()); - cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getStoragePath()); + if (!file.isDirectory()); + cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getStoragePath()); file.setFileId(tmpfile.getFileId()); overriden = true; @@ -279,10 +282,19 @@ public class FileDataStorageManager implements DataStorageManager { file.setFileId(c.getLong(c.getColumnIndex(ProviderTableMeta._ID))); file.setParentId(c.getLong(c .getColumnIndex(ProviderTableMeta.FILE_PARENT))); - file.setStoragePath(c.getString(c - .getColumnIndex(ProviderTableMeta.FILE_STORAGE_PATH))); file.setMimetype(c.getString(c .getColumnIndex(ProviderTableMeta.FILE_CONTENT_TYPE))); + if (!file.isDirectory()) { + file.setStoragePath(c.getString(c + .getColumnIndex(ProviderTableMeta.FILE_STORAGE_PATH))); + if (file.getStoragePath() == null) { + // try to find existing file and bind it with current account + File sdCard = Environment.getExternalStorageDirectory(); + File f = new File(sdCard.getAbsolutePath() + "/owncloud/" + mAccount.name + file.getURLDecodedRemotePath()); + if (f.exists()) + file.setStoragePath(f.getAbsolutePath()); + } + } file.setFileLength(c.getLong(c .getColumnIndex(ProviderTableMeta.FILE_CONTENT_LENGTH))); file.setCreationTimestamp(c.getLong(c