}
}
-
- 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);
+ }
}
*/
@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);
-
}
-
+
}