From: jabarros Date: Wed, 7 Jan 2015 10:22:24 +0000 (+0100) Subject: Fix. App does not realize that the folder does not exist X-Git-Tag: oc-android-1.7.0_signed~23^2~19 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/1db11eb586d00cba2d484e29cf0fef1fecc21f43?ds=inline Fix. App does not realize that the folder does not exist --- diff --git a/res/values/strings.xml b/res/values/strings.xml index 8b828682..c26a31cb 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -323,5 +323,7 @@ Security Upload Video Path + The folder is no longer available on the server + Download of %1$s folder could not be completed diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index 0dee54f9..088c5788 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -542,4 +542,12 @@ public class SynchronizeFolderOperation extends SyncOperation { public void cancel() { mCancellationRequested.set(true); } + + public String getFolderPath() { + String path = mLocalFolder.getStoragePath(); + if (path != null && path.length() > 0) { + return path; + } + return FileStorageUtils.getDefaultSavePathFor(mAccount.name, mLocalFolder); + } } diff --git a/src/com/owncloud/android/services/OperationsService.java b/src/com/owncloud/android/services/OperationsService.java index 385306dd..ae4988d7 100644 --- a/src/com/owncloud/android/services/OperationsService.java +++ b/src/com/owncloud/android/services/OperationsService.java @@ -449,6 +449,7 @@ public class OperationsService extends Service { } if (mCurrentSyncOperation != null) { + RemoteOperationResult result = null; try { @@ -460,7 +461,7 @@ public class OperationsService extends Service { mService.getContentResolver() ); - mCurrentSyncOperation.execute(mOwnCloudClient, mStorageManager); + result = mCurrentSyncOperation.execute(mOwnCloudClient, mStorageManager); } catch (AccountsException e) { Log_OC.e(TAG, "Error while trying to get autorization", e); @@ -470,6 +471,8 @@ public class OperationsService extends Service { synchronized(mPendingOperations) { mPendingOperations.remove(syncKey); } + + mService.dispatchResultToOperationListeners(null, mCurrentSyncOperation, result); } } } @@ -830,7 +833,7 @@ public class OperationsService extends Service { /** * Notifies the currently subscribed listeners about the end of an operation. - * + * * @param target Account or URL pointing to an OC server. * @param operation Finished operation. * @param result Result of the operation. diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index 136bdb55..5ab3ebaf 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -54,6 +54,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.operations.CreateShareOperation; +import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.UnshareLinkOperation; import com.owncloud.android.services.OperationsService; @@ -464,7 +465,10 @@ implements OnRemoteOperationListener, ComponentsGetter { } else if (operation instanceof UnshareLinkOperation) { onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result); - } + } else if (operation instanceof SynchronizeFolderOperation) { + onSynchronizeFolderOperationFinish((SynchronizeFolderOperation)operation, result); + + } } protected void requestCredentialsUpdate() { @@ -506,7 +510,14 @@ implements OnRemoteOperationListener, ComponentsGetter { t.show(); } } - + + private void onSynchronizeFolderOperationFinish(SynchronizeFolderOperation operation, RemoteOperationResult result) { + if (!result.isSuccess()){ + Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), + Toast.LENGTH_LONG); + t.show(); + } + } protected void updateFileFromDB(){ OCFile file = getFile(); diff --git a/src/com/owncloud/android/utils/ErrorMessageAdapter.java b/src/com/owncloud/android/utils/ErrorMessageAdapter.java index e56e8760..9e077c0a 100644 --- a/src/com/owncloud/android/utils/ErrorMessageAdapter.java +++ b/src/com/owncloud/android/utils/ErrorMessageAdapter.java @@ -36,6 +36,7 @@ import com.owncloud.android.operations.MoveFileOperation; 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.UnshareLinkOperation; import com.owncloud.android.operations.UploadFileOperation; @@ -206,6 +207,18 @@ public class ErrorMessageAdapter { // Show a Message, operation finished without success message = res.getString(R.string.move_file_error); } + } else if (operation instanceof SynchronizeFolderOperation) { + + if (!result.isSuccess()) { + if (result.getCode() == ResultCode.FILE_NOT_FOUND) { + message = res.getString(R.string.download_folder_not_found); + + } else { // Generic error + // Show a Message, operation finished without success + message = String.format(res.getString(R.string.downloader_download_folder_failed_content), new File( + ((SynchronizeFolderOperation) operation).getFolderPath()).getName()); + } + } } return message;