diff options
author | Stefan Niedermann <info@niedermann.it> | 2022-10-02 09:36:43 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2022-10-02 09:36:43 +0300 |
commit | c6ff92ef1295a71f8158468661ab5ed60d79cb45 (patch) | |
tree | a1273b857c03e7ccf56136f5411e2976a85ff015 /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java | |
parent | 79e5825204bf979da825e085ea9b7cc21be2ec28 (diff) |
🎨 Fix constraint violation when a user has been assigned to a board multiple times
Signed-off-by: Stefan Niedermann <info@niedermann.it>
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.java | 7 |
1 files changed, 6 insertions, 1 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 790d3a1d5..5c438c421 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 @@ -5,6 +5,7 @@ import static androidx.lifecycle.Transformations.distinctUntilChanged; import android.appwidget.AppWidgetManager; import android.content.Context; import android.content.Intent; +import android.database.sqlite.SQLiteConstraintException; import androidx.annotation.AnyThread; import androidx.annotation.ColorInt; @@ -500,7 +501,11 @@ public class DataBaseAdapter { final UserInBoard relation = new UserInBoard(); relation.setBoardId(localBoardId); relation.setUserId(localUserId); - db.getUserInBoardDao().insert(relation); + try { + db.getUserInBoardDao().insert(relation); + } catch (SQLiteConstraintException e) { + // do nothing, since link already exists (→ only constraint that can fail: unique board ↔ user) + } } public void updateLabel(Label label, boolean setStatus) { |