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:
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/database/DataBaseAdapter.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/database/DataBaseAdapter.java39
1 files changed, 27 insertions, 12 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/database/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/database/DataBaseAdapter.java
index 5d3b28950..a95ab7a8c 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/database/DataBaseAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/database/DataBaseAdapter.java
@@ -60,6 +60,7 @@ import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.User;
import it.niedermann.nextcloud.deck.model.appwidgets.StackWidgetModel;
import it.niedermann.nextcloud.deck.model.enums.DBStatus;
+import it.niedermann.nextcloud.deck.model.enums.EDoneType;
import it.niedermann.nextcloud.deck.model.enums.EDueType;
import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.model.full.FullCard;
@@ -259,9 +260,9 @@ public class DataBaseAdapter {
public LiveData<List<FullCard>> getFullCardsForStack(long accountId, long localStackId, @Nullable FilterInformation filter) {
return new ReactiveLiveData<>(
- filter == null
- ? db.getCardDao().getFullCardsForStack(accountId, localStackId)
- : db.getCardDao().getFilteredFullCardsForStack(getQueryForFilter(filter, accountId, localStackId)))
+ FilterInformation.hasActiveFilter(filter)
+ ? db.getCardDao().getFilteredFullCardsForStack(getQueryForFilter(filter, accountId, localStackId))
+ : db.getCardDao().getFullCardsForStack(accountId, localStackId))
.tap(this::filterRelationsForCard, executor)
.distinctUntilChanged();
@@ -284,9 +285,9 @@ public class DataBaseAdapter {
@WorkerThread
public List<FullCard> getFullCardsForStackDirectly(long accountId, long localStackId, @Nullable FilterInformation filter) {
- return filter == null
- ? db.getCardDao().getFullCardsForStackDirectly(accountId, localStackId)
- : db.getCardDao().getFilteredFullCardsForStackDirectly(getQueryForFilter(filter, accountId, localStackId));
+ return FilterInformation.hasActiveFilter(filter)
+ ? db.getCardDao().getFilteredFullCardsForStackDirectly(getQueryForFilter(filter, accountId, localStackId))
+ : db.getCardDao().getFullCardsForStackDirectly(accountId, localStackId);
}
@AnyThread
@@ -351,24 +352,38 @@ public class DataBaseAdapter {
if (filter.getDueType() != EDueType.NO_FILTER) {
switch (filter.getDueType()) {
case NO_DUE:
- query.append("and c.dueDate is null");
+ query.append("and c.dueDate is null ");
break;
case OVERDUE:
- query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') <= datetime('now', 'localtime')");
+ query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') <= datetime('now', 'localtime') ");
break;
case TODAY:
- query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') between datetime('now', 'localtime') and datetime('now', '+24 hour', 'localtime')");
+ query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') between datetime('now', 'localtime') and datetime('now', '+24 hour', 'localtime') ");
break;
case WEEK:
- query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') between datetime('now', 'localtime') and datetime('now', '+7 day', 'localtime')");
+ query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') between datetime('now', 'localtime') and datetime('now', '+7 day', 'localtime') ");
break;
case MONTH:
- query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') between datetime('now', 'localtime') and datetime('now', '+30 day', 'localtime')");
+ query.append("and datetime(c.duedate/1000, 'unixepoch', 'localtime') between datetime('now', 'localtime') and datetime('now', '+30 day', 'localtime') ");
break;
default:
- throw new IllegalArgumentException("You need to add your new EDueType value\"" + filter.getDueType() + "\" here!");
+ throw new IllegalArgumentException("You need to add your new " + EDueType.class.getSimpleName() + " value\"" + filter.getDueType() + "\" here!");
}
}
+
+ if (filter.getDoneType() != EDoneType.NO_FILTER) {
+ switch (filter.getDoneType()) {
+ case DONE:
+ query.append("and (c.done is not null and c.done != 0) ");
+ break;
+ case UNDONE:
+ query.append("and (c.done is null or c.done = 0) ");
+ break;
+ default:
+ throw new IllegalArgumentException("You need to add your new " + EDoneType.class.getSimpleName() + " value\"" + filter.getDueType() + "\" here!");
+ }
+ }
+
if (!TextUtils.isEmpty(filter.getFilterText())) {
query.append(" and (c.description like ? or c.title like ?) ");
String filterText = "%" + filter.getFilterText() + "%";