From: masensio Date: Mon, 19 Oct 2015 07:48:05 +0000 (+0200) Subject: Get shares from Database, fix in insert shares in DB X-Git-Tag: oc-android-1.9^2~30^2~50 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/55dc0da79a422009633c5ffa3fae8b342f90d43e Get shares from Database, fix in insert shares in DB --- diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java index c4f02084..0b89efc4 100644 --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -1336,7 +1336,6 @@ public class FileDataStorageManager { operations = prepareRemoveSharesInFolder(folder, operations); if (shares != null) { - Log_OC.d(TAG, "SHARES.............................................."); // prepare operations to insert or update files to save in the given folder for (OCShare share : shares) { ContentValues cv = new ContentValues(); @@ -1361,26 +1360,9 @@ public class FileDataStorageManager { // adding a new share resource operations.add( ContentProviderOperation.newInsert(ProviderTableMeta.CONTENT_URI_SHARE). - /* withValue(ProviderTableMeta.OCSHARES_FILE_SOURCE, share.getFileSource()). - withValue(ProviderTableMeta.OCSHARES_ITEM_SOURCE, share.getItemSource()). - withValue(ProviderTableMeta.OCSHARES_SHARE_TYPE, share.getShareType().getValue()). - withValue(ProviderTableMeta.OCSHARES_SHARE_WITH, share.getShareWith()). - withValue(ProviderTableMeta.OCSHARES_PATH, share.getPath()). - withValue(ProviderTableMeta.OCSHARES_PERMISSIONS, share.getPermissions()). - withValue(ProviderTableMeta.OCSHARES_SHARED_DATE, share.getSharedDate()). - withValue(ProviderTableMeta.OCSHARES_EXPIRATION_DATE, share.getExpirationDate()). - withValue(ProviderTableMeta.OCSHARES_TOKEN, share.getToken()). - withValue(ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME, - share.getSharedWithDisplayName()). - withValue(ProviderTableMeta.OCSHARES_IS_DIRECTORY, share.isFolder() ? 1 : 0). - withValue(ProviderTableMeta.OCSHARES_USER_ID, share.getUserId()). - withValue(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, share.getIdRemoteShared()). - withValue(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER, mAccount.name).*/ - withValues(cv). + withValues(cv). build() ); - Log_OC.d(TAG, "The VALUES are cv " + cv.toString()); - //} } } diff --git a/src/com/owncloud/android/providers/FileContentProvider.java b/src/com/owncloud/android/providers/FileContentProvider.java index e3950f7d..bd7b6dcc 100644 --- a/src/com/owncloud/android/providers/FileContentProvider.java +++ b/src/com/owncloud/android/providers/FileContentProvider.java @@ -326,41 +326,14 @@ public class FileContentProvider extends ContentProvider { } case SHARES: - String path = values.getAsString(ProviderTableMeta.OCSHARES_PATH); - String accountNameShare= values.getAsString(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER); - String[] projectionShare = new String[] { - ProviderTableMeta._ID, ProviderTableMeta.OCSHARES_PATH, - ProviderTableMeta.OCSHARES_ACCOUNT_OWNER - }; - String whereShare = ProviderTableMeta.OCSHARES_PATH + "=? AND " + - ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?"; - String[] whereArgsShare = new String[] {path, accountNameShare}; Uri insertedShareUri = null; - Cursor doubleCheckShare = - query(db, uri, projectionShare, whereShare, whereArgsShare, null); - // ugly patch; serious refactorization is needed to reduce work in - // FileDataStorageManager and bring it to FileContentProvider - if (doubleCheckShare == null || !doubleCheckShare.moveToFirst()) { - if (doubleCheckShare != null) { - doubleCheckShare.close(); - } - long rowId = db.insert(ProviderTableMeta.OCSHARES_TABLE_NAME, null, values); - if (rowId >0) { - insertedShareUri = - ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_SHARE, rowId); - } else { - throw new SQLException("ERROR " + uri); - - } + long rowId = db.insert(ProviderTableMeta.OCSHARES_TABLE_NAME, null, values); + if (rowId >0) { + insertedShareUri = + ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_SHARE, rowId); } else { - // file is already inserted; race condition, let's avoid a duplicated entry - insertedShareUri = ContentUris.withAppendedId( - ProviderTableMeta.CONTENT_URI_SHARE, - doubleCheckShare.getLong( - doubleCheckShare.getColumnIndex(ProviderTableMeta._ID) - ) - ); - doubleCheckShare.close(); + throw new SQLException("ERROR " + uri); + } updateFilesTableAccordingToShareInsertion(db, values); return insertedShareUri;