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>2023-03-01 14:43:53 +0300
committerStefan Niedermann <info@niedermann.it>2023-03-09 11:53:19 +0300
commit3ea462ca9e2ae18ba9d869125da8d8d07f2c7854 (patch)
tree30257c67768325d5972ec499a6eb41e11017ac6d /app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java
parentbfab286b0bc6dbfac1211eec64d74b66b2ce1e6d (diff)
refactor: Unidirectional data flow and single point of truth for current state
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java23
1 files changed, 12 insertions, 11 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java
index b4eb17d0e..a69ced0ea 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java
@@ -1,7 +1,6 @@
package it.niedermann.nextcloud.deck.ui.filter;
import static java.util.Objects.requireNonNull;
-import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -13,9 +12,9 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
+import it.niedermann.android.reactivelivedata.ReactiveLiveData;
import it.niedermann.nextcloud.deck.databinding.DialogFilterLabelsBinding;
import it.niedermann.nextcloud.deck.model.Label;
-import it.niedermann.nextcloud.deck.ui.MainViewModel;
public class FilterLabelsFragment extends Fragment implements SelectionListener<Label> {
@@ -26,18 +25,20 @@ public class FilterLabelsFragment extends Fragment implements SelectionListener<
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final var binding = DialogFilterLabelsBinding.inflate(requireActivity().getLayoutInflater());
- final var mainViewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class);
filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class);
- observeOnce(filterViewModel.findProposalsForLabelsToAssign(mainViewModel.getCurrentAccount().getId(), mainViewModel.getCurrentBoardLocalId()), requireActivity(), (labels) -> {
- binding.labels.setNestedScrollingEnabled(false);
- binding.labels.setAdapter(new FilterLabelsAdapter(
- labels,
- requireNonNull(filterViewModel.getFilterInformationDraft().getValue()).getLabels(),
- requireNonNull(filterViewModel.getFilterInformationDraft().getValue()).isNoAssignedLabel(),
- this));
- });
+ new ReactiveLiveData<>(filterViewModel.findProposalsForLabelsToAssign())
+ .combineWith(() -> filterViewModel.getCurrentBoardColor$())
+ .observeOnce(getViewLifecycleOwner(), pair -> {
+ binding.labels.setNestedScrollingEnabled(false);
+ binding.labels.setAdapter(new FilterLabelsAdapter(
+ pair.first,
+ requireNonNull(filterViewModel.getFilterInformationDraft().getValue()).getLabels(),
+ requireNonNull(filterViewModel.getFilterInformationDraft().getValue()).isNoAssignedLabel(),
+ this,
+ pair.second));
+ });
return binding.getRoot();
}