Эх сурвалжийг харах

Add boolean parameter 'ignoreTag' to SyncronizeFolderOperation constructor and pass ignoreTag = true in calls to #startSyncFolderOperation at FileDisplayActivity and MoveActivity in #onRefresh()

jabarros 10 жил өмнө
parent
commit
e549254059

+ 12 - 5
src/com/owncloud/android/operations/SynchronizeFolderOperation.java

@@ -109,6 +109,9 @@ public class SynchronizeFolderOperation extends RemoteOperation {
     /** 'True' means that the remote folder changed from last synchronization and should be fetched */
     private boolean mRemoteFolderChanged;
 
+    /** 'True' means that Etag will be ignored */
+    private boolean mIgnoreTag;
+
     
     /**
      * Creates a new instance of {@link SynchronizeFolderOperation}.
@@ -126,6 +129,7 @@ public class SynchronizeFolderOperation extends RemoteOperation {
                                         long currentSyncTime, 
                                         boolean syncFullAccount,
                                         boolean isShareSupported,
+                                        boolean ignoreTag,
                                         FileDataStorageManager dataStorageManager, 
                                         Account account, 
                                         Context context ) {
@@ -138,6 +142,7 @@ public class SynchronizeFolderOperation extends RemoteOperation {
         mContext = context;
         mForgottenLocalFiles = new HashMap<String, String>();
         mRemoteFolderChanged = false;
+        mIgnoreTag = ignoreTag;
     }
     
     
@@ -215,7 +220,7 @@ public class SynchronizeFolderOperation extends RemoteOperation {
 
     
     private RemoteOperationResult checkForChanges(OwnCloudClient client) {
-        mRemoteFolderChanged = false;
+        mRemoteFolderChanged = true;
         RemoteOperationResult result = null;
         String remotePath = null;
 
@@ -227,10 +232,12 @@ public class SynchronizeFolderOperation extends RemoteOperation {
         result = operation.execute(client);
         if (result.isSuccess()){
             OCFile remoteFolder = FileStorageUtils.fillOCFile((RemoteFile) result.getData().get(0));
-            
-            // check if remote and local folder are different
-            mRemoteFolderChanged = !(remoteFolder.getEtag().equalsIgnoreCase(mLocalFolder.getEtag()));
-          
+
+            if (!mIgnoreTag) {
+                // check if remote and local folder are different
+                mRemoteFolderChanged = !(remoteFolder.getEtag().equalsIgnoreCase(mLocalFolder.getEtag()));
+            }
+
             result = new RemoteOperationResult(ResultCode.OK);
         
             Log_OC.i(TAG, "Checked " + mAccount.name + remotePath + " : " + (mRemoteFolderChanged ? "changed" : "not changed"));

+ 1 - 0
src/com/owncloud/android/syncadapter/FileSyncAdapter.java

@@ -264,6 +264,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
                                                                                     mCurrentSyncTime, 
                                                                                     true,
                                                                                     mIsShareSupported,
+                                                                                    true,
                                                                                     getStorageManager(), 
                                                                                     getAccount(), 
                                                                                     getContext()

+ 8 - 7
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -251,7 +251,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
                 Log_OC.e(TAG, "Initializing Fragments in onAccountChanged..");
                 initFragmentsWithFile();
                 if (file.isFolder()) {
-                    startSyncFolderOperation(file);
+                    startSyncFolderOperation(file, false);
                 }
                 
             } else {
@@ -1153,7 +1153,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
             OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
             listOfFiles.listDirectory(root);
             setFile(listOfFiles.getCurrentFile());
-            startSyncFolderOperation(root);
+            startSyncFolderOperation(root, false);
         }
         cleanSecondFragment();
     }
@@ -1168,7 +1168,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
             setNavigationListWithFolder(folder);
             listOfFiles.listDirectory(folder);
             setFile(listOfFiles.getCurrentFile());
-            startSyncFolderOperation(folder);
+            startSyncFolderOperation(folder, false);
         } else {
             Log_OC.e(TAG, "Unexpected null when accessing list fragment");
         }
@@ -1187,7 +1187,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
         cleanSecondFragment();
         
         // Sync Folder
-        startSyncFolderOperation(directory);
+        startSyncFolderOperation(directory, false);
         
     }
 
@@ -1304,7 +1304,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
 
     @Override
     public void onSavedCertificate() {
-        startSyncFolderOperation(getCurrentDir());                
+        startSyncFolderOperation(getCurrentDir(), false);
     }
 
 
@@ -1592,7 +1592,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
         return null;
     }
     
-    public void startSyncFolderOperation(OCFile folder) {
+    public void startSyncFolderOperation(OCFile folder, boolean ignoreTag) {
         long currentSyncTime = System.currentTimeMillis(); 
         
         mSyncInProgress = true;
@@ -1602,6 +1602,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
                                                                         currentSyncTime, 
                                                                         false,
                                                                         getFileOperationsHelper().isSharedSupported(),
+                                                                        ignoreTag,
                                                                         getStorageManager(), 
                                                                         getAccount(), 
                                                                         getApplicationContext()
@@ -1721,7 +1722,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
             if (folder != null) {
                 /*mFile = mContainerActivity.getStorageManager().getFileById(mFile.getFileId());
                 listDirectory(mFile);*/
-                startSyncFolderOperation(folder);
+                startSyncFolderOperation(folder, true);
             }
         }
     }

+ 6 - 5
src/com/owncloud/android/ui/activity/MoveActivity.java

@@ -145,7 +145,7 @@ public class MoveActivity extends HookActivity implements FileFragment.Container
                 OCFileListFragment listOfFolders = getListOfFilesFragment(); 
                 listOfFolders.listDirectory(folder);   
                 
-                startSyncFolderOperation(folder);
+                startSyncFolderOperation(folder, false);
             }
             
             updateNavigationElementsInActionBar();
@@ -201,12 +201,12 @@ public class MoveActivity extends HookActivity implements FileFragment.Container
         setFile(directory);
         updateNavigationElementsInActionBar();
         // Sync Folder
-        startSyncFolderOperation(directory);
+        startSyncFolderOperation(directory, false);
         
     }
 
     
-    public void startSyncFolderOperation(OCFile folder) {
+    public void startSyncFolderOperation(OCFile folder, boolean ignoreTag) {
         long currentSyncTime = System.currentTimeMillis(); 
         
         mSyncInProgress = true;
@@ -216,6 +216,7 @@ public class MoveActivity extends HookActivity implements FileFragment.Container
                                                                         currentSyncTime, 
                                                                         false,
                                                                         getFileOperationsHelper().isSharedSupported(),
+                                                                        ignoreTag,
                                                                         getStorageManager(), 
                                                                         getAccount(), 
                                                                         getApplicationContext()
@@ -323,7 +324,7 @@ public class MoveActivity extends HookActivity implements FileFragment.Container
             listOfFiles.listDirectory(root);
             setFile(listOfFiles.getCurrentFile());
             updateNavigationElementsInActionBar();
-            startSyncFolderOperation(root);
+            startSyncFolderOperation(root, false);
         }
     }
 
@@ -560,7 +561,7 @@ public class MoveActivity extends HookActivity implements FileFragment.Container
         if (listOfFiles != null) {
             OCFile folder = listOfFiles.getCurrentFile();
             if (folder != null) {
-                startSyncFolderOperation(folder);
+                startSyncFolderOperation(folder, true);
             }
         }
     }