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:
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java8
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java16
-rw-r--r--app/src/main/res/values/strings.xml4
4 files changed, 32 insertions, 0 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 293fcd8ab..eefd50df8 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
@@ -628,6 +628,10 @@ public class SyncManager {
return dataBaseAdapter.countCardsInStack(accountId, localStackId);
}
+ public LiveData<Integer> countCardsWithLabel(long accountId, long localLabelId) {
+ return dataBaseAdapter.countCardsWithLabel(accountId, localLabelId);
+ }
+
// TODO implement, see https://github.com/stefan-niedermann/nextcloud-deck/issues/395
public LiveData<List<FullCard>> getArchivedFullCardsForBoard(long accountId, long localBoardId) {
MutableLiveData<List<FullCard>> dummyData = new MutableLiveData<>();
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 08907a1b6..adecfafb0 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
@@ -4,6 +4,7 @@ import android.content.Context;
import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
import androidx.sqlite.db.SimpleSQLiteQuery;
import org.jetbrains.annotations.NotNull;
@@ -791,4 +792,11 @@ public class DataBaseAdapter {
public LiveData<Integer> countCardsInStack(long accountId, long localStackId) {
return db.getCardDao().countCardsInStack(accountId, localStackId);
}
+
+ public LiveData<Integer> countCardsWithLabel(long accountId, long localStackId) {
+ // TODO implement
+ MutableLiveData<Integer> testLiveData = new MutableLiveData<>();
+ testLiveData.postValue(5);
+ return testLiveData;
+ }
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java
index d2d2f0fe3..1b2bb64c6 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java
@@ -22,6 +22,7 @@ import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiv
import it.niedermann.nextcloud.deck.ui.MainViewModel;
import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder;
+import it.niedermann.nextcloud.deck.ui.branding.BrandedDeleteAlertDialogBuilder;
import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
@@ -123,6 +124,21 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements
@Override
public void requestDelete(@NonNull Label label) {
+ observeOnce(syncManager.countCardsWithLabel(viewModel.getCurrentAccount().getId(), label.getLocalId()), this, (count) -> {
+ if (count > 0) {
+ new BrandedDeleteAlertDialogBuilder(requireContext())
+ .setTitle(getString(R.string.delete_something, label.getTitle()))
+ .setMessage(getResources().getQuantityString(R.plurals.do_you_want_to_delete_the_label, count, count))
+ .setPositiveButton(R.string.simple_delete, (dialog, which) -> deleteLabel(label))
+ .setNeutralButton(android.R.string.cancel, null)
+ .show();
+ } else {
+ deleteLabel(label);
+ }
+ });
+ }
+
+ private void deleteLabel(@NonNull Label label) {
final WrappedLiveData<Void> deleteLiveData = syncManager.deleteLabel(label);
observeOnce(deleteLiveData, this, (v) -> {
if (deleteLiveData.hasError()) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6b618c1a1..6258a0ff7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -142,6 +142,10 @@
<item quantity="one">This will permanently delete %1$d card of this list.</item>
<item quantity="other">This will permanently delete all %1$d cards of this list.</item>
</plurals>
+ <plurals name="do_you_want_to_delete_the_label">
+ <item quantity="one">This will remove the label from %1$d card.</item>
+ <item quantity="other">This will remove the label from %1$d cards.</item>
+ </plurals>
<string name="add_a_new_list_using_the_button">Add a new list using the + button</string>
<string name="add_a_new_card_using_the_button">Add a new card using the + button</string>
<string name="update_deck">Update deck</string>