Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2019-12-07 01:21:56 +0300
committerdesperateCoder <echotodevnull@gmail.com>2019-12-07 01:22:04 +0300
commitc45c69eb67bf7d866ea13841fbc5d9fb25452ac7 (patch)
treecee14e240bc1a6a56cf911c8c816f5a249e04052 /app/src/main
parent21e4b31bf7da469723e7504d182108d5cea8a4f9 (diff)
#211 upload attachments WIP
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java8
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java10
3 files changed, 16 insertions, 8 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
index 3fe1e1ed2..6e7d2c209 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
@@ -1,7 +1,6 @@
package it.niedermann.nextcloud.deck.api;
-import java.io.File;
import java.util.List;
import io.reactivex.Observable;
@@ -16,12 +15,14 @@ import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
import it.niedermann.nextcloud.deck.model.propagation.CardUpdate;
import it.niedermann.nextcloud.deck.model.propagation.Reorder;
+import okhttp3.MultipartBody;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
+import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
@@ -123,8 +124,9 @@ public interface DeckAPI {
@GET("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments")
Observable<List<Attachment>> getAttachments(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Header(MODIFIED_SINCE_HEADER) String lastSync);
- @POST("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments")
- Observable<Void> uploadAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Part File attachment);
+ @POST("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachment?type=deck_file")
+ @Multipart
+ Observable<Attachment> uploadAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Part MultipartBody.Part type, @Part MultipartBody.Part attachment);
@PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}")
Observable<Attachment> updateAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
index 34aa55b83..3f16206ba 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
@@ -896,10 +896,10 @@ public class SyncManager {
Card card = dataBaseAdapter.getCardByLocalIdDirectly(accountId, localCardId);
Stack stack = dataBaseAdapter.getStackByLocalIdDirectly(card.getStackId());
Board board = dataBaseAdapter.getBoardByLocalIdDirectly(stack.getBoardId());
- serverAdapter.uploadAttachment(board.getId(), stack.getId(), card.getId(), new File(uri.getPath()), new IResponseCallback<Void>(dataBaseAdapter.readAccountDirectly(accountId)) {
+ serverAdapter.uploadAttachment(board.getId(), stack.getId(), card.getId(), new File(uri.getPath()), new IResponseCallback<Attachment>(dataBaseAdapter.readAccountDirectly(accountId)) {
@Override
- public void onResponse(Void response) {
- DeckLog.log("uploading "+uri.getPath()+" successfull.");
+ public void onResponse(Attachment response) {
+ DeckLog.log("uploading "+uri.getPath()+" successful.");
}
});
});
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
index a905f2bf7..1b39d0a70 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
@@ -29,6 +29,7 @@ import it.niedermann.nextcloud.deck.api.LastSyncUtil;
import it.niedermann.nextcloud.deck.api.RequestHelper;
import it.niedermann.nextcloud.deck.exceptions.OfflineException;
import it.niedermann.nextcloud.deck.model.AccessControl;
+import it.niedermann.nextcloud.deck.model.Attachment;
import it.niedermann.nextcloud.deck.model.Board;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.Label;
@@ -40,6 +41,9 @@ import it.niedermann.nextcloud.deck.model.ocs.Capabilities;
import it.niedermann.nextcloud.deck.model.propagation.CardUpdate;
import it.niedermann.nextcloud.deck.model.propagation.Reorder;
import it.niedermann.nextcloud.deck.util.DateUtil;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
public class ServerAdapter {
@@ -264,9 +268,11 @@ public class ServerAdapter {
}
// ## ATTACHMENTS
- public void uploadAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, File attachment, IResponseCallback<Void> responseCallback) {
+ public void uploadAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, File attachment, IResponseCallback<Attachment> responseCallback) {
ensureInternetConnection();
- RequestHelper.request(sourceActivity, provider, () -> provider.getDeckAPI().uploadAttachment(remoteBoardId, remoteStackId, remoteCardId, attachment), responseCallback);
+ MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", attachment.getName(), RequestBody.create(MediaType.parse("image/*"), attachment));
+ MultipartBody.Part typePart = MultipartBody.Part.createFormData("type", attachment.getName(), RequestBody.create(MediaType.parse("text/plain"), "deck_file"));
+ RequestHelper.request(sourceActivity, provider, () -> provider.getDeckAPI().uploadAttachment(remoteBoardId, remoteStackId, remoteCardId, typePart, filePart), responseCallback);
}
public void deleteAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, IResponseCallback<Void> responseCallback) {
ensureInternetConnection();