mShareType, mShareWith);
if (share != null) {
+ OCFile file = getStorageManager().getFileByPath(mRemotePath);
RemoveRemoteShareOperation operation =
new RemoveRemoteShareOperation((int) share.getIdRemoteShared());
result = operation.execute(client);
- if (result.isSuccess() || result.getCode() == ResultCode.SHARE_NOT_FOUND) {
+ if (result.isSuccess()) {
Log_OC.d(TAG, "Share id = " + share.getIdRemoteShared() + " deleted");
- OCFile file = getStorageManager().getFileByPath(mRemotePath);
if (mShareType == ShareType.PUBLIC_LINK) {
file.setShareViaLink(false);
file.setPublicLink("");
getStorageManager().saveFile(file);
getStorageManager().removeShare(share);
- if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
- if (existsFile(client, file.getRemotePath())) {
- result = new RemoteOperationResult(ResultCode.OK);
- } else {
- getStorageManager().removeFile(file, true, true);
- }
- }
- }
-
+ } else if (!existsFile(client, file.getRemotePath())) {
+ // unshare failed because file was deleted before
+ getStorageManager().removeFile(file, true, true);
+ }
+
} else {
result = new RemoteOperationResult(ResultCode.SHARE_NOT_FOUND);
}
import com.owncloud.android.operations.UnshareOperation;
import com.owncloud.android.ui.fragment.SearchFragment;
import com.owncloud.android.ui.fragment.ShareFileFragment;
+import com.owncloud.android.utils.ErrorMessageAdapter;
import com.owncloud.android.utils.GetShareWithUsersAsyncTask;
import java.util.ArrayList;
}
private void doShareWith(String shareeName, boolean isGroup) {
- if (isGroup) {
- Log_OC.d(TAG, "You want to SHARE with GROUP [" + shareeName + "]");
- } else {
- Log_OC.d(TAG, "You want to SHARE with USER [" + shareeName + "]");
- }
getFileOperationsHelper().shareFileWithSharee(
getFile(),
shareeName,
@Override
public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) {
super.onRemoteOperationFinish(operation, result);
- if (operation instanceof UnshareOperation) {
- refreshUsersInLists();
- } else if(operation instanceof CreateShareWithShareeOperation){
- refreshUsersInLists();
- // Clean action
- getIntent().setAction(null);
+ 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);*/
}
}
}
} else if (operation instanceof CreateShareViaLinkOperation ||
operation instanceof CreateShareWithShareeOperation) {
- if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND
+
+ if (result.getData() != null && result.getData().size() > 0) {
+ message = (String) result.getData().get(0); // share API sends its own error messages
+
+ } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
message = res.getString(R.string.share_link_file_no_exist);
} else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
} else if (operation instanceof UnshareOperation) {
- if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND
+ if (result.getData() != null && result.getData().size() > 0) {
+ message = (String) result.getData().get(0); // share API sends its own error messages
+
+ } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
message = res.getString(R.string.unshare_link_file_no_exist);
} else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {