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 00:47:58 +0300
committerdesperateCoder <echotodevnull@gmail.com>2019-12-07 00:47:58 +0300
commit97834a2c835be3e182765b8dec5bc29f4dcbef57 (patch)
treedb8524822c8acc7e9c69d4bb1237d8345a3db02b /app/src/main
parentde3d7efb11fc976ad429498579206349e56b8bf8 (diff)
#211 filled stubs, might not work yet.
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java31
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java12
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AttachmentDao.java3
5 files changed, 50 insertions, 4 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 b37af220b..3fe1e1ed2 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,6 +1,7 @@
package it.niedermann.nextcloud.deck.api;
+import java.io.File;
import java.util.List;
import io.reactivex.Observable;
@@ -23,6 +24,7 @@ import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.PUT;
+import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;
@@ -122,7 +124,7 @@ public interface DeckAPI {
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<Attachment> uploadAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId);
+ Observable<Void> uploadAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Part File 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 163dcec7e..64121b571 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
@@ -12,6 +12,7 @@ import androidx.lifecycle.MutableLiveData;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException;
import com.nextcloud.android.sso.exceptions.NoCurrentAccountSelectedException;
+import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -22,6 +23,7 @@ import it.niedermann.nextcloud.deck.api.IResponseCallback;
import it.niedermann.nextcloud.deck.api.LastSyncUtil;
import it.niedermann.nextcloud.deck.model.AccessControl;
import it.niedermann.nextcloud.deck.model.Account;
+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.JoinCardWithUser;
@@ -889,7 +891,32 @@ public class SyncManager {
}
}
- public void addAttachmentToCard(long accountId, long cardId, @NonNull Uri uri) {
- // TODO @desperateCoder do something :)
+ public void addAttachmentToCard(long accountId, long localBoardId, long localStackId, long localCardId, @NonNull Uri uri) {
+ doAsync(() -> {
+ 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)) {
+ @Override
+ public void onResponse(Void response) {
+ DeckLog.log("uploading "+uri.getPath()+" successfull.");
+ }
+ });
+ });
+ }
+
+ public void deleteAttachmentToCard(long accountId, long localBoardId, long localStackId, long localCardId, long localAttachmentId) {
+ doAsync(() -> {
+ Card card = dataBaseAdapter.getCardByLocalIdDirectly(accountId, localCardId);
+ Stack stack = dataBaseAdapter.getStackByLocalIdDirectly(card.getStackId());
+ Board board = dataBaseAdapter.getBoardByLocalIdDirectly(stack.getBoardId());
+ Attachment attachment = dataBaseAdapter.getAttachmentByLocalIdDirectly(accountId, localAttachmentId);
+ serverAdapter.deleteAttachment(board.getId(), stack.getId(), card.getId(), attachment.getId(), new IResponseCallback<Void>(dataBaseAdapter.readAccountDirectly(accountId)) {
+ @Override
+ public void onResponse(Void response) {
+ DeckLog.log("deleted Attachment "+attachment.getBasename());
+ }
+ });
+ });
}
}
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 3eec356aa..a905f2bf7 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
@@ -14,6 +14,7 @@ import androidx.annotation.Nullable;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException;
import com.nextcloud.android.sso.exceptions.NoCurrentAccountSelectedException;
+import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -159,7 +160,6 @@ public class ServerAdapter {
public void updateBoard(Board board, IResponseCallback<FullBoard> responseCallback) {
ensureInternetConnection();
RequestHelper.request(sourceActivity, provider, () -> provider.getDeckAPI().updateBoard(board.getId(), board), responseCallback);
-
}
public void createAccessControl(long remoteBoardId, AccessControl acl, IResponseCallback<AccessControl> responseCallback) {
@@ -262,4 +262,14 @@ public class ServerAdapter {
ensureInternetConnection();
RequestHelper.request(sourceActivity, provider, () -> provider.getDeckAPI().moveCard(boardId, movedCard.getCard().getStackId(), movedCard.getCard().getId(), new Reorder(newPosition, (int)newStackId)), responseCallback);
}
+
+ // ## ATTACHMENTS
+ public void uploadAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, File attachment, IResponseCallback<Void> responseCallback) {
+ ensureInternetConnection();
+ RequestHelper.request(sourceActivity, provider, () -> provider.getDeckAPI().uploadAttachment(remoteBoardId, remoteStackId, remoteCardId, attachment), responseCallback);
+ }
+ public void deleteAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, IResponseCallback<Void> responseCallback) {
+ ensureInternetConnection();
+ RequestHelper.request(sourceActivity, provider, () -> provider.getDeckAPI().deleteAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
+ }
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
index 79fb70c11..c477393a4 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
@@ -475,6 +475,10 @@ public class DataBaseAdapter {
return db.getAttachmentDao().getAttachmentByRemoteIdDirectly(accountId, id);
}
+ public Attachment getAttachmentByLocalIdDirectly(long accountId, Long id) {
+ return db.getAttachmentDao().getAttachmentByLocalIdDirectly(accountId, id);
+ }
+
public long createAttachment(long accountId, Attachment attachment) {
attachment.setAccountId(accountId);
return db.getAttachmentDao().insert(attachment);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AttachmentDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AttachmentDao.java
index 6c56429be..7899ed261 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AttachmentDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AttachmentDao.java
@@ -15,4 +15,7 @@ public interface AttachmentDao extends GenericDao<Attachment> {
@Query("SELECT * FROM attachment where accountId = :accountId and id = :remoteId")
Attachment getAttachmentByRemoteIdDirectly(long accountId, Long remoteId);
+
+ @Query("SELECT * FROM attachment where accountId = :accountId and localId = :id")
+ Attachment getAttachmentByLocalIdDirectly(long accountId, Long id);
} \ No newline at end of file