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-01-13 17:07:58 +0300
committerdesperateCoder <echotodevnull@gmail.com>2019-01-13 17:07:58 +0300
commitac59e26f1681e12edd0792658db6fb92fbbace2d (patch)
treeb54683fedce682de5082fcd48a370ed93087f3b3 /app/src/main/java/it/niedermann/nextcloud/deck/persistence
parent400c40d96072b9c5393c048554ac783ce8b0978a (diff)
fixed bunch of bugs (still WIP)
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java31
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java8
6 files changed, 45 insertions, 17 deletions
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 a5395711b..878a67e95 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
@@ -16,6 +16,7 @@ import it.niedermann.nextcloud.deck.api.RequestHelper;
import it.niedermann.nextcloud.deck.model.Board;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.Stack;
+import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
@@ -57,7 +58,7 @@ public class ServerAdapter {
// return lastSync;
}
- public void getBoards(long accountId, IResponseCallback<List<Board>> responseCallback) {
+ public void getBoards(long accountId, IResponseCallback<List<FullBoard>> responseCallback) {
RequestHelper.request(sourceActivity, provider, () -> provider.getAPI().getBoards(getLastSyncDateFormatted()), 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 8a2e297b7..3ef0619fd 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
@@ -15,6 +15,7 @@ import it.niedermann.nextcloud.deck.model.JoinStackWithCard;
import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.User;
+import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
@@ -48,6 +49,9 @@ public class DataBaseAdapter {
public Board getBoardByRemoteIdDirectly(long accountId, long remoteId) {
return db.getBoardDao().getBoardByRemoteIdDirectly(accountId, remoteId);
}
+ public FullBoard getFullBoardByRemoteIdDirectly(long accountId, long remoteId) {
+ return db.getBoardDao().getFullBoardByRemoteIdDirectly(accountId, remoteId);
+ }
public LiveData<Stack> getStackByRemoteId(long accountId, long localBoardId, long remoteId) {
@@ -78,7 +82,10 @@ public class DataBaseAdapter {
}
public User getUserByRemoteIdDirectly(long accountId, long remoteId) {
- return db.getUserDao().getUsersByRemoteIdDirectly(accountId, remoteId);
+ return db.getUserDao().getUserByRemoteIdDirectly(accountId, remoteId);
+ }
+ public User getUserByUidDirectly(long accountId, String uid) {
+ return db.getUserDao().getUserByUidDirectly(accountId, uid);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java
index 12e884d31..0d1737d02 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java
@@ -3,10 +3,12 @@ package it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao;
import android.arch.lifecycle.LiveData;
import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Query;
+import android.arch.persistence.room.Transaction;
import java.util.List;
import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.model.full.FullBoard;
@Dao
public interface BoardDao extends GenericDao<Board> {
@@ -19,4 +21,8 @@ public interface BoardDao extends GenericDao<Board> {
@Query("SELECT * FROM board WHERE accountId = :accountId and id = :remoteId")
Board getBoardByRemoteIdDirectly(long accountId, long remoteId);
+
+ @Transaction
+ @Query("SELECT * FROM board WHERE accountId = :accountId and id = :remoteId")
+ FullBoard getFullBoardByRemoteIdDirectly(long accountId, long remoteId);
} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java
index d54f318e7..c3ffa96ad 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java
@@ -18,6 +18,9 @@ public interface UserDao extends GenericDao<User> {
LiveData<User> getUsersByRemoteId(final long accountId, final long remoteId);
@Query("SELECT * FROM user WHERE accountId = :accountId and id = :remoteId")
- User getUsersByRemoteIdDirectly(final long accountId, final long remoteId);
+ User getUserByRemoteIdDirectly(final long accountId, final long remoteId);
+
+ @Query("SELECT * FROM user WHERE accountId = :accountId and uid = :uid")
+ User getUserByUidDirectly(final long accountId, final String uid);
} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java
index 5d5cee46a..44dfb0879 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java
@@ -3,34 +3,45 @@ package it.niedermann.nextcloud.deck.persistence.sync.helpers.providers;
import java.util.List;
import it.niedermann.nextcloud.deck.api.IResponseCallback;
-import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.model.User;
+import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.ServerAdapter;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.DataBaseAdapter;
import it.niedermann.nextcloud.deck.persistence.sync.helpers.SyncHelper;
-public class BoardDataProvider implements IDataProvider<Board> {
+public class BoardDataProvider implements IDataProvider<FullBoard> {
@Override
- public void getAllFromServer(ServerAdapter serverAdapter, long accountId, IResponseCallback<List<Board>> responder) {
+ public void getAllFromServer(ServerAdapter serverAdapter, long accountId, IResponseCallback<List<FullBoard>> responder) {
serverAdapter.getBoards(accountId, responder);
}
@Override
- public Board getSingleFromDB(DataBaseAdapter dataBaseAdapter, long accountId, long remoteId) {
- return dataBaseAdapter.getBoardByRemoteIdDirectly(accountId, remoteId);
+ public FullBoard getSingleFromDB(DataBaseAdapter dataBaseAdapter, long accountId, long remoteId) {
+ return dataBaseAdapter.getFullBoardByRemoteIdDirectly(accountId, remoteId);
}
@Override
- public void createInDB(DataBaseAdapter dataBaseAdapter, long accountId, Board entity) {
- dataBaseAdapter.createBoard(accountId, entity);
+ public void createInDB(DataBaseAdapter dataBaseAdapter, long accountId, FullBoard entity) {
+ if (entity.getOwner()!=null && entity.getOwner().size() == 1) {
+ User remoteOwner = entity.getOwner().get(0);
+ User owner = dataBaseAdapter.getUserByUidDirectly(accountId, remoteOwner.getUid());
+ if (owner == null){
+ dataBaseAdapter.createUser(accountId, remoteOwner);
+ }
+ owner = dataBaseAdapter.getUserByUidDirectly(accountId, remoteOwner.getUid());
+ entity.getBoard().setOwnerId(owner.getLocalId());
+ }
+
+ dataBaseAdapter.createBoard(accountId, entity.getBoard());
}
@Override
- public void updateInDB(DataBaseAdapter dataBaseAdapter, long accountId, Board entity) {
- dataBaseAdapter.updateBoard(entity);
+ public void updateInDB(DataBaseAdapter dataBaseAdapter, long accountId, FullBoard entity) {
+ dataBaseAdapter.updateBoard(entity.getBoard());
}
@Override
- public void goDeeper(SyncHelper syncHelper, Board entityFromServer) {
+ public void goDeeper(SyncHelper syncHelper, FullBoard entityFromServer) {
syncHelper.doSyncFor(new StackDataProvider(entityFromServer));
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java
index 219b62b62..663a952fb 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java
@@ -3,16 +3,16 @@ package it.niedermann.nextcloud.deck.persistence.sync.helpers.providers;
import java.util.List;
import it.niedermann.nextcloud.deck.api.IResponseCallback;
-import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.ServerAdapter;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.DataBaseAdapter;
import it.niedermann.nextcloud.deck.persistence.sync.helpers.SyncHelper;
public class StackDataProvider implements IDataProvider<FullStack> {
- private Board board;
+ private FullBoard board;
- public StackDataProvider(Board board) {
+ public StackDataProvider(FullBoard board) {
this.board = board;
}
@@ -38,6 +38,6 @@ public class StackDataProvider implements IDataProvider<FullStack> {
@Override
public void goDeeper(SyncHelper syncHelper, FullStack entityFromServer) {
- syncHelper.doSyncFor(new CardDataProvider(board, entityFromServer));
+ syncHelper.doSyncFor(new CardDataProvider(board.getBoard(), entityFromServer));
}
}