Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 0acb8fad authored by tobiasKaminsky's avatar tobiasKaminsky
Browse files

If we cancel by user, we pass a reason, so app can handle it correctly

parent 803639b5
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -163,8 +163,11 @@ public class ChunkedFileUploadRemoteOperation extends UploadFileRemoteOperation
            result = new RemoteOperationResult(isSuccess(moveResult), moveMethod);
        } catch (Exception e) {
            if (putMethod != null && putMethod.isAborted()) {
                if (cancellationRequested.get() && cancellationReason != null) {
                    result = new RemoteOperationResult(cancellationReason);
                } else {
                    result = new RemoteOperationResult(new OperationCancelledException());

                }
            } else {
                result = new RemoteOperationResult(e);
            }
+15 −5
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ public class UploadFileRemoteOperation extends RemoteOperation {
    String token = null;

	final AtomicBoolean cancellationRequested = new AtomicBoolean(false);
    RemoteOperationResult.ResultCode cancellationReason = null;
	final Set<OnDatatransferProgressListener> dataTransferListeners = new HashSet<>();

	protected RequestEntity entity = null;
@@ -136,8 +137,11 @@ public class UploadFileRemoteOperation extends RemoteOperation {

		} catch (Exception e) {
			if (putMethod != null && putMethod.isAborted()) {
                if (cancellationRequested.get() && cancellationReason != null) {
                    result = new RemoteOperationResult(cancellationReason);
                } else {
                    result = new RemoteOperationResult(new OperationCancelledException());

                }
			} else {
				result = new RemoteOperationResult(e);
			}
@@ -207,12 +211,18 @@ public class UploadFileRemoteOperation extends RemoteOperation {
        }
    }

    public void cancel() {
    public void cancel(RemoteOperationResult.ResultCode cancellationReason) {
        synchronized (cancellationRequested) {
            cancellationRequested.set(true);
            if (putMethod != null)

            if (cancellationReason != null) {
                this.cancellationReason = cancellationReason;
            }

            if (putMethod != null) {
                putMethod.abort();
            }
        }
    }

}