OC-1508: App crashes when changing the orientation
authormasensio <masensio@solidgear.es>
Tue, 1 Oct 2013 10:56:28 +0000 (12:56 +0200)
committermasensio <masensio@solidgear.es>
Tue, 1 Oct 2013 10:56:28 +0000 (12:56 +0200)
src/com/owncloud/android/datamodel/OCFile.java
src/com/owncloud/android/operations/RemoteOperation.java
src/com/owncloud/android/operations/SynchronizeFolderOperation.java
src/com/owncloud/android/syncadapter/FileSyncAdapter.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/fragment/FileDetailFragment.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

index 4e05fa3..87a38a6 100644 (file)
@@ -443,7 +443,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
 
     @Override
     public String toString() {
 
     @Override
     public String toString() {
-        String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, keepInSinc=%s etag=%]";
+        String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, keepInSinc=%s etag=%s]";
         asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mKeepInSync), mEtag);
         return asString;
     }
         asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mKeepInSync), mEtag);
         return asString;
     }
index 4d7bcee..e05dadf 100644 (file)
@@ -136,14 +136,8 @@ public abstract class RemoteOperation implements Runnable {
         mCallerActivity = callerActivity;
         mClient = null;     // the client instance will be created from mAccount and mContext in the runnerThread to create below
         
         mCallerActivity = callerActivity;
         mClient = null;     // the client instance will be created from mAccount and mContext in the runnerThread to create below
         
-        if (listener == null) {
-            throw new IllegalArgumentException("Trying to execute a remote operation asynchronously without a listener to notiy the result");
-        }
         mListener = listener;
         
         mListener = listener;
         
-        if (listenerHandler == null) {
-            throw new IllegalArgumentException("Trying to execute a remote operation asynchronously without a handler to the listener's thread");
-        }
         mListenerHandler = listenerHandler;
         
         Thread runnerThread = new Thread(this);
         mListenerHandler = listenerHandler;
         
         Thread runnerThread = new Thread(this);
index 3721258..b15119a 100644 (file)
@@ -35,10 +35,13 @@ import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
 
 import android.accounts.Account;
 import android.content.Context;
 
 import android.accounts.Account;
 import android.content.Context;
+import android.content.Intent;
+
 import com.owncloud.android.Log_OC;
 import com.owncloud.android.datamodel.DataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.Log_OC;
 import com.owncloud.android.datamodel.DataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.syncadapter.FileSyncService;
 import com.owncloud.android.utils.FileStorageUtils;
 
 import eu.alefzero.webdav.WebdavClient;
 import com.owncloud.android.utils.FileStorageUtils;
 
 import eu.alefzero.webdav.WebdavClient;
@@ -85,11 +88,14 @@ public class SynchronizeFolderOperation extends RemoteOperation {
 
     private Map<String, String> mForgottenLocalFiles;
     
 
     private Map<String, String> mForgottenLocalFiles;
     
+    private boolean mSyncFullAccount;
+    
     
     public SynchronizeFolderOperation(  String remotePath, 
                                         long currentSyncTime, 
                                         long parentId,
                                         boolean enforceMetadataUpdate,
     
     public SynchronizeFolderOperation(  String remotePath, 
                                         long currentSyncTime, 
                                         long parentId,
                                         boolean enforceMetadataUpdate,
+                                        boolean syncFullAccount,
                                         DataStorageManager dataStorageManager, 
                                         Account account, 
                                         Context context ) {
                                         DataStorageManager dataStorageManager, 
                                         Account account, 
                                         Context context ) {
@@ -97,6 +103,7 @@ public class SynchronizeFolderOperation extends RemoteOperation {
         mCurrentSyncTime = currentSyncTime;
         mParentId = parentId;
         mEnforceMetadataUpdate = enforceMetadataUpdate;
         mCurrentSyncTime = currentSyncTime;
         mParentId = parentId;
         mEnforceMetadataUpdate = enforceMetadataUpdate;
+        mSyncFullAccount = syncFullAccount;
         mStorageManager = dataStorageManager;
         mAccount = account;
         mContext = context;
         mStorageManager = dataStorageManager;
         mAccount = account;
         mContext = context;
@@ -139,7 +146,6 @@ public class SynchronizeFolderOperation extends RemoteOperation {
         mFailsInFavouritesFound = 0;
         mConflictsFound = 0;
         mForgottenLocalFiles.clear();
         mFailsInFavouritesFound = 0;
         mConflictsFound = 0;
         mForgottenLocalFiles.clear();
-        boolean fileChanged = false;
         boolean dirChanged = false;
 
         // code before in FileSyncAdapter.fetchData
         boolean dirChanged = false;
 
         // code before in FileSyncAdapter.fetchData
@@ -189,52 +195,46 @@ public class SynchronizeFolderOperation extends RemoteOperation {
                         OCFile oldFile = mStorageManager.getFileByPath(file.getRemotePath());
 
                         // Check if it is needed to synchronize the folder
                         OCFile oldFile = mStorageManager.getFileByPath(file.getRemotePath());
 
                         // Check if it is needed to synchronize the folder
-                        fileChanged = false;
                         if (oldFile != null) {
                         if (oldFile != null) {
-                            if (!file.getEtag().equalsIgnoreCase(oldFile.getEtag())) {
-                                fileChanged = true;                             
+                            if (!file.getEtag().equalsIgnoreCase(oldFile.getEtag())) {                            
                             }                        
                             }                        
-                        } else 
-                            fileChanged= true;
-
-
-                        if (fileChanged){                    
-                            if (oldFile != null) { 
-                                file.setKeepInSync(oldFile.keepInSync());
-                                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());
-                                if (file.isDirectory())
-                                    file.setEtag(oldFile.getEtag());
-                            } else
-                                if (file.isDirectory())
-                                    file.setEtag("");
-
-                            /// scan default location if local copy of file is not linked in OCFile instance
-                            if (file.getStoragePath() == null && !file.isDirectory()) {
-                                File f = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, file));
-                                if (f.exists()) {
-                                    file.setStoragePath(f.getAbsolutePath());
-                                    file.setLastSyncDateForData(f.lastModified());
-                                }
-                            }
-
-                            /// prepare content synchronization for kept-in-sync files
-                            if (file.keepInSync()) {
-                                SynchronizeFileOperation operation = new SynchronizeFileOperation(  oldFile,        
-                                        file, 
-                                        mStorageManager,
-                                        mAccount,       
-                                        true, 
-                                        false,          
-                                        mContext
-                                        );
-                                filesToSyncContents.add(operation);
+                        } 
+
+                        if (oldFile != null) { 
+                            file.setKeepInSync(oldFile.keepInSync());
+                            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());
+                            if (file.isDirectory())
+                                file.setEtag(oldFile.getEtag());
+                        } else
+                            if (file.isDirectory())
+                                file.setEtag("");
+
+                        /// scan default location if local copy of file is not linked in OCFile instance
+                        if (file.getStoragePath() == null && !file.isDirectory()) {
+                            File f = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, file));
+                            if (f.exists()) {
+                                file.setStoragePath(f.getAbsolutePath());
+                                file.setLastSyncDateForData(f.lastModified());
                             }
                             }
+                        }
 
 
-                            updatedFiles.add(file);
+                        /// prepare content synchronization for kept-in-sync files
+                        if (file.keepInSync()) {
+                            SynchronizeFileOperation operation = new SynchronizeFileOperation(  oldFile,        
+                                    file, 
+                                    mStorageManager,
+                                    mAccount,       
+                                    true, 
+                                    false,          
+                                    mContext
+                                    );
+                            filesToSyncContents.add(operation);
                         }
                         }
+
+                        updatedFiles.add(file);
                     }
 
                     // save updated contents in local database; all at once, trying to get a best performance in database update (not a big deal, indeed)
                     }
 
                     // save updated contents in local database; all at once, trying to get a best performance in database update (not a big deal, indeed)
@@ -311,6 +311,10 @@ public class SynchronizeFolderOperation extends RemoteOperation {
                     Log_OC.e(TAG, "Synchronizing " + mAccount.name + ", folder " + mRemotePath + ": " + result.getLogMessage());
                 }
             }
                     Log_OC.e(TAG, "Synchronizing " + mAccount.name + ", folder " + mRemotePath + ": " + result.getLogMessage());
                 }
             }
+            
+            if (!mSyncFullAccount) {            
+                sendStickyBroadcast(false, mRemotePath, result);
+            }
         }
 
         return result;
         }
 
         return result;
@@ -403,5 +407,23 @@ public class SynchronizeFolderOperation extends RemoteOperation {
         }
     }
 
         }
     }
 
+    /**
+     * Sends a message to any application component interested in the progress of the synchronization.
+     * 
+     * @param inProgress        'True' when the synchronization progress is not finished.
+     * @param dirRemotePath     Remote path of a folder that was just synchronized (with or without success)
+     */
+    private void sendStickyBroadcast(boolean inProgress, String dirRemotePath, RemoteOperationResult result) {
+        Intent i = new Intent(FileSyncService.SYNC_MESSAGE);
+        i.putExtra(FileSyncService.IN_PROGRESS, inProgress);
+        i.putExtra(FileSyncService.ACCOUNT_NAME, mAccount.name);
+        if (dirRemotePath != null) {
+            i.putExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH, dirRemotePath);
+        }
+        if (result != null) {
+            i.putExtra(FileSyncService.SYNC_RESULT, result);
+        }
+        mContext.sendStickyBroadcast(i);
+    }
 
 }
 
 }
index cb79363..8e7ac4c 100644 (file)
@@ -38,7 +38,6 @@ import com.owncloud.android.operations.SynchronizeFolderOperation;
 import com.owncloud.android.operations.UpdateOCVersionOperation;
 import com.owncloud.android.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.ui.activity.ErrorsWhileCopyingHandlerActivity;
 import com.owncloud.android.operations.UpdateOCVersionOperation;
 import com.owncloud.android.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.ui.activity.ErrorsWhileCopyingHandlerActivity;
-import com.owncloud.android.utils.FileStorageUtils;
 
 import android.accounts.Account;
 import android.accounts.AccountsException;
 
 import android.accounts.Account;
 import android.accounts.AccountsException;
@@ -201,6 +200,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
                                                                                     mCurrentSyncTime, 
                                                                                     parentId, 
                                                                                     enforceMetadataUpdate,
                                                                                     mCurrentSyncTime, 
                                                                                     parentId, 
                                                                                     enforceMetadataUpdate,
+                                                                                    true,
                                                                                     getStorageManager(), 
                                                                                     getAccount(), 
                                                                                     getContext()
                                                                                     getStorageManager(), 
                                                                                     getAccount(), 
                                                                                     getContext()
index a2bbfd0..5eba7dc 100644 (file)
 package com.owncloud.android.ui.activity;
 
 import java.io.File;
 package com.owncloud.android.ui.activity;
 
 import java.io.File;
-import java.io.IOException;
 
 import android.accounts.Account;
 
 import android.accounts.Account;
-import android.accounts.AuthenticatorException;
-import android.accounts.OperationCanceledException;
 import android.app.AlertDialog;
 import android.app.AlertDialog;
-import android.app.ProgressDialog;
 import android.app.Dialog;
 import android.app.Dialog;
+import android.app.ProgressDialog;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -51,7 +48,6 @@ import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
-import android.widget.Button;
 import android.widget.TextView;
 import android.widget.Toast;
 
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -64,8 +60,6 @@ import com.actionbarsherlock.view.Window;
 import com.owncloud.android.Log_OC;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountAuthenticator;
 import com.owncloud.android.Log_OC;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountAuthenticator;
-import com.owncloud.android.authentication.AccountUtils;
-import com.owncloud.android.authentication.AccountUtils.AccountNotFoundException;
 import com.owncloud.android.datamodel.DataStorageManager;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.DataStorageManager;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
@@ -74,21 +68,20 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileObserverService;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.files.services.FileObserverService;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
-import com.owncloud.android.network.OwnCloudClientUtils;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.OnRemoteOperationListener;
 import com.owncloud.android.operations.RemoteOperation;
 import com.owncloud.android.operations.RemoteOperationResult;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.OnRemoteOperationListener;
 import com.owncloud.android.operations.RemoteOperation;
 import com.owncloud.android.operations.RemoteOperationResult;
+import com.owncloud.android.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
-import com.owncloud.android.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.syncadapter.FileSyncService;
 import com.owncloud.android.ui.dialog.EditNameDialog;
 import com.owncloud.android.syncadapter.FileSyncService;
 import com.owncloud.android.ui.dialog.EditNameDialog;
+import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener;
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.ui.dialog.SslValidatorDialog;
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.ui.dialog.SslValidatorDialog;
-import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener;
 import com.owncloud.android.ui.dialog.SslValidatorDialog.OnSslValidatorListener;
 import com.owncloud.android.ui.fragment.FileDetailFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.ui.dialog.SslValidatorDialog.OnSslValidatorListener;
 import com.owncloud.android.ui.fragment.FileDetailFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
@@ -97,8 +90,6 @@ import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
 
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
 
-import eu.alefzero.webdav.WebdavClient;
-
 /**
  * Displays, what files the user has available in his ownCloud.
  * 
 /**
  * Displays, what files the user has available in his ownCloud.
  * 
@@ -127,6 +118,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
     private View mRightFragmentContainer;
 
     private static final String KEY_WAITING_TO_PREVIEW = "WAITING_TO_PREVIEW";
     private View mRightFragmentContainer;
 
     private static final String KEY_WAITING_TO_PREVIEW = "WAITING_TO_PREVIEW";
+    private static final String KEY_SYNC_IN_PROGRESS = "SYNC_IN_PROGRESS";
 
     public static final int DIALOG_SHORT_WAIT = 0;
     private static final int DIALOG_CHOOSE_UPLOAD_SOURCE = 1;
 
     public static final int DIALOG_SHORT_WAIT = 0;
     private static final int DIALOG_CHOOSE_UPLOAD_SOURCE = 1;
@@ -178,10 +170,12 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         /// Load of saved instance state
         if(savedInstanceState != null) {
             mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW);
         /// Load of saved instance state
         if(savedInstanceState != null) {
             mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW);
-
+            mSyncInProgress = savedInstanceState.getBoolean(KEY_SYNC_IN_PROGRESS);
+           
         } else {
             mWaitingToPreview = null;
         } else {
             mWaitingToPreview = null;
-        }
+            mSyncInProgress = false;
+        }        
 
         /// USER INTERFACE
 
 
         /// USER INTERFACE
 
@@ -197,7 +191,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         // Action bar setup
         mDirectories = new CustomArrayAdapter<String>(this, R.layout.sherlock_spinner_dropdown_item);
         getSupportActionBar().setHomeButtonEnabled(true);       // mandatory since Android ICS, according to the official documentation
         // Action bar setup
         mDirectories = new CustomArrayAdapter<String>(this, R.layout.sherlock_spinner_dropdown_item);
         getSupportActionBar().setHomeButtonEnabled(true);       // mandatory since Android ICS, according to the official documentation
-        setSupportProgressBarIndeterminateVisibility(false);    // always AFTER setContentView(...) ; to work around bug in its implementation
+        setSupportProgressBarIndeterminateVisibility(mSyncInProgress);    // always AFTER setContentView(...) ; to work around bug in its implementation        
         
         Log_OC.d(TAG, "onCreate() end");
     }
         
         Log_OC.d(TAG, "onCreate() end");
     }
@@ -625,6 +619,8 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         Log_OC.e(TAG, "onSaveInstanceState() start");
         super.onSaveInstanceState(outState);
         outState.putParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW, mWaitingToPreview);
         Log_OC.e(TAG, "onSaveInstanceState() start");
         super.onSaveInstanceState(outState);
         outState.putParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW, mWaitingToPreview);
+        outState.putBoolean(FileDisplayActivity.KEY_SYNC_IN_PROGRESS, mSyncInProgress);
+
         Log_OC.d(TAG, "onSaveInstanceState() end");
     }
     
         Log_OC.d(TAG, "onSaveInstanceState() end");
     }
     
@@ -656,6 +652,19 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
 
 
     @Override
 
 
     @Override
+    protected void onStart() {
+        super.onStart();
+        Log_OC.e(TAG, "onStart() start");
+        
+        // Update the sync operation
+        if (mSyncInProgress){
+        }
+        
+        Log_OC.e(TAG, "onStart() end");
+    }
+
+
+    @Override
     protected void onPause() {
         super.onPause();
         Log_OC.e(TAG, "onPause() start");
     protected void onPause() {
         super.onPause();
         Log_OC.e(TAG, "onPause() start");
@@ -869,7 +878,9 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
             String accountName = intent.getStringExtra(FileSyncService.ACCOUNT_NAME);
 
             Log_OC.d(TAG, "sync of account " + accountName + " is in_progress: " + inProgress);
             String accountName = intent.getStringExtra(FileSyncService.ACCOUNT_NAME);
 
             Log_OC.d(TAG, "sync of account " + accountName + " is in_progress: " + inProgress);
-
+            
+            RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncService.SYNC_RESULT);
+            
             if (getAccount() != null && accountName.equals(getAccount().name)) {  
 
                 String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH); 
             if (getAccount() != null && accountName.equals(getAccount().name)) {  
 
                 String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH); 
@@ -888,6 +899,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
                     OCFileListFragment fileListFragment = getListOfFilesFragment();
                     if (fileListFragment != null) {
                         fileListFragment.listDirectory(currentDir);
                     OCFileListFragment fileListFragment = getListOfFilesFragment();
                     if (fileListFragment != null) {
                         fileListFragment.listDirectory(currentDir);
+                        
                     }
                     if (getSecondFragment() == null)
                         setFile(currentDir);
                     }
                     if (getSecondFragment() == null)
                         setFile(currentDir);
@@ -895,10 +907,12 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
                 
                 setSupportProgressBarIndeterminateVisibility(inProgress);
                 removeStickyBroadcast(intent);
                 
                 setSupportProgressBarIndeterminateVisibility(inProgress);
                 removeStickyBroadcast(intent);
+                
+                mSyncInProgress = inProgress;
 
             }
 
 
             }
 
-            RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncService.SYNC_RESULT);
+            
             if (synchResult != null) {
                 if (synchResult.getCode().equals(RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED)) {
                     mLastSslUntrustedServerResult = synchResult;
             if (synchResult != null) {
                 if (synchResult.getCode().equals(RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED)) {
                     mLastSslUntrustedServerResult = synchResult;
@@ -907,7 +921,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
             }
         }
     }
             }
         }
     }
-
+    
 
     private class UploadFinishReceiver extends BroadcastReceiver {
         /**
 
     private class UploadFinishReceiver extends BroadcastReceiver {
         /**
@@ -1073,19 +1087,19 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
     }
 
 
     }
 
 
-    private void updateDisplayHomeAtSync(){
-        ActionBar actionBar = getSupportActionBar();
-        OCFile currentDir = getCurrentDir();
-        if (currentDir.getParentId() != DataStorageManager.ROOT_PARENT_ID) {
-            actionBar.setHomeButtonEnabled(!mSyncInProgress);
-            actionBar.setDisplayHomeAsUpEnabled(!mSyncInProgress);
-        }
-        else {
-            actionBar.setHomeButtonEnabled(true);
-            actionBar.setDisplayHomeAsUpEnabled(false);
-        }
-    }
-    
+//    private void updateDisplayHomeAtSync(){
+//        ActionBar actionBar = getSupportActionBar();
+//        OCFile currentDir = getCurrentDir();
+//        if (currentDir.getParentId() != DataStorageManager.ROOT_PARENT_ID) {
+//            actionBar.setHomeButtonEnabled(!mSyncInProgress);
+//            actionBar.setDisplayHomeAsUpEnabled(!mSyncInProgress);
+//        }
+//        else {
+//            actionBar.setHomeButtonEnabled(true);
+//            actionBar.setDisplayHomeAsUpEnabled(false);
+//        }
+//    }
+//    
     /**
      * {@inheritDoc}
      */
     /**
      * {@inheritDoc}
      */
@@ -1207,54 +1221,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         } else if (operation instanceof CreateFolderOperation) {
             onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
             
         } else if (operation instanceof CreateFolderOperation) {
             onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
             
-        } else if (operation instanceof SynchronizeFolderOperation) {
-            onSynchronizeFolderOperationFinish((SynchronizeFolderOperation)operation, result);
-        }
-    }
-
-
-    /**
-     * Updates the view associated to the activity after the finish of an operation trying to synchronize a folder. 
-     * 
-     * @param operation     Synchronize operation performed.
-     * @param result        Result of the synchronization.
-     */
-    private void onSynchronizeFolderOperationFinish(SynchronizeFolderOperation operation, RemoteOperationResult result) {
-        
-        OCFileListFragment list = getListOfFilesFragment();
-        enableDisableViewGroup(list.getListView(), true);
-        mSyncInProgress = false;
-        updateDisplayHomeAtSync();
-        
-        setSupportProgressBarIndeterminateVisibility(false);
-        if (result.isSuccess()) {
-            if (result.getCode() != ResultCode.OK_NO_CHANGES_ON_DIR) {
-                DataStorageManager storageManager = getStorageManager();
-                OCFile parentDir = storageManager.getFileByPath(operation.getRemotePath());
-
-                // Update folder size on DB
-                getStorageManager().calculateFolderSize(parentDir.getFileId());
-
-                // Refrest List
-                refreshListOfFilesFragment(parentDir);
-            }
-        } else {
-            try {
-                Toast msg = Toast.makeText(FileDisplayActivity.this, R.string.sync_file_fail_msg, Toast.LENGTH_LONG); 
-                msg.show();
-
-            } catch (NotFoundException e) {
-                Log_OC.e(TAG, "Error while trying to show fail message " , e);
-            }
-        }
-    }
-
-
-    private void refreshListOfFilesFragment(OCFile parentDir) {
-        OCFileListFragment fileListFragment = getListOfFilesFragment();
-        if (fileListFragment != null) { 
-            fileListFragment.listDirectory(parentDir);
-        }
+        } 
     }
 
 
     }
 
 
@@ -1302,7 +1269,6 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
             refeshListOfFilesFragment();
 
         } else {
             refeshListOfFilesFragment();
 
         } else {
-            //dismissDialog(DIALOG_SHORT_WAIT);
             dismissLoadingDialog();
             try {
                 Toast msg = Toast.makeText(FileDisplayActivity.this, R.string.create_dir_fail_msg, Toast.LENGTH_LONG); 
             dismissLoadingDialog();
             try {
                 Toast msg = Toast.makeText(FileDisplayActivity.this, R.string.create_dir_fail_msg, Toast.LENGTH_LONG); 
@@ -1363,10 +1329,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
                 i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, getAccount());
                 startActivity(i);
 
                 i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, getAccount());
                 startActivity(i);
 
-            } else {
-                Toast msg = Toast.makeText(this, R.string.sync_file_fail_msg, Toast.LENGTH_LONG); 
-                msg.show();
-            }
+            } 
 
         } else {
             if (operation.transferWasRequested()) {
 
         } else {
             if (operation.transferWasRequested()) {
@@ -1447,35 +1410,33 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
     public void startSyncFolderOperation(String remotePath, long parentId) {
         long currentSyncTime = System.currentTimeMillis(); 
         
     public void startSyncFolderOperation(String remotePath, long parentId) {
         long currentSyncTime = System.currentTimeMillis(); 
         
-        OCFileListFragment list = getListOfFilesFragment();
-        enableDisableViewGroup(list.getListView(), false);
         mSyncInProgress = true;
         mSyncInProgress = true;
-        updateDisplayHomeAtSync();
-        
-       // perform folder synchronization
+                
+        // perform folder synchronization
         RemoteOperation synchFolderOp = new SynchronizeFolderOperation(  remotePath, 
                                                                                     currentSyncTime, 
                                                                                     parentId, 
                                                                                     false,
         RemoteOperation synchFolderOp = new SynchronizeFolderOperation(  remotePath, 
                                                                                     currentSyncTime, 
                                                                                     parentId, 
                                                                                     false,
+                                                                                    false,
                                                                                     getStorageManager(), 
                                                                                     getAccount(), 
                                                                                     getApplicationContext()
                                                                                   );
                                                                                     getStorageManager(), 
                                                                                     getAccount(), 
                                                                                     getApplicationContext()
                                                                                   );
-        synchFolderOp.execute(getAccount(), this, this, mHandler, this);
+        synchFolderOp.execute(getAccount(), this, null, null, this);
         
         setSupportProgressBarIndeterminateVisibility(true);
     }
 
     
         
         setSupportProgressBarIndeterminateVisibility(true);
     }
 
     
-    public void enableDisableViewGroup(ViewGroup viewGroup, boolean enabled) {
-        int childCount = viewGroup.getChildCount();
-        for (int i = 0; i < childCount; i++) {
-          View view = viewGroup.getChildAt(i);
-          view.setEnabled(enabled);
-          view.setClickable(!enabled);
-          if (view instanceof ViewGroup) {
-            enableDisableViewGroup((ViewGroup) view, enabled);
-          }
-        }
-      }
+//    public void enableDisableViewGroup(ViewGroup viewGroup, boolean enabled) {
+//        int childCount = viewGroup.getChildCount();
+//        for (int i = 0; i < childCount; i++) {
+//          View view = viewGroup.getChildAt(i);
+//          view.setEnabled(enabled);
+//          view.setClickable(!enabled);
+//          if (view instanceof ViewGroup) {
+//            enableDisableViewGroup((ViewGroup) view, enabled);
+//          }
+//        }
+//      }
 }
 }
index 5380a88..b5f1186 100644 (file)
@@ -829,10 +829,7 @@ public class FileDetailFragment extends FileFragment implements
                 i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, mAccount);
                 startActivity(i);
                 
                 i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, mAccount);
                 startActivity(i);
                 
-            } else {
-                Toast msg = Toast.makeText(getActivity(), R.string.sync_file_fail_msg, Toast.LENGTH_LONG); 
-                msg.show();
-            }
+            } 
             
             if (file.isDown()) {
                 setButtonsForDown();
             
             if (file.isDown()) {
                 setButtonsForDown();
index 26e698a..9db0500 100644 (file)
@@ -31,7 +31,6 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.operations.OnRemoteOperationListener;
 import com.owncloud.android.operations.RemoteOperation;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.operations.OnRemoteOperationListener;
 import com.owncloud.android.operations.RemoteOperation;
-import com.owncloud.android.operations.RemoteOperationResult;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
@@ -134,10 +133,7 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
             }
             else {
                 parentDir = storageManager.getFileById(mFile.getParentId());
             }
             else {
                 parentDir = storageManager.getFileById(mFile.getParentId());
-            }
-            
-//            // Update folder size on DB
-//            storageManager.calculateFolderSize(mFile.getFileId());
+            }            
             
             mFile = parentDir;           
         }
             
             mFile = parentDir;           
         }