From: David A. Velasco Date: Mon, 10 Dec 2012 13:01:45 +0000 (+0100) Subject: Avoid the necessity to synchronize the account after the upgrade to 1.3.16 X-Git-Tag: oc-android-1.4.3~77 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/e83a73cb9dea3f2becd06628cb2219b040de5907 Avoid the necessity to synchronize the account after the upgrade to 1.3.16 --- diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index 008fb500..849413fd 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -163,18 +163,8 @@ public class SynchronizeFolderOperation extends RemoteOperation { OCFile oldFile = mStorageManager.getFileByPath(file.getRemotePath()); if (oldFile != null) { file.setKeepInSync(oldFile.keepInSync()); - if (oldFile.isDown() && oldFile.getLastSyncDateForData() == 0) { - // only should be true after the upgrade to database version 3 (official 1.3.16 release) - file.setLastSyncDateForData(oldFile.getLocalModificationTimestamp()); // assume there are not local changes pending to upload - } else { - file.setLastSyncDateForData(oldFile.getLastSyncDateForData()); - } - if (oldFile.isDown() && oldFile.getModificationTimestampAtLastSyncForData() == 0) { - // only should be true after the upgrade to database version 4 (official 1.3.16 release) - file.setModificationTimestampAtLastSyncForData(oldFile.getModificationTimestamp()); // assume the file was downloaded not later than the last account synchronization - } else { - file.setModificationTimestampAtLastSyncForData(oldFile.getModificationTimestampAtLastSyncForData()); // not local, but must be kept unchanged when the file contents are not updated - } + file.setLastSyncDateForData(oldFile.getLastSyncDateForData()); + file.setModificationTimestampAtLastSyncForData(oldFile.getModificationTimestampAtLastSyncForData()); // must be kept unchanged when the file contents are not updated checkAndFixForeignStoragePath(oldFile); file.setStoragePath(oldFile.getStoragePath()); } diff --git a/src/com/owncloud/android/providers/FileContentProvider.java b/src/com/owncloud/android/providers/FileContentProvider.java index 5d4f9b8c..e87d151c 100644 --- a/src/com/owncloud/android/providers/FileContentProvider.java +++ b/src/com/owncloud/android/providers/FileContentProvider.java @@ -244,17 +244,40 @@ public class FileContentProvider extends ContentProvider { } if (oldVersion < 3 && newVersion >= 3) { Log.i("SQL", "Entering in the #2 ADD in onUpgrade"); - db.execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME + - " ADD COLUMN " + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " INTEGER " + - " DEFAULT 0"); - upgraded = true; + db.beginTransaction(); + try { + db.execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME + + " ADD COLUMN " + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " INTEGER " + + " DEFAULT 0"); + + // assume there are not local changes pending to upload + db.execSQL("UPDATE " + ProviderTableMeta.DB_NAME + + " SET " + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " = " + System.currentTimeMillis() + + " WHERE " + ProviderTableMeta.FILE_STORAGE_PATH + " IS NOT NULL"); + + upgraded = true; + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } } if (oldVersion < 4 && newVersion >= 4) { Log.i("SQL", "Entering in the #3 ADD in onUpgrade"); - db.execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME + + db.beginTransaction(); + try { + db .execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME + " ADD COLUMN " + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " INTEGER " + " DEFAULT 0"); - upgraded = true; + + db.execSQL("UPDATE " + ProviderTableMeta.DB_NAME + + " SET " + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " = " + ProviderTableMeta.FILE_MODIFIED + + " WHERE " + ProviderTableMeta.FILE_STORAGE_PATH + " IS NOT NULL"); + + upgraded = true; + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } } if (!upgraded) Log.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion + ", newVersion == " + newVersion);