|
@@ -43,7 +43,6 @@ import android.text.TextUtils;
|
|
|
import com.owncloud.android.MainApp;
|
|
|
import com.owncloud.android.R;
|
|
|
import com.owncloud.android.datamodel.OCFile;
|
|
|
-import com.owncloud.android.datamodel.UploadsStorageManager;
|
|
|
import com.owncloud.android.db.ProviderMeta;
|
|
|
import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
|
|
|
import com.owncloud.android.lib.common.accounts.AccountUtils;
|
|
@@ -1067,19 +1066,34 @@ public class FileContentProvider extends ContentProvider {
|
|
|
db.beginTransaction();
|
|
|
try {
|
|
|
// add type column default being CUSTOM (0)
|
|
|
- Log_OC.i(SQL, "Add type column and default value 0 (CUSTOM) to synced_folders table");
|
|
|
- db.execSQL(ALTER_TABLE + ProviderTableMeta.SYNCED_FOLDERS_TABLE_NAME +
|
|
|
- ADD_COLUMN + ProviderTableMeta.SYNCED_FOLDER_TYPE +
|
|
|
- " INTEGER " + " DEFAULT 0");
|
|
|
+ if (!checkIfColumnExists(db, ProviderTableMeta.SYNCED_FOLDERS_TABLE_NAME,
|
|
|
+ ProviderTableMeta.SYNCED_FOLDER_TYPE)) {
|
|
|
+ Log_OC.i(SQL, "Add type column and default value 0 (CUSTOM) to synced_folders table");
|
|
|
+ db.execSQL(ALTER_TABLE + ProviderTableMeta.SYNCED_FOLDERS_TABLE_NAME +
|
|
|
+ ADD_COLUMN + ProviderTableMeta.SYNCED_FOLDER_TYPE +
|
|
|
+ " INTEGER " + " DEFAULT 0");
|
|
|
+ } else {
|
|
|
+ Log_OC.i(SQL, "Type column of synced_folders table already exists");
|
|
|
+ }
|
|
|
|
|
|
- Log_OC.i(SQL, "Add charging and wifi columns to uploads");
|
|
|
- db.execSQL(ALTER_TABLE + ProviderTableMeta.UPLOADS_TABLE_NAME +
|
|
|
- ADD_COLUMN + ProviderTableMeta.UPLOADS_IS_WIFI_ONLY +
|
|
|
- " INTEGER " + " DEFAULT 0");
|
|
|
+ if (!checkIfColumnExists(db, ProviderTableMeta.SYNCED_FOLDERS_TABLE_NAME,
|
|
|
+ ProviderTableMeta.UPLOADS_IS_WIFI_ONLY)) {
|
|
|
+ Log_OC.i(SQL, "Add charging and wifi columns to uploads");
|
|
|
+ db.execSQL(ALTER_TABLE + ProviderTableMeta.UPLOADS_TABLE_NAME +
|
|
|
+ ADD_COLUMN + ProviderTableMeta.UPLOADS_IS_WIFI_ONLY +
|
|
|
+ " INTEGER " + " DEFAULT 0");
|
|
|
+ } else {
|
|
|
+ Log_OC.i(SQL, "Wifi column of synced_folders table already exists");
|
|
|
+ }
|
|
|
|
|
|
- db.execSQL(ALTER_TABLE + ProviderTableMeta.UPLOADS_TABLE_NAME +
|
|
|
- ADD_COLUMN + ProviderTableMeta.UPLOADS_IS_WHILE_CHARGING_ONLY +
|
|
|
- " INTEGER " + " DEFAULT 0");
|
|
|
+ if (!checkIfColumnExists(db, ProviderTableMeta.SYNCED_FOLDERS_TABLE_NAME,
|
|
|
+ ProviderTableMeta.UPLOADS_IS_WHILE_CHARGING_ONLY)) {
|
|
|
+ db.execSQL(ALTER_TABLE + ProviderTableMeta.UPLOADS_TABLE_NAME +
|
|
|
+ ADD_COLUMN + ProviderTableMeta.UPLOADS_IS_WHILE_CHARGING_ONLY +
|
|
|
+ " INTEGER " + " DEFAULT 0");
|
|
|
+ } else {
|
|
|
+ Log_OC.i(SQL, "Charging column of synced_folders table already exists");
|
|
|
+ }
|
|
|
|
|
|
// create Filesystem table
|
|
|
Log_OC.i(SQL, "Create filesystem table");
|
|
@@ -1097,10 +1111,58 @@ public class FileContentProvider extends ContentProvider {
|
|
|
if (!upgraded) {
|
|
|
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
|
|
|
}
|
|
|
+
|
|
|
+ if (oldVersion < 24 && newVersion >= 24) {
|
|
|
+ Log_OC.i(SQL, "Entering in the #24 Re-adding user theming to capabilities table");
|
|
|
+ db.beginTransaction();
|
|
|
+ try {
|
|
|
+ if (!checkIfColumnExists(db, ProviderTableMeta.CAPABILITIES_TABLE_NAME,
|
|
|
+ ProviderTableMeta.CAPABILITIES_SERVER_NAME)) {
|
|
|
+ db.execSQL(ALTER_TABLE + ProviderTableMeta.CAPABILITIES_TABLE_NAME +
|
|
|
+ ADD_COLUMN + ProviderTableMeta.CAPABILITIES_SERVER_NAME + " TEXT ");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!checkIfColumnExists(db, ProviderTableMeta.CAPABILITIES_TABLE_NAME,
|
|
|
+ ProviderTableMeta.CAPABILITIES_SERVER_COLOR)) {
|
|
|
+ db.execSQL(ALTER_TABLE + ProviderTableMeta.CAPABILITIES_TABLE_NAME +
|
|
|
+ ADD_COLUMN + ProviderTableMeta.CAPABILITIES_SERVER_COLOR + " TEXT ");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!checkIfColumnExists(db, ProviderTableMeta.CAPABILITIES_TABLE_NAME,
|
|
|
+ ProviderTableMeta.CAPABILITIES_SERVER_BACKGROUND_URL)) {
|
|
|
+ db.execSQL(ALTER_TABLE + ProviderTableMeta.CAPABILITIES_TABLE_NAME +
|
|
|
+ ADD_COLUMN + ProviderTableMeta.CAPABILITIES_SERVER_BACKGROUND_URL + " TEXT ");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!checkIfColumnExists(db, ProviderTableMeta.CAPABILITIES_TABLE_NAME,
|
|
|
+ ProviderTableMeta.CAPABILITIES_SERVER_SLOGAN)) {
|
|
|
+ db.execSQL(ALTER_TABLE + ProviderTableMeta.CAPABILITIES_TABLE_NAME +
|
|
|
+ ADD_COLUMN + ProviderTableMeta.CAPABILITIES_SERVER_SLOGAN + " TEXT ");
|
|
|
+ }
|
|
|
+
|
|
|
+ upgraded = true;
|
|
|
+ db.setTransactionSuccessful();
|
|
|
+ } finally {
|
|
|
+ db.endTransaction();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!upgraded) {
|
|
|
+ Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private boolean checkIfColumnExists(SQLiteDatabase database, String table, String column) {
|
|
|
+ Cursor cursor = database.rawQuery("SELECT * FROM " + table + " LIMIT 0", null);
|
|
|
+ boolean exists = cursor.getColumnIndex(column) != -1;
|
|
|
+
|
|
|
+ cursor.close();
|
|
|
+
|
|
|
+ return exists;
|
|
|
+ }
|
|
|
+
|
|
|
private void createFilesTable(SQLiteDatabase db) {
|
|
|
|
|
|
db.execSQL("CREATE TABLE " + ProviderTableMeta.FILE_TABLE_NAME + "("
|