From: David A. Velasco Date: Wed, 28 Oct 2015 08:38:29 +0000 (+0100) Subject: Fixed error messages related with network in ShareActivity X-Git-Tag: oc-android-1.9^2~30^2~8 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/aa4f47cbe08cfcd2a8e272d103c438b7247fd436 Fixed error messages related with network in ShareActivity --- diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index d0f5c1fb..e062acc0 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -69,6 +69,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.operations.CreateShareViaLinkOperation; import com.owncloud.android.operations.CreateShareWithShareeOperation; +import com.owncloud.android.operations.GetSharesForFileOperation; import com.owncloud.android.operations.SynchronizeFileOperation; import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.UnshareOperation; @@ -712,6 +713,8 @@ public class FileActivity extends AppCompatActivity mFileOperationsHelper.setOpIdWaitingFor(Long.MAX_VALUE); + dismissLoadingDialog(); + if (!result.isSuccess() && ( result.getCode() == ResultCode.UNAUTHORIZED || result.isIdPRedirection() || @@ -729,21 +732,37 @@ public class FileActivity extends AppCompatActivity } mTryShareAgain = false; - } else if (operation instanceof CreateShareViaLinkOperation) { - onCreateShareViaLinkOperationFinish((CreateShareViaLinkOperation) operation, result); + } else if (operation == null || + operation instanceof CreateShareWithShareeOperation || + operation instanceof UnshareOperation || + operation instanceof SynchronizeFolderOperation + ) { + if (result.isSuccess()) { + updateFileFromDB(); - } else if (operation instanceof CreateShareWithShareeOperation) { - onCreateShareWithShareeOperationFinish((CreateShareWithShareeOperation) operation, result); + } else if (result.getCode() != ResultCode.CANCELLED) { + Toast t = Toast.makeText(this, + ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), + Toast.LENGTH_LONG); + t.show(); + } - } else if (operation instanceof UnshareOperation) { - onUnshareLinkOperationFinish((UnshareOperation) operation, result); + } else if (operation instanceof CreateShareViaLinkOperation) { + onCreateShareViaLinkOperationFinish((CreateShareViaLinkOperation) operation, result); - } else if (operation instanceof SynchronizeFolderOperation) { - onSynchronizeFolderOperationFinish((SynchronizeFolderOperation) operation, result); + } else if (operation instanceof SynchronizeFileOperation) { + onSynchronizeFileOperationFinish((SynchronizeFileOperation) operation, result); - }else if (operation instanceof SynchronizeFileOperation) { - onSynchronizeFileOperationFinish((SynchronizeFileOperation)operation, result); + } else if (operation instanceof GetSharesForFileOperation) { + if (result.isSuccess()) { + updateFileFromDB(); + } else if (result.getCode() != ResultCode.SHARE_NOT_FOUND) { + Toast t = Toast.makeText(this, + ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), + Toast.LENGTH_LONG); + t.show(); + } } } @@ -761,7 +780,6 @@ public class FileActivity extends AppCompatActivity private void onCreateShareViaLinkOperationFinish(CreateShareViaLinkOperation operation, RemoteOperationResult result) { - dismissLoadingDialog(); if (result.isSuccess()) { mTryShareAgain = false; updateFileFromDB(); @@ -792,47 +810,8 @@ public class FileActivity extends AppCompatActivity } } - private void onCreateShareWithShareeOperationFinish(CreateShareWithShareeOperation operation, - RemoteOperationResult result) { - dismissLoadingDialog(); - if (result.isSuccess()) { - updateFileFromDB(); - - } else { - Toast t = Toast.makeText(this, - ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), - Toast.LENGTH_LONG); - t.show(); - } - } - - private void onUnshareLinkOperationFinish(UnshareOperation operation, - RemoteOperationResult result) { - dismissLoadingDialog(); - - if (result.isSuccess()){ - updateFileFromDB(); - - } else { - Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, - operation, getResources()), Toast.LENGTH_LONG); - t.show(); - } - } - - private void onSynchronizeFolderOperationFinish( - SynchronizeFolderOperation operation, RemoteOperationResult result - ) { - if (!result.isSuccess() && result.getCode() != ResultCode.CANCELLED){ - Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, - operation, getResources()), Toast.LENGTH_LONG); - t.show(); - } - } - private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation, RemoteOperationResult result) { - dismissLoadingDialog(); OCFile syncedFile = operation.getLocalFile(); if (!result.isSuccess()) { if (result.getCode() == ResultCode.SYNC_CONFLICT) { diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 2d494351..95e7fad9 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -1418,8 +1418,6 @@ public class FileDisplayActivity extends HookActivity */ private void onRemoveFileOperationFinish(RemoveFileOperation operation, RemoteOperationResult result) { - dismissLoadingDialog(); - Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), Toast.LENGTH_LONG); @@ -1458,10 +1456,8 @@ public class FileDisplayActivity extends HookActivity private void onMoveFileOperationFinish(MoveFileOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { - dismissLoadingDialog(); refreshListOfFilesFragment(); } else { - dismissLoadingDialog(); try { Toast msg = Toast.makeText(FileDisplayActivity.this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), @@ -1483,10 +1479,8 @@ public class FileDisplayActivity extends HookActivity */ private void onCopyFileOperationFinish(CopyFileOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { - dismissLoadingDialog(); refreshListOfFilesFragment(); } else { - dismissLoadingDialog(); try { Toast msg = Toast.makeText(FileDisplayActivity.this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), @@ -1508,7 +1502,6 @@ public class FileDisplayActivity extends HookActivity */ private void onRenameFileOperationFinish(RenameFileOperation operation, RemoteOperationResult result) { - dismissLoadingDialog(); OCFile renamedFile = operation.getFile(); if (result.isSuccess()) { FileFragment details = getSecondFragment(); @@ -1577,10 +1570,8 @@ public class FileDisplayActivity extends HookActivity private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { - dismissLoadingDialog(); refreshListOfFilesFragment(); } else { - dismissLoadingDialog(); try { Toast msg = Toast.makeText(FileDisplayActivity.this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), diff --git a/src/com/owncloud/android/ui/activity/FolderPickerActivity.java b/src/com/owncloud/android/ui/activity/FolderPickerActivity.java index c9a29cd8..8e88f3e6 100644 --- a/src/com/owncloud/android/ui/activity/FolderPickerActivity.java +++ b/src/com/owncloud/android/ui/activity/FolderPickerActivity.java @@ -408,10 +408,8 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C ) { if (result.isSuccess()) { - dismissLoadingDialog(); refreshListOfFilesFragment(); } else { - dismissLoadingDialog(); try { Toast msg = Toast.makeText(FolderPickerActivity.this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), diff --git a/src/com/owncloud/android/ui/activity/ShareActivity.java b/src/com/owncloud/android/ui/activity/ShareActivity.java index 2962cc87..7d98d7a4 100644 --- a/src/com/owncloud/android/ui/activity/ShareActivity.java +++ b/src/com/owncloud/android/ui/activity/ShareActivity.java @@ -51,8 +51,7 @@ import java.util.ArrayList; */ public class ShareActivity extends FileActivity - implements GetShareWithUsersAsyncTask.OnGetSharesWithUsersTaskListener, - ShareFileFragment.OnShareFragmentInteractionListener, + implements ShareFileFragment.OnShareFragmentInteractionListener, SearchFragment.OnSearchFragmentInteractionListener { private static final String TAG = ShareActivity.class.getSimpleName(); @@ -200,38 +199,15 @@ public class ShareActivity extends FileActivity @Override public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) { super.onRemoteOperationFinish(operation, result); - if (operation instanceof UnshareOperation || - operation instanceof CreateShareWithShareeOperation) { - - if (result.isSuccess()) { - refreshUsersInLists(); - if (operation instanceof CreateShareWithShareeOperation) { - // Clean action - getIntent().setAction(null); - } - } else { - Toast.makeText( - this, - ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), - Toast.LENGTH_LONG - ).show(); - } - - /*} else if (operation instanceof GetSharesForFileOperation) { - onGetSharesForFileOperationFinish((GetSharesForFileOperation) operation, result);*/ - } - } - @Override - public void onGetDataShareWithFinish(RemoteOperationResult result) { - // Remove loading - dismissLoadingDialog(); if (result.isSuccess()) { - Log_OC.d(TAG, "Get Data Share With finishes sucessfully"); - } // else, ignore and use pre-cached shares in database + refreshUsersInLists(); + if (operation instanceof CreateShareWithShareeOperation) { + // Clean action + getIntent().setAction(null); + } + } - // Data is on Database - refreshUsersInLists(); } private void refreshUsersInLists(){ diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index d221bc92..0d1a8011 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -607,10 +607,8 @@ public class Uploader extends FileActivity private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { - dismissLoadingDialog(); populateDirectoryList(); } else { - dismissLoadingDialog(); try { Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), diff --git a/src/com/owncloud/android/utils/ErrorMessageAdapter.java b/src/com/owncloud/android/utils/ErrorMessageAdapter.java index 5d764a80..37b2fbac 100644 --- a/src/com/owncloud/android/utils/ErrorMessageAdapter.java +++ b/src/com/owncloud/android/utils/ErrorMessageAdapter.java @@ -61,7 +61,10 @@ public class ErrorMessageAdapter { String message = null; - if (operation instanceof UploadFileOperation) { + if (!result.isSuccess() && isNetworkError(result.getCode())) { + message = getErrorMessage(result, res); + + } else if (operation instanceof UploadFileOperation) { if (result.isSuccess()) { message = String.format( @@ -120,9 +123,6 @@ public class ErrorMessageAdapter { // Error --> No permissions message = String.format(res.getString(R.string.forbidden_permissions), res.getString(R.string.forbidden_permissions_delete)); - } else if (isNetworkError(result.getCode())) { - message = getErrorMessage(result, res); - } else { message = res.getString(R.string.remove_fail_msg); } @@ -140,9 +140,6 @@ public class ErrorMessageAdapter { } else if (result.getCode().equals(ResultCode.INVALID_CHARACTER_IN_NAME)) { message = res.getString(R.string.filename_forbidden_characters); - } else if (isNetworkError(result.getCode())) { - message = getErrorMessage(result, res); - } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) { message = res.getString(R.string.filename_forbidden_charaters_from_server); @@ -163,9 +160,6 @@ public class ErrorMessageAdapter { message = String.format(res.getString(R.string.forbidden_permissions), res.getString(R.string.forbidden_permissions_create)); - } else if (isNetworkError(result.getCode())) { - message = getErrorMessage(result, res); - } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) { message = res.getString(R.string.filename_forbidden_charaters_from_server); } else { @@ -185,9 +179,6 @@ public class ErrorMessageAdapter { message = String.format(res.getString(R.string.forbidden_permissions), res.getString(R.string.share_link_forbidden_permissions)); - } else if (isNetworkError(result.getCode())) { - message = getErrorMessage(result, res); - } else { // Generic error // Show a Message, operation finished without success message = res.getString(R.string.share_link_file_error); @@ -206,18 +197,13 @@ public class ErrorMessageAdapter { message = String.format(res.getString(R.string.forbidden_permissions), res.getString(R.string.unshare_link_forbidden_permissions)); - } else if (isNetworkError(result.getCode())) { - message = getErrorMessage(result, res); - } else { // Generic error // Show a Message, operation finished without success message = res.getString(R.string.unshare_link_file_error); } } else if (operation instanceof MoveFileOperation) { - if(isNetworkError(result.getCode())){ - message = getErrorMessage(result, res); - } else if (result.getCode() == ResultCode.FILE_NOT_FOUND) { + if (result.getCode() == ResultCode.FILE_NOT_FOUND) { message = res.getString(R.string.move_file_not_found); } else if (result.getCode() == ResultCode.INVALID_MOVE_INTO_DESCENDANT) { message = res.getString(R.string.move_file_invalid_into_descendent); @@ -252,9 +238,7 @@ public class ErrorMessageAdapter { } } } else if (operation instanceof CopyFileOperation) { - if(isNetworkError(result.getCode())){ - message = getErrorMessage(result, res); - } else if (result.getCode() == ResultCode.FILE_NOT_FOUND) { + if (result.getCode() == ResultCode.FILE_NOT_FOUND) { message = res.getString(R.string.copy_file_not_found); } else if (result.getCode() == ResultCode.INVALID_COPY_INTO_DESCENDANT) { message = res.getString(R.string.copy_file_invalid_into_descendent); diff --git a/src/com/owncloud/android/utils/GetShareWithUsersAsyncTask.java b/src/com/owncloud/android/utils/GetShareWithUsersAsyncTask.java index 23527279..a5f696eb 100644 --- a/src/com/owncloud/android/utils/GetShareWithUsersAsyncTask.java +++ b/src/com/owncloud/android/utils/GetShareWithUsersAsyncTask.java @@ -22,6 +22,7 @@ package com.owncloud.android.utils; import android.accounts.Account; import android.os.AsyncTask; +import android.util.Pair; import com.owncloud.android.MainApp; import com.owncloud.android.datamodel.FileDataStorageManager; @@ -29,34 +30,30 @@ import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.OwnCloudAccount; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; +import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; +import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.lib.resources.shares.OCShare; import com.owncloud.android.operations.GetSharesForFileOperation; import java.lang.ref.WeakReference; -import java.util.ArrayList; /** * Async Task to get the users and groups which a file is shared with */ -public class GetShareWithUsersAsyncTask extends AsyncTask { +public class GetShareWithUsersAsyncTask extends AsyncTask> { private final String TAG = GetShareWithUsersAsyncTask.class.getSimpleName(); - private final WeakReference mListener; - private ArrayList mShares; + private final WeakReference mListener; - public ArrayList getShares(){ - return mShares; - } - - public GetShareWithUsersAsyncTask(OnGetSharesWithUsersTaskListener listener) { - mListener = new WeakReference(listener); + public GetShareWithUsersAsyncTask(OnRemoteOperationListener listener) { + mListener = new WeakReference(listener); } @Override - protected RemoteOperationResult doInBackground(Object... params) { + protected Pair doInBackground(Object... params) { + GetSharesForFileOperation operation = null; RemoteOperationResult result = null; if (params != null && params.length == 3) { @@ -66,8 +63,7 @@ public class GetShareWithUsersAsyncTask extends AsyncTask result) { if (result!= null) { - OnGetSharesWithUsersTaskListener listener = mListener.get(); + OnRemoteOperationListener listener = mListener.get(); if (listener!= null) { - listener.onGetDataShareWithFinish(result); + listener.onRemoteOperationFinish(result.first, result.second); } } } - /* - * Interface to retrieve data from get shares task - */ - public interface OnGetSharesWithUsersTaskListener{ - - void onGetDataShareWithFinish(RemoteOperationResult result); - } } \ No newline at end of file