X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/472b36067573c830da1ea86f217280785b288039..8fef772af40a8eb328105c13a102b62c64d16773:/src/com/owncloud/android/ui/activity/FileDisplayActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 00193e0d..26b1df52 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -947,9 +947,10 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa pushDirname(directory); cleanSecondFragment(); - syncFolderOperation(directory.getRemotePath(), directory.getFileId()); - // Update folder size on DB - getStorageManager().calculateFolderSize(directory.getFileId()); + // Sync Folder + startSyncFolderOperation(directory.getRemotePath(), directory.getFileId()); +// // Update folder size on DB +// getStorageManager().calculateFolderSize(directory.getParentId()); } @@ -1173,9 +1174,22 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa * @param result Result of the synchronization. */ private void onSynchronizeFolderOperationFinish(SynchronizeFolderOperation operation, RemoteOperationResult result) { + + OCFileListFragment list = getListOfFilesFragment(); + enableDisableViewGroup(list.getListView(), true); + + setSupportProgressBarIndeterminateVisibility(false); if (result.isSuccess()) { - refeshListOfFilesFragment(); + if (result.getCode() != ResultCode.OK_NO_CHANGES_ON_DIR) { + DataStorageManager storageManager = getStorageManager(); + OCFile parentDir = storageManager.getFileByPath(operation.getRemotePath()); + + // Update folder size on DB + getStorageManager().calculateFolderSize(parentDir.getFileId()); + // Refrest List + refreshListOfFilesFragment(parentDir); + } } else { try { Toast msg = Toast.makeText(FileDisplayActivity.this, R.string.sync_file_fail_msg, Toast.LENGTH_LONG); @@ -1188,6 +1202,14 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa } + private void refreshListOfFilesFragment(OCFile parentDir) { + OCFileListFragment fileListFragment = getListOfFilesFragment(); + if (fileListFragment != null) { + fileListFragment.listDirectory(parentDir); + } + } + + /** * Updates the view associated to the activity after the finish of an operation trying to remove a * file. @@ -1373,9 +1395,13 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa return null; } - public void syncFolderOperation(String remotePath, long parentId) { - long currentSyncTime = System.currentTimeMillis(); - // perform folder synchronization + public void startSyncFolderOperation(String remotePath, long parentId) { + long currentSyncTime = System.currentTimeMillis(); + + OCFileListFragment list = getListOfFilesFragment(); + enableDisableViewGroup(list.getListView(), false); + + // perform folder synchronization RemoteOperation synchFolderOp = new SynchronizeFolderOperation( remotePath, currentSyncTime, parentId, @@ -1385,6 +1411,19 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa ); synchFolderOp.execute(getAccount(), this, this, mHandler, this); + setSupportProgressBarIndeterminateVisibility(true); } + + public void enableDisableViewGroup(ViewGroup viewGroup, boolean enabled) { + int childCount = viewGroup.getChildCount(); + for (int i = 0; i < childCount; i++) { + View view = viewGroup.getChildAt(i); + view.setEnabled(enabled); + view.setClickable(!enabled); + if (view instanceof ViewGroup) { + enableDisableViewGroup((ViewGroup) view, enabled); + } + } + } }