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:
authorStefan Niedermann <info@niedermann.it>2020-12-14 21:29:01 +0300
committerStefan Niedermann <info@niedermann.it>2020-12-14 21:29:01 +0300
commit8d70af862c3644e12ad4913cf0aa42b33f4132e8 (patch)
treeed6b94a0faebf509c9462221586a6a64b4f2f2e9 /app/src/main
parent2a2d93940491faf9ff043736747676d00a7d6e11 (diff)
Minor stuff
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java1
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java55
3 files changed, 37 insertions, 28 deletions
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 e45f1a73d..99899db63 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
@@ -61,6 +61,7 @@ import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment;
import it.niedermann.nextcloud.deck.model.ocs.comment.OcsComment;
import it.niedermann.nextcloud.deck.model.ocs.comment.full.FullDeckComment;
import it.niedermann.nextcloud.deck.model.ocs.projects.OcsProjectResource;
+import it.niedermann.nextcloud.deck.model.widget.filter.EWidgetType;
import it.niedermann.nextcloud.deck.model.widget.filter.FilterWidget;
import it.niedermann.nextcloud.deck.model.widget.filter.dto.FilterWidgetCard;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.ServerAdapter;
@@ -1988,6 +1989,14 @@ public class SyncManager {
});
}
+ public List<Integer> getFilterWidgetIDsByType(EWidgetType type) {
+ return dataBaseAdapter.getFilterWidgetIDsByType(type);
+ }
+
+ public boolean filterWidgetExists(int id) {
+ return dataBaseAdapter.filterWidgetExists(id);
+ }
+
@WorkerThread
public void getCardsForFilterWidget(@NonNull Integer filterWidgetId, @NonNull IResponseCallback<List<FilterWidgetCard>> callback) {
doAsync(() -> {
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 71f86c3df..7a333174a 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
@@ -456,6 +456,7 @@ public class DataBaseAdapter {
public WrappedLiveData<Account> createAccount(Account account) {
return LiveDataHelper.wrapInLiveData(() -> {
long id = db.getAccountDao().insert(account);
+ // TODO Add account to UpcomingWidgets
return readAccountDirectly(id);
});
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java
index 9de8933ef..22e338298 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java
@@ -6,7 +6,6 @@ import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.database.sqlite.SQLiteConstraintException;
import android.net.Uri;
import android.widget.RemoteViews;
@@ -80,36 +79,36 @@ public class UpcomingWidget extends AppWidgetProvider {
for (int appWidgetId : appWidgetIds) {
new Thread(() -> {
- List<Account> accountsList = syncManager.readAccountsDirectly();
- final FilterWidget config = new FilterWidget();
- config.setWidgetType(EWidgetType.UPCOMING_WIDGET);
- config.setId(appWidgetId);
- config.setAccounts(accountsList.stream().map(account -> {
- final FilterWidgetAccount fwa = new FilterWidgetAccount();
- fwa.setAccountId(account.getId());
- final FilterWidgetUser fwu = new FilterWidgetUser();
- fwu.setUserId(syncManager.getUserByUidDirectly(account.getId(), account.getUserName()).getId());
- fwa.setUsers(Collections.singletonList(fwu));
- return fwa;
- }).collect(Collectors.toList()));
- syncManager.createFilterWidget(config, new IResponseCallback<Integer>(null) {
- @Override
- public void onResponse(Integer response) {
- updateAppWidget(context, appWidgetManager, appWidgetIds);
- }
-
- @Override
- public void onError(Throwable throwable) {
- super.onError(throwable);
- // FIXME check before inserting...
- if (throwable.getClass().equals(SQLiteConstraintException.class)) {
- DeckLog.error("Already exists, update instead.");
+ if (syncManager.filterWidgetExists(appWidgetId)) {
+ DeckLog.verbose(UpcomingWidget.class.getSimpleName() + "with id " + appWidgetId + " already exists, update instead.");
+ updateAppWidget(context, appWidgetManager, appWidgetIds);
+ } else {
+ final List<Account> accountsList = syncManager.readAccountsDirectly();
+ final FilterWidget config = new FilterWidget();
+ config.setWidgetType(EWidgetType.UPCOMING_WIDGET);
+ config.setId(appWidgetId);
+ config.setAccounts(accountsList.stream().map(account -> {
+ final FilterWidgetAccount fwa = new FilterWidgetAccount();
+ fwa.setAccountId(account.getId());
+ final FilterWidgetUser fwu = new FilterWidgetUser();
+ fwu.setUserId(syncManager.getUserByUidDirectly(account.getId(), account.getUserName()).getId());
+ fwa.setUsers(Collections.singletonList(fwu));
+ return fwa;
+ }).collect(Collectors.toList()));
+ syncManager.createFilterWidget(config, new IResponseCallback<Integer>(null) {
+ @Override
+ public void onResponse(Integer response) {
+ DeckLog.verbose("Created " + UpcomingWidget.class.getSimpleName() + "with id " + appWidgetId);
updateAppWidget(context, appWidgetManager, appWidgetIds);
- } else {
+ }
+
+ @Override
+ public void onError(Throwable throwable) {
+ super.onError(throwable);
onDeleted(context, appWidgetIds);
}
- }
- });
+ });
+ }
}).start();
}
}