Browse Source

Avoid the necessity to synchronize the account after the upgrade to 1.3.16

David A. Velasco 12 years ago
parent
commit
e83a73cb9d

+ 2 - 12
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());
                     }

+ 29 - 6
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);