diff options
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CommentsViewModel.java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CommentsViewModel.java | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CommentsViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CommentsViewModel.java index f7fd247a9..dada94d5b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CommentsViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CommentsViewModel.java @@ -1,15 +1,30 @@ package it.niedermann.nextcloud.deck.ui.card.comments; +import android.app.Application; + +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; +import java.util.List; + +import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment; import it.niedermann.nextcloud.deck.model.ocs.comment.full.FullDeckComment; +import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; +import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData; @SuppressWarnings("WeakerAccess") -public class CommentsViewModel extends ViewModel { +public class CommentsViewModel extends AndroidViewModel { - private MutableLiveData<FullDeckComment> replyToComment = new MutableLiveData<>(); + private final SyncManager syncManager; + + private final MutableLiveData<FullDeckComment> replyToComment = new MutableLiveData<>(); + + public CommentsViewModel(@NonNull Application application) { + super(application); + this.syncManager = new SyncManager(application); + } public void setReplyToComment(FullDeckComment replyToComment) { this.replyToComment.postValue(replyToComment); @@ -18,4 +33,20 @@ public class CommentsViewModel extends ViewModel { public LiveData<FullDeckComment> getReplyToComment() { return this.replyToComment; } + + public LiveData<List<FullDeckComment>> getFullCommentsForLocalCardId(long localCardId) { + return syncManager.getFullCommentsForLocalCardId(localCardId); + } + + public void addCommentToCard(long accountId, long cardId, @NonNull DeckComment comment) { + syncManager.addCommentToCard(accountId, cardId, comment); + } + + public void updateComment(long accountId, long localCardId, long localCommentId, String comment) { + syncManager.updateComment(accountId, localCardId, localCommentId, comment); + } + + public WrappedLiveData<Void> deleteComment(long accountId, long localCardId, long localCommentId) { + return syncManager.deleteComment(accountId, localCardId, localCommentId); + } } |