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());
}
}\r
if (oldVersion < 3 && newVersion >= 3) {\r
Log.i("SQL", "Entering in the #2 ADD in onUpgrade");\r
- db.execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME +\r
- " ADD COLUMN " + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " INTEGER " +\r
- " DEFAULT 0");\r
- upgraded = true;\r
+ db.beginTransaction();\r
+ try {\r
+ db.execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME +\r
+ " ADD COLUMN " + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " INTEGER " +\r
+ " DEFAULT 0");\r
+ \r
+ // assume there are not local changes pending to upload\r
+ db.execSQL("UPDATE " + ProviderTableMeta.DB_NAME + \r
+ " SET " + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " = " + System.currentTimeMillis() + \r
+ " WHERE " + ProviderTableMeta.FILE_STORAGE_PATH + " IS NOT NULL");\r
+ \r
+ upgraded = true;\r
+ db.setTransactionSuccessful();\r
+ } finally {\r
+ db.endTransaction();\r
+ }\r
}\r
if (oldVersion < 4 && newVersion >= 4) {\r
Log.i("SQL", "Entering in the #3 ADD in onUpgrade");\r
- db.execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME +\r
+ db.beginTransaction();\r
+ try {\r
+ db .execSQL("ALTER TABLE " + ProviderTableMeta.DB_NAME +\r
" ADD COLUMN " + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " INTEGER " +\r
" DEFAULT 0");\r
- upgraded = true;\r
+ \r
+ db.execSQL("UPDATE " + ProviderTableMeta.DB_NAME + \r
+ " SET " + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " = " + ProviderTableMeta.FILE_MODIFIED + \r
+ " WHERE " + ProviderTableMeta.FILE_STORAGE_PATH + " IS NOT NULL");\r
+ \r
+ upgraded = true;\r
+ db.setTransactionSuccessful();\r
+ } finally {\r
+ db.endTransaction();\r
+ }\r
}\r
if (!upgraded)\r
Log.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion + ", newVersion == " + newVersion);\r