From: masensio Date: Wed, 4 Sep 2013 08:25:27 +0000 (+0200) Subject: Fix bug: When you browses up, the folder and files dissapears X-Git-Tag: oc-android-1.5.5~155^2~47 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/50067ee42b2ed8b0a5340ef9a02207a8ac2e0abe?ds=inline;hp=--cc Fix bug: When you browses up, the folder and files dissapears --- 50067ee42b2ed8b0a5340ef9a02207a8ac2e0abe diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index 3c1a64f6..b08b2be6 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -64,6 +64,11 @@ public class SynchronizeFolderOperation extends RemoteOperation { /** Id of the folder to synchronize in the local database */ private long mParentId; + public long getParentId() { + return mParentId; + } + + /** Access to the local database */ private DataStorageManager mStorageManager; diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index ebccabae..c6c8ecfc 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -948,7 +948,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa cleanSecondFragment(); // Sync Folder - syncFolderOperation(directory.getRemotePath(), directory.getFileId()); + startSyncFolderOperation(directory.getRemotePath(), directory.getFileId()); // Update folder size on DB getStorageManager().calculateFolderSize(directory.getParentId()); @@ -1174,9 +1174,12 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa * @param result Result of the synchronization. */ private void onSynchronizeFolderOperationFinish(SynchronizeFolderOperation operation, RemoteOperationResult result) { + setSupportProgressBarIndeterminateVisibility(false); if (result.isSuccess()) { - refeshListOfFilesFragment(); - + DataStorageManager storageManager = getStorageManager(); + OCFile parentDir = storageManager.getFileById(operation.getParentId()); + + refreshListOfFilesFragment(parentDir); } else { try { Toast msg = Toast.makeText(FileDisplayActivity.this, R.string.sync_file_fail_msg, Toast.LENGTH_LONG); @@ -1189,6 +1192,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. @@ -1374,9 +1385,10 @@ 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(); + setSupportProgressBarIndeterminateVisibility(true); + // perform folder synchronization RemoteOperation synchFolderOp = new SynchronizeFolderOperation( remotePath, currentSyncTime, parentId, diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 64161ed6..b6d30ed2 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -129,18 +129,24 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName if(mFile != null){ DataStorageManager storageManager = mContainerActivity.getStorageManager(); - parentDir = storageManager.getFileById(mFile.getParentId()); + if (mFile.getParentId() == 0) { + parentDir = storageManager.getFileById(1); + } + else { + parentDir = storageManager.getFileById(mFile.getParentId()); + } // Update folder size on DB storageManager.calculateFolderSize(mFile.getFileId()); - mFile = parentDir; - + mFile = parentDir; } - listDirectory(parentDir); - + + if (mFile != null) { + listDirectory(mFile); - mContainerActivity.syncFolderOperation(mFile.getRemotePath(), mFile.getParentId()); + mContainerActivity.startSyncFolderOperation(mFile.getRemotePath(), mFile.getParentId()); + } } @@ -406,7 +412,7 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName public void startImagePreview(OCFile file); - public void syncFolderOperation(String remotePath, long parentId); + public void startSyncFolderOperation(String remotePath, long parentId); /** * Getter for the current DataStorageManager in the container activity