From: masensio Date: Thu, 22 Aug 2013 17:11:30 +0000 (+0200) Subject: OC-922: Refresh of folder X-Git-Tag: oc-android-1.5.5~155^2~49 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/472b36067573c830da1ea86f217280785b288039?ds=inline;hp=--cc OC-922: Refresh of folder --- 472b36067573c830da1ea86f217280785b288039 diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 0ce6ccee..00193e0d 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -19,8 +19,11 @@ package com.owncloud.android.ui.activity; import java.io.File; +import java.io.IOException; import android.accounts.Account; +import android.accounts.AuthenticatorException; +import android.accounts.OperationCanceledException; import android.app.AlertDialog; import android.app.ProgressDialog; import android.app.Dialog; @@ -59,6 +62,8 @@ import com.actionbarsherlock.view.Window; import com.owncloud.android.Log_OC; import com.owncloud.android.R; import com.owncloud.android.authentication.AccountAuthenticator; +import com.owncloud.android.authentication.AccountUtils; +import com.owncloud.android.authentication.AccountUtils.AccountNotFoundException; import com.owncloud.android.datamodel.DataStorageManager; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; @@ -67,6 +72,7 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileObserverService; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; +import com.owncloud.android.network.OwnCloudClientUtils; import com.owncloud.android.operations.CreateFolderOperation; import com.owncloud.android.operations.OnRemoteOperationListener; import com.owncloud.android.operations.RemoteOperation; @@ -74,6 +80,7 @@ import com.owncloud.android.operations.RemoteOperationResult; import com.owncloud.android.operations.RemoveFileOperation; import com.owncloud.android.operations.RenameFileOperation; import com.owncloud.android.operations.SynchronizeFileOperation; +import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.syncadapter.FileSyncService; import com.owncloud.android.ui.dialog.EditNameDialog; @@ -87,6 +94,8 @@ import com.owncloud.android.ui.preview.PreviewImageActivity; import com.owncloud.android.ui.preview.PreviewMediaFragment; import com.owncloud.android.ui.preview.PreviewVideoActivity; +import eu.alefzero.webdav.WebdavClient; + /** * Displays, what files the user has available in his ownCloud. * @@ -454,8 +463,9 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa FileFragment second = getSecondFragment(); OCFile currentDir = getCurrentDir(); if((currentDir != null && currentDir.getParentId() != 0) || - (second != null && second.getFile() != null)) { + (second != null && second.getFile() != null)) { onBackPressed(); + } break; } @@ -936,6 +946,11 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa public void onBrowsedDownTo(OCFile directory) { pushDirname(directory); cleanSecondFragment(); + + syncFolderOperation(directory.getRemotePath(), directory.getFileId()); + // Update folder size on DB + getStorageManager().calculateFolderSize(directory.getFileId()); + } /** @@ -1144,6 +1159,31 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa } else if (operation instanceof CreateFolderOperation) { onCreateFolderOperationFinish((CreateFolderOperation)operation, result); + + } else if (operation instanceof SynchronizeFolderOperation) { + onSynchronizeFolderOperationFinish((SynchronizeFolderOperation)operation, result); + } + } + + + /** + * Updates the view associated to the activity after the finish of an operation trying to synchronize a folder. + * + * @param operation Synchronize operation performed. + * @param result Result of the synchronization. + */ + private void onSynchronizeFolderOperationFinish(SynchronizeFolderOperation operation, RemoteOperationResult result) { + if (result.isSuccess()) { + refeshListOfFilesFragment(); + + } else { + try { + Toast msg = Toast.makeText(FileDisplayActivity.this, R.string.sync_file_fail_msg, Toast.LENGTH_LONG); + msg.show(); + + } catch (NotFoundException e) { + Log_OC.e(TAG, "Error while trying to show fail message " , e); + } } } @@ -1332,5 +1372,19 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa } return null; } + + public void syncFolderOperation(String remotePath, long parentId) { + long currentSyncTime = System.currentTimeMillis(); + // perform folder synchronization + RemoteOperation synchFolderOp = new SynchronizeFolderOperation( remotePath, + currentSyncTime, + parentId, + getStorageManager(), + getAccount(), + getApplicationContext() + ); + synchFolderOp.execute(getAccount(), this, this, mHandler, this); + + } } diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index c6744422..58ffedb8 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -31,6 +31,7 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.operations.OnRemoteOperationListener; import com.owncloud.android.operations.RemoteOperation; +import com.owncloud.android.operations.RemoteOperationResult; import com.owncloud.android.operations.RemoveFileOperation; import com.owncloud.android.operations.RenameFileOperation; import com.owncloud.android.operations.SynchronizeFileOperation; @@ -132,6 +133,9 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName mFile = parentDir; } listDirectory(parentDir); + + mContainerActivity.syncFolderOperation(mFile.getRemotePath(), mFile.getParentId()); + } @Override @@ -371,7 +375,6 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName mList.setSelectionFromTop(0, 0); } mFile = directory; - } } @@ -396,6 +399,8 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName public void startMediaPreview(OCFile file, int i, boolean b); public void startImagePreview(OCFile file); + + public void syncFolderOperation(String remotePath, long parentId); /** * Getter for the current DataStorageManager in the container activity