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;
mFileOperationsHelper.setOpIdWaitingFor(Long.MAX_VALUE);
+ dismissLoadingDialog();
+
if (!result.isSuccess() && (
result.getCode() == ResultCode.UNAUTHORIZED ||
result.isIdPRedirection() ||
}
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();
+ }
}
}
private void onCreateShareViaLinkOperationFinish(CreateShareViaLinkOperation operation,
RemoteOperationResult result) {
- dismissLoadingDialog();
if (result.isSuccess()) {
mTryShareAgain = false;
updateFileFromDB();
}
}
- 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) {
*/
private void onRemoveFileOperationFinish(RemoveFileOperation operation,
RemoteOperationResult result) {
- dismissLoadingDialog();
-
Toast msg = Toast.makeText(this,
ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
Toast.LENGTH_LONG);
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()),
*/
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()),
*/
private void onRenameFileOperationFinish(RenameFileOperation operation,
RemoteOperationResult result) {
- dismissLoadingDialog();
OCFile renamedFile = operation.getFile();
if (result.isSuccess()) {
FileFragment details = getSecondFragment();
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()),
) {
if (result.isSuccess()) {
- dismissLoadingDialog();
refreshListOfFilesFragment();
} else {
- dismissLoadingDialog();
try {
Toast msg = Toast.makeText(FolderPickerActivity.this,
ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
*/
public class ShareActivity extends FileActivity
- implements GetShareWithUsersAsyncTask.OnGetSharesWithUsersTaskListener,
- ShareFileFragment.OnShareFragmentInteractionListener,
+ implements ShareFileFragment.OnShareFragmentInteractionListener,
SearchFragment.OnSearchFragmentInteractionListener {
private static final String TAG = ShareActivity.class.getSimpleName();
@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(){
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()),
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(
// 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);
}
} 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);
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 {
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);
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);
}
}
} 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);
import android.accounts.Account;
import android.os.AsyncTask;
+import android.util.Pair;
import com.owncloud.android.MainApp;
import com.owncloud.android.datamodel.FileDataStorageManager;
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<Object, Void, RemoteOperationResult> {
+public class GetShareWithUsersAsyncTask extends AsyncTask<Object, Void, Pair<RemoteOperation, RemoteOperationResult>> {
private final String TAG = GetShareWithUsersAsyncTask.class.getSimpleName();
- private final WeakReference<OnGetSharesWithUsersTaskListener> mListener;
- private ArrayList<OCShare> mShares;
+ private final WeakReference<OnRemoteOperationListener> mListener;
- public ArrayList<OCShare> getShares(){
- return mShares;
- }
-
- public GetShareWithUsersAsyncTask(OnGetSharesWithUsersTaskListener listener) {
- mListener = new WeakReference<OnGetSharesWithUsersTaskListener>(listener);
+ public GetShareWithUsersAsyncTask(OnRemoteOperationListener listener) {
+ mListener = new WeakReference<OnRemoteOperationListener>(listener);
}
@Override
- protected RemoteOperationResult doInBackground(Object... params) {
+ protected Pair<RemoteOperation, RemoteOperationResult> doInBackground(Object... params) {
+ GetSharesForFileOperation operation = null;
RemoteOperationResult result = null;
if (params != null && params.length == 3) {
try {
// Get shares request
- GetSharesForFileOperation operation =
- new GetSharesForFileOperation(file.getRemotePath(), false, false);
+ operation = new GetSharesForFileOperation(file.getRemotePath(), false, false);
OwnCloudAccount ocAccount = new OwnCloudAccount(account,
MainApp.getAppContext());
OwnCloudClient client = OwnCloudClientManagerFactory.getDefaultSingleton().
result = new RemoteOperationResult(RemoteOperationResult.ResultCode.UNKNOWN_ERROR);
}
- return result;
+ return new Pair(operation, result);
}
@Override
- protected void onPostExecute(RemoteOperationResult result) {
+ protected void onPostExecute(Pair<RemoteOperation, RemoteOperationResult> 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