String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH);
+ /*
boolean fillBlankRoot = false;
- OCFile currentDir = getCurrentDir();
if (currentDir == null) {
currentDir = mStorageManager.getFileByPath(OCFile.PATH_SEPARATOR);
fillBlankRoot = (currentDir != null);
}
+ */
+
+ OCFile currentDir = getCurrentDir();
+ if (synchFolderRemotePath != null) {
+
+ OCFile synchDir = getStorageManager().getFileByPath(synchFolderRemotePath);
+ boolean needToRefresh = false;
+ if (synchDir == null) {
+ Log_OC.e(TAG, "SEARCHING NEW CURRENT");
+ // after synchronizing the current folder does not exist (was deleted in the server) ; need to move to other
+ String synchPath = synchFolderRemotePath;
+ do {
+ String synchParentPath = new File(synchPath).getParent();
+ synchParentPath = synchParentPath.endsWith(OCFile.PATH_SEPARATOR) ? synchParentPath : synchParentPath + OCFile.PATH_SEPARATOR;
+ synchDir = getStorageManager().getFileByPath(synchParentPath);
+ popDirname();
+ synchPath = synchParentPath;
+ } while (synchDir == null); // sooner of later will get ROOT, that never is null
+ currentDir = synchDir;
+
+ Toast.makeText(FileDisplayActivity.this,
+ String.format(getString(R.string.sync_current_folder_was_removed), synchPath),
+ Toast.LENGTH_LONG).show();
+ needToRefresh = true;
+ }
+
+ if (currentDir.getRemotePath().equals(synchFolderRemotePath)) {
+ needToRefresh = true;
+ }
- if ((synchFolderRemotePath != null && currentDir != null && (currentDir.getRemotePath().equals(synchFolderRemotePath)))
- || fillBlankRoot ) {
- if (synchResult == null || synchResult.isSuccess()) {
- if (!fillBlankRoot)
- currentDir = getStorageManager().getFileByPath(synchFolderRemotePath);
- if (currentDir != null) {
- OCFileListFragment fileListFragment = getListOfFilesFragment();
- if (fileListFragment != null) {
- fileListFragment.listDirectory(currentDir);
-
- }
- if (getSecondFragment() == null)
- setFile(currentDir);
+ if (needToRefresh) {
+ OCFileListFragment fileListFragment = getListOfFilesFragment();
+ if (fileListFragment != null) {
+ fileListFragment.listDirectory(currentDir);
+ }
+ boolean existsSecondFragment = (getSecondFragment() != null);
+ if (!existsSecondFragment) {
+ setFile(currentDir);
}
+ //updateFragmentsVisibility(existsSecondFragment);
+ updateNavigationElementsInActionBar(existsSecondFragment ? getFile() : null);
}
}