From 0a8a813ca6d9766ff50c1151845363e1235e2064 Mon Sep 17 00:00:00 2001 From: Stefan Niedermann Date: Tue, 5 May 2020 10:28:52 +0200 Subject: Remember last filter tab --- .../nextcloud/deck/ui/filter/FilterDialogFragment.java | 11 +++++++++++ .../nextcloud/deck/ui/filter/FilterViewModel.java | 16 +++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/filter') diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java index 0ea8f26cc..fa2a602a3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java @@ -12,6 +12,7 @@ import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModelProvider; import androidx.viewpager2.adapter.FragmentStateAdapter; +import androidx.viewpager2.widget.ViewPager2; import com.google.android.material.tabs.TabLayoutMediator; @@ -83,6 +84,16 @@ public class FilterDialogFragment extends BrandedDialogFragment { tab.setText(tabTitles[position]); }).attach(); + binding.viewPager.post(() -> { + binding.viewPager.setCurrentItem(filterViewModel.getCurrentFilterTab(), false); + binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageSelected(int position) { + super.onPageSelected(position); + filterViewModel.setCurrentFilterTab(position); + } + }); + }); filterViewModel.createFilterInformationDraft(); return dialogBuilder diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java index e5734bdda..cf8dc1754 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java @@ -1,5 +1,6 @@ package it.niedermann.nextcloud.deck.ui.filter; +import androidx.annotation.IntRange; import androidx.annotation.NonNull; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; @@ -15,6 +16,9 @@ import static it.niedermann.nextcloud.deck.model.internal.FilterInformation.hasA @SuppressWarnings("WeakerAccess") public class FilterViewModel extends ViewModel { + @IntRange(from = 0, to = 2) + private int currentFilterTab = 0; + @NonNull private MutableLiveData filterInformationDraft = new MutableLiveData<>(new FilterInformation()); @NonNull @@ -25,8 +29,9 @@ public class FilterViewModel extends ViewModel { } public void clearFilterInformation() { - this.filterInformationDraft.postValue(new FilterInformation()); + this.filterInformationDraft.setValue(new FilterInformation()); this.publishFilterInformationDraft(); + this.currentFilterTab = 0; } @NonNull @@ -72,4 +77,13 @@ public class FilterViewModel extends ViewModel { newDraft.removeUser(user); this.filterInformationDraft.postValue(newDraft); } + + public void setCurrentFilterTab(@IntRange(from = 0, to = 2) int newFilterTab) { + this.currentFilterTab = newFilterTab; + } + + @IntRange(from = 0, to = 2) + public int getCurrentFilterTab() { + return this.currentFilterTab; + } } -- cgit v1.2.3