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>2020-12-23 19:07:00 +0300
committerdesperateCoder <echotodevnull@gmail.com>2020-12-23 19:07:00 +0300
commitbd73e331438579388b52d5df4e2373d58c7faee0 (patch)
tree10c1af9933a1ff3f679ffea0ef1b0614b0b53e97 /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
parent3d6421e2291d36451353e823057712c3d713f8e3 (diff)
#597 filter widget: update upcoming widget on account and user add
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java36
1 files changed, 26 insertions, 10 deletions
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 b3ed862d1..335e8b0d8 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
@@ -331,7 +331,23 @@ public class DataBaseAdapter {
public long createUser(long accountId, User user) {
user.setAccountId(accountId);
long newId = db.getUserDao().insert(user);
- notifyFilterWidgetsAboutChangedEntity(FilterWidget.EChangedEntityType.USER, newId);
+ new Thread(() -> {
+ Account account = db.getAccountDao().getAccountByIdDirectly(newId);
+ if (account.getUserName().equals(user.getUid())) {
+ for (FilterWidget widget : getFilterWidgetsByType(EWidgetType.UPCOMING_WIDGET)) {
+ for (FilterWidgetAccount widgetAccount : widget.getAccounts()) {
+ if (widgetAccount.getAccountId() == accountId && widgetAccount.getUsers().isEmpty()) {
+ FilterWidgetUser u = new FilterWidgetUser();
+ u.setFilterAccountId(widgetAccount.getId());
+ u.setUserId(newId);
+ widgetAccount.getUsers().add(u);
+ updateFilterWidgetDirectly(widget);
+ }
+ }
+ }
+ }
+ notifyFilterWidgetsAboutChangedEntity(FilterWidget.EChangedEntityType.USER, newId);
+ }).start();
return newId;
}
@@ -483,15 +499,15 @@ public class DataBaseAdapter {
public WrappedLiveData<Account> createAccount(Account account) {
return LiveDataHelper.wrapInLiveData(() -> {
long id = db.getAccountDao().insert(account);
- notifyFilterWidgetsAboutChangedEntity(FilterWidget.EChangedEntityType.ACCOUNT, id);
-// new Thread(() -> {
-// DeckLog.verbose("Adding new created account " + id + " to all instances of " + EWidgetType.UPCOMING_WIDGET.name());
-// for (FilterWidget widget : getFilterWidgetsByType(EWidgetType.UPCOMING_WIDGET)) {
-// widget.getAccounts().add(new FilterWidgetAccount(id));
-// updateFilterWidgetDirectly(widget);
-// }
-// UpcomingWidget.notifyDatasetChanged(context);
-// }).start();
+
+ new Thread(() -> {
+ DeckLog.verbose("Adding new created account " + id + " to all instances of " + EWidgetType.UPCOMING_WIDGET.name());
+ for (FilterWidget widget : getFilterWidgetsByType(EWidgetType.UPCOMING_WIDGET)) {
+ widget.getAccounts().add(new FilterWidgetAccount(id, false));
+ updateFilterWidgetDirectly(widget);
+ }
+ notifyFilterWidgetsAboutChangedEntity(FilterWidget.EChangedEntityType.ACCOUNT, id);
+ }).start();
return readAccountDirectly(id);
});
}