X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/905b68b4ec886cff35799c0e0604383d9f1d245b..0db4fc9b17d0988c64a2949093dbb37230e1db2d:/src/com/owncloud/android/providers/FileContentProvider.java diff --git a/src/com/owncloud/android/providers/FileContentProvider.java b/src/com/owncloud/android/providers/FileContentProvider.java index 609c07ca..e3950f7d 100644 --- a/src/com/owncloud/android/providers/FileContentProvider.java +++ b/src/com/owncloud/android/providers/FileContentProvider.java @@ -94,8 +94,10 @@ public class FileContentProvider extends ContentProvider { ProviderTableMeta.FILE_ACCOUNT_OWNER); mFileProjectionMap.put(ProviderTableMeta.FILE_ETAG, ProviderTableMeta.FILE_ETAG); - mFileProjectionMap.put(ProviderTableMeta.FILE_SHARE_BY_LINK, - ProviderTableMeta.FILE_SHARE_BY_LINK); + mFileProjectionMap.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, + ProviderTableMeta.FILE_SHARED_VIA_LINK); + mFileProjectionMap.put(ProviderTableMeta.FILE_SHARED_VIA_USERS, + ProviderTableMeta.FILE_SHARED_VIA_USERS); mFileProjectionMap.put(ProviderTableMeta.FILE_PUBLIC_LINK, ProviderTableMeta.FILE_PUBLIC_LINK); mFileProjectionMap.put(ProviderTableMeta.FILE_PERMISSIONS, @@ -308,9 +310,7 @@ public class FileContentProvider extends ContentProvider { } long rowId = db.insert(ProviderTableMeta.FILE_TABLE_NAME, null, values); if (rowId > 0) { - Uri insertedFileUri = - ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_FILE, rowId); - return insertedFileUri; + return ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_FILE, rowId); } else { throw new SQLException("ERROR " + uri); } @@ -362,7 +362,7 @@ public class FileContentProvider extends ContentProvider { ); doubleCheckShare.close(); } - updateFilesTableAccordingToShareInsertion(db, uri, values); + updateFilesTableAccordingToShareInsertion(db, values); return insertedShareUri; @@ -373,21 +373,23 @@ public class FileContentProvider extends ContentProvider { } private void updateFilesTableAccordingToShareInsertion( - SQLiteDatabase db, Uri uri, ContentValues shareValues + SQLiteDatabase db, ContentValues newShare ) { ContentValues fileValues = new ContentValues(); - fileValues.put( - ProviderTableMeta.FILE_SHARE_BY_LINK, - ShareType.PUBLIC_LINK.getValue() == - shareValues.getAsInteger(ProviderTableMeta.OCSHARES_SHARE_TYPE) ? 1 : 0 - ); - String whereShare = ProviderTableMeta.FILE_PATH + "=? AND " + + int newShareType = newShare.getAsInteger(ProviderTableMeta.OCSHARES_SHARE_TYPE); + if (newShareType == ShareType.PUBLIC_LINK.getValue()) { + fileValues.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, 1); + } else if (newShareType == ShareType.USER.getValue() || newShareType == ShareType.GROUP.getValue()) { + fileValues.put(ProviderTableMeta.FILE_SHARED_VIA_USERS, 1); + } + + String where = ProviderTableMeta.FILE_PATH + "=? AND " + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?"; - String[] whereArgsShare = new String[] { - shareValues.getAsString(ProviderTableMeta.OCSHARES_PATH), - shareValues.getAsString(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER) + String[] whereArgs = new String[] { + newShare.getAsString(ProviderTableMeta.OCSHARES_PATH), + newShare.getAsString(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER) }; - db.update(ProviderTableMeta.FILE_TABLE_NAME, fileValues, whereShare, whereArgsShare); + db.update(ProviderTableMeta.FILE_TABLE_NAME, fileValues, where, whereArgs); } @@ -579,13 +581,14 @@ public class FileContentProvider extends ContentProvider { + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " INTEGER, " + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " INTEGER, " + ProviderTableMeta.FILE_ETAG + " TEXT, " - + ProviderTableMeta.FILE_SHARE_BY_LINK + " INTEGER, " + + ProviderTableMeta.FILE_SHARED_VIA_LINK + " INTEGER, " + ProviderTableMeta.FILE_PUBLIC_LINK + " TEXT, " + ProviderTableMeta.FILE_PERMISSIONS + " TEXT null," + ProviderTableMeta.FILE_REMOTE_ID + " TEXT null," + ProviderTableMeta.FILE_UPDATE_THUMBNAIL + " INTEGER," //boolean + ProviderTableMeta.FILE_IS_DOWNLOADING + " INTEGER," //boolean - + ProviderTableMeta.FILE_ETAG_IN_CONFLICT + " TEXT);" + + ProviderTableMeta.FILE_ETAG_IN_CONFLICT + " TEXT," + + ProviderTableMeta.FILE_SHARED_VIA_USERS + " INTEGER);" ); // Create table ocshares @@ -684,7 +687,7 @@ public class FileContentProvider extends ContentProvider { db.beginTransaction(); try { db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME + - " ADD COLUMN " + ProviderTableMeta.FILE_SHARE_BY_LINK + " INTEGER " + + " ADD COLUMN " + ProviderTableMeta.FILE_SHARED_VIA_LINK + " INTEGER " + " DEFAULT 0"); db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME + @@ -793,6 +796,24 @@ public class FileContentProvider extends ContentProvider { db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME + " ADD COLUMN " + ProviderTableMeta.FILE_ETAG_IN_CONFLICT + " TEXT " + " DEFAULT NULL"); + + upgraded = true; + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + } + if (!upgraded) + Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion + + ", newVersion == " + newVersion); + + if (oldVersion < 12 && newVersion >= 12) { + Log_OC.i("SQL", "Entering in the #12 ADD in onUpgrade"); + db.beginTransaction(); + try { + db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME + + " ADD COLUMN " + ProviderTableMeta.FILE_SHARED_VIA_USERS + " INTEGER " + + " DEFAULT 0"); upgraded = true; db.setTransactionSuccessful(); } finally {