X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/7c2174d09e376ecc5ebd9a510a66dc7582b173f9..9b9b02c384b4453b3debd703c52e24b6136540f8:/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java diff --git a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java index 2c4ae382..188d1f0b 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java @@ -610,32 +610,34 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements FileSyncService.IN_PROGRESS, false); String account_name = intent .getStringExtra(FileSyncService.ACCOUNT_NAME); + Log.d("FileDisplay", "sync of account " + account_name + " is in_progress: " + inProgress); - setSupportProgressBarIndeterminateVisibility(inProgress); + + //if (account_name.equals(AccountUtils.getCurrentOwnCloudAccount(context).name)) { // TODO - probably this check should be added, but won't push it until really tests are done; no time now - long OCDirId = intent.getLongExtra(FileSyncService.SYNC_FOLDER, -1); - if (OCDirId >= 0) { - OCFile syncDir = mStorageManager.getFileById(OCDirId); - if (syncDir != null && ( - (mCurrentDir == null && syncDir.getFileName().equals("/")) || - syncDir.equals(mCurrentDir)) - ) { - FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList); - if (fileListFragment != null) { - fileListFragment.listDirectory(); + /// try to refresh the view with every message received from the FileSyncAdapter; brute, but more user friendly when there are a lot of files in the server + OCFile currentDir; + if (mCurrentDir == null) + currentDir = mStorageManager.getFileByPath("/"); + else + currentDir = mStorageManager.getFileByPath(mCurrentDir.getRemotePath()); + + if (currentDir != null) { + mCurrentDir = currentDir; + FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager() + .findFragmentById(R.id.fileList); + if (fileListFragment != null) { + if (!mCurrentDir.equals(fileListFragment.getCurrentFile())) { + fileListFragment.listDirectory(mCurrentDir); // only set the directory in the fragment first time + } else + fileListFragment.listDirectory(); // enough to show new files in the current directory if they are added after } } - } - - if (!inProgress) { - FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager() - .findFragmentById(R.id.fileList); - if (fileListFragment != null) - fileListFragment.listDirectory(); - } + + setSupportProgressBarIndeterminateVisibility(inProgress); + //} } - } @@ -717,17 +719,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements // If we are on a large device -> update fragment if (mDualPane) { - FileDetailFragment fileDetails = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG); - if (fileDetails == null) { - // first selected file since the current directory was listed - FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); - transaction.replace(R.id.file_details_container, new FileDetailFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG); - transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); - transaction.commit(); - } else { - // another select file - fileDetails.updateFileDetails(file, AccountUtils.getCurrentOwnCloudAccount(this)); - } + // buttons in the details view are problematic when trying to reuse an existing fragment; create always a new one solves some of them, BUT no all; downloads are 'dangerous' + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.file_details_container, new FileDetailFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG); + transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); + transaction.commit(); } else { // small or medium screen device -> new Activity Intent showDetailsIntent = new Intent(this, FileDetailActivity.class);