X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/b7ca8521e6aeb97c95641905ad7f5b28e3436faf..7cf441258b957fe9cac5d0dbd823d9b53b96c6e3:/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 827435fe..38212785 100644 --- a/src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java +++ b/src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java @@ -90,7 +90,7 @@ public class FileDataStorageManager implements DataStorageManager { cv.put(ProviderTableMeta.FILE_PATH, file.getPath()); cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getStoragePath()); cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name); - + if (fileExists(file.getPath())) { overriden = true; if (getContentResolver() != null) { @@ -109,15 +109,20 @@ public class FileDataStorageManager implements DataStorageManager { } } } else { + Uri result_uri = null; if (getContentResolver() != null) { - getContentResolver().insert(ProviderTableMeta.CONTENT_URI_FILE, cv); + result_uri = getContentResolver().insert(ProviderTableMeta.CONTENT_URI_FILE, cv); } else { try { - getContentProvider().insert(ProviderTableMeta.CONTENT_URI_FILE, cv); + result_uri = getContentProvider().insert(ProviderTableMeta.CONTENT_URI_FILE, cv); } catch (RemoteException e) { Log.e(TAG, "Fail to insert insert file to database " + e.getMessage()); } } + if (result_uri != null) { + long new_id = Long.parseLong(result_uri.getPathSegments().get(1)); + file.setFileId(new_id); + } } if (file.isDirectory() && file.needsUpdatingWhileSaving()) @@ -158,6 +163,7 @@ public class FileDataStorageManager implements DataStorageManager { Uri req_uri = Uri.withAppendedPath( ProviderTableMeta.CONTENT_URI_DIR, String.valueOf(f.getFileId())); Cursor c = null; + if (getContentProvider() != null) { try { c = getContentProvider().query(req_uri, null, null, null, null); @@ -169,12 +175,13 @@ public class FileDataStorageManager implements DataStorageManager { c = getContentResolver().query(req_uri, null, null, null, null); } - if (c.moveToFirst()) + if (c.moveToFirst()) { do { OCFile child = createFileInstance(c); ret.add(child); } while (c.moveToNext()); - + } + c.close(); return ret; }