Change the loop mChildren update to the previous version
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / FileDisplayActivity.java
index 9fb3151..a2bbfd0 100644 (file)
@@ -51,6 +51,7 @@ import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
+import android.widget.Button;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -146,6 +147,8 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
 
     private OCFile mWaitingToPreview;
     private Handler mHandler;
+    
+    private boolean mSyncInProgress = false;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -597,21 +600,23 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
 
     @Override
     public void onBackPressed() {
-        OCFileListFragment listOfFiles = getListOfFilesFragment(); 
-        if (mDualPane || getSecondFragment() == null) {
-            if (listOfFiles != null) {  // should never be null, indeed
-                if (mDirectories.getCount() <= 1) {
-                    finish();
-                    return;
+        if (!mSyncInProgress) {
+            OCFileListFragment listOfFiles = getListOfFilesFragment(); 
+            if (mDualPane || getSecondFragment() == null) {
+                if (listOfFiles != null) {  // should never be null, indeed
+                    if (mDirectories.getCount() <= 1) {
+                        finish();
+                        return;
+                    }
+                    popDirname();
+                    listOfFiles.onBrowseUp();
                 }
-                popDirname();
-                listOfFiles.onBrowseUp();
             }
+            if (listOfFiles != null) {  // should never be null, indeed
+                setFile(listOfFiles.getCurrentFile());
+            }
+            cleanSecondFragment();
         }
-        if (listOfFiles != null) {  // should never be null, indeed
-            setFile(listOfFiles.getCurrentFile());
-        }
-        cleanSecondFragment();
     }
 
     @Override
@@ -979,8 +984,6 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         
         // Sync Folder
         startSyncFolderOperation(directory.getRemotePath(), directory.getFileId());
-//        // Update folder size on DB
-//        getStorageManager().calculateFolderSize(directory.getParentId());
         
     }
 
@@ -1056,7 +1059,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         if (chosenFile == null || mDualPane) {
             // only list of files - set for browsing through folders
             OCFile currentDir = getCurrentDir();
-            actionBar.setDisplayHomeAsUpEnabled(currentDir != null && currentDir.getParentId() != 0);
+            actionBar.setDisplayHomeAsUpEnabled(currentDir != null && currentDir.getParentId() != 0 && !mSyncInProgress);
             actionBar.setDisplayShowTitleEnabled(false);
             actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
             actionBar.setListNavigationCallbacks(mDirectories, this);   // assuming mDirectories is updated
@@ -1070,6 +1073,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);
+        }
+    }
+    
     /**
      * {@inheritDoc}
      */
@@ -1207,6 +1223,8 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         
         OCFileListFragment list = getListOfFilesFragment();
         enableDisableViewGroup(list.getListView(), true);
+        mSyncInProgress = false;
+        updateDisplayHomeAtSync();
         
         setSupportProgressBarIndeterminateVisibility(false);
         if (result.isSuccess()) {
@@ -1431,11 +1449,14 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         
         OCFileListFragment list = getListOfFilesFragment();
         enableDisableViewGroup(list.getListView(), false);
+        mSyncInProgress = true;
+        updateDisplayHomeAtSync();
         
        // perform folder synchronization
         RemoteOperation synchFolderOp = new SynchronizeFolderOperation(  remotePath, 
                                                                                     currentSyncTime, 
                                                                                     parentId, 
+                                                                                    false,
                                                                                     getStorageManager(), 
                                                                                     getAccount(), 
                                                                                     getApplicationContext()