Merge branch 'develop' into share_link__new_share
authorDavid A. Velasco <dvelasco@solidgear.es>
Tue, 4 Feb 2014 13:43:36 +0000 (14:43 +0100)
committerDavid A. Velasco <dvelasco@solidgear.es>
Tue, 4 Feb 2014 13:43:36 +0000 (14:43 +0100)
1  2 
src/com/owncloud/android/datamodel/FileDataStorageManager.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@@ -1098,37 -1099,4 +1100,30 @@@ public class FileDataStorageManager 
          }
          
      } 
-         if (shares.size() > 0) {
-             // Save share file
-             saveShares(shares);
-             ArrayList<OCFile> sharedFiles = new ArrayList<OCFile>();
-             for (OCShare share : shares) {
-                 // Get the path
-                 String path = share.getPath();
-                 if (share.isDirectory()) {
-                     path = path + FileUtils.PATH_SEPARATOR;
-                 }           
-                 // Update OCFile with data from share: ShareByLink  ¿and publicLink?
-                 OCFile file = getFileByPath(path);
-                 if (file != null) {
-                     if (share.getShareType().equals(ShareType.PUBLIC_LINK)) {
-                         file.setShareByLink(true);
-                         sharedFiles.add(file);
-                     }
-                 } 
-             }
-             
-             if (sharedFiles.size() > 0) {
-                 updateSharedFiles(sharedFiles);
-             }
 +
 +
 +    public void saveSharesDB(ArrayList<OCShare> shares) {
++        saveShares(shares);
++
++        ArrayList<OCFile> sharedFiles = new ArrayList<OCFile>();
++
++        for (OCShare share : shares) {
++            // Get the path
++            String path = share.getPath();
++            if (share.isDirectory()) {
++                path = path + FileUtils.PATH_SEPARATOR;
++            }           
++
++            // Update OCFile with data from share: ShareByLink  ¿and publicLink?
++            OCFile file = getFileByPath(path);
++            if (file != null) {
++                if (share.getShareType().equals(ShareType.PUBLIC_LINK)) {
++                    file.setShareByLink(true);
++                    sharedFiles.add(file);
++                }
++            } 
 +        }
++        
++        updateSharedFiles(sharedFiles);
 +    }
  }
@@@ -912,55 -934,59 +918,60 @@@ OCFileListFragment.ContainerActivity, F
           */
          @Override
          public void onReceive(Context context, Intent intent) {
-             boolean inProgress = intent.getBooleanExtra(FileSyncService.IN_PROGRESS, false);
-             String accountName = intent.getStringExtra(FileSyncService.ACCOUNT_NAME);
-             RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncService.SYNC_RESULT);
+             String event = intent.getAction();
+             String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
+             String synchFolderRemotePath = intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH); 
+             RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncAdapter.EXTRA_RESULT);
 -            boolean sameAccount = (getAccount() != null && accountName.equals(getAccount().name) && mStorageManager != null); 
++            boolean sameAccount = (getAccount() != null && accountName.equals(getAccount().name) && getStorageManager() != null); 
  
-             if (getAccount() != null && accountName.equals(getAccount().name)
-                     && getStorageManager() != null) {
+             if (sameAccount) {
                  
-                 String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH); 
-                 OCFile currentFile = (getFile() == null) ? null : getStorageManager().getFileByPath(getFile().getRemotePath());
-                 OCFile currentDir = (getCurrentDir() == null) ? null : getStorageManager().getFileByPath(getCurrentDir().getRemotePath());
-                 if (currentDir == null) {
-                     // current folder was removed from the server 
-                     Toast.makeText( FileDisplayActivity.this, 
-                                     String.format(getString(R.string.sync_current_folder_was_removed), mDirectories.getItem(0)), 
-                                     Toast.LENGTH_LONG)
-                         .show();
-                     browseToRoot();
+                 if (!FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
 -                    
 -                    OCFile currentFile = (getFile() == null) ? null : mStorageManager.getFileByPath(getFile().getRemotePath());
 -                    OCFile currentDir = (getCurrentDir() == null) ? null : mStorageManager.getFileByPath(getCurrentDir().getRemotePath());
++                    OCFile currentFile = (getFile() == null) ? null : getStorageManager().getFileByPath(getFile().getRemotePath());
++                    OCFile currentDir = (getCurrentDir() == null) ? null : getStorageManager().getFileByPath(getCurrentDir().getRemotePath());
+                     if (currentDir == null) {
+                         // current folder was removed from the server 
+                         Toast.makeText( FileDisplayActivity.this, 
+                                         String.format(getString(R.string.sync_current_folder_was_removed), mDirectories.getItem(0)), 
+                                         Toast.LENGTH_LONG)
+                             .show();
+                         browseToRoot();
+                         
+                     } else {
+                         if (currentFile == null && !getFile().isFolder()) {
+                             // currently selected file was removed in the server, and now we know it
+                             cleanSecondFragment();
+                             currentFile = currentDir;
+                         }
                      
-                 } else {
-                     if (currentFile == null && !getFile().isFolder()) {
-                         // currently selected file was removed in the server, and now we know it
-                         cleanSecondFragment();
-                         currentFile = currentDir;
-                     }
-                 
-                     if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
-                         OCFileListFragment fileListFragment = getListOfFilesFragment();
-                         if (fileListFragment != null) {
-                             fileListFragment.listDirectory(currentDir);
+                         if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
+                             OCFileListFragment fileListFragment = getListOfFilesFragment();
+                             if (fileListFragment != null) {
+                                 fileListFragment.listDirectory(currentDir);
+                             }
                          }
+                         setFile(currentFile);
                      }
-                     setFile(currentFile);
-                 }
-                 
-                 if (!mRefreshSharesInProgress) {
-                     /// get the shared files
-                     if (getFileOperationsHelper().isSharedSupported(FileDisplayActivity.this)) {
+                     
+                     mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && 
+                                         !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED.equals(event) &&
+                                         (synchResult == null || synchResult.isSuccess())) ;
+                     
+                     if (synchResult != null && 
+                         synchResult.isSuccess() &&
+                             (SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED.equals(event) || 
+                                 FileSyncAdapter.EVENT_FOLDER_CONTENTS_SYNCED.equals(event)
 -                            )
++                            ) &&
++                            !mRefreshSharesInProgress &&
++                            getFileOperationsHelper().isSharedSupported(FileDisplayActivity.this)
+                         ) {
                          startGetShares();
                      }
-                     setSupportProgressBarIndeterminateVisibility(inProgress);
-                 } else {
-                     setSupportProgressBarIndeterminateVisibility(true);
+                     
                  }
-                 
-                 removeStickyBroadcast(intent);
-                 mSyncInProgress = inProgress;
+                 //removeStickyBroadcast(intent);
+                 setSupportProgressBarIndeterminateVisibility(mSyncInProgress || mRefreshSharesInProgress);
              }
              
              if (synchResult != null) {
          startService(intent);
          
          mRefreshSharesInProgress = true;
-         setSupportProgressBarIndeterminateVisibility(true);
-         
      }
 -    
 +
  }