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>2020-05-05 12:17:37 +0300
committerStefan Niedermann <info@niedermann.it>2020-05-05 12:17:37 +0300
commitf7d0edfa3163ecaeb91d734a2bdd2105f2cffd0a (patch)
treeb35637a3bb2a57dac2518decf08ac2d7d71a24b9 /app/src/main/java/it/niedermann/nextcloud/deck/ui/filter
parent0a8a813ca6d9766ff50c1151845363e1235e2064 (diff)
Display indicator for tabs with active filters
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/filter')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java35
1 files changed, 13 insertions, 22 deletions
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 fa2a602a3..389f25141 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
@@ -1,8 +1,11 @@
package it.niedermann.nextcloud.deck.ui.filter;
import android.app.Dialog;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
@@ -28,6 +31,7 @@ public class FilterDialogFragment extends BrandedDialogFragment {
private DialogFilterBinding binding;
private FilterViewModel filterViewModel;
+ private Drawable indicator;
private final static int[] tabTitles = new int[]{
R.string.filter_tags_title,
@@ -40,6 +44,9 @@ public class FilterDialogFragment extends BrandedDialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ indicator = getResources().getDrawable(R.drawable.circle_grey600_8dp);
+ indicator.setColorFilter(getResources().getColor(R.color.primary), PorterDuff.Mode.SRC_ATOP);
+
filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class);
final AlertDialog.Builder dialogBuilder = new BrandedAlertDialogBuilder(requireContext());
@@ -52,31 +59,13 @@ public class FilterDialogFragment extends BrandedDialogFragment {
new TabLayoutMediator(binding.tabLayout, binding.viewPager, (tab, position) -> {
switch (position) {
case 0:
- filterInformationDraft.observe(this, (draft) -> {
- if (draft.getLabels().size() > 0) {
- tab.setIcon(R.drawable.circle_alpha_colorize_36dp);
- } else {
- tab.setIcon(null);
- }
- });
+ filterInformationDraft.observe(this, (draft) -> tab.setIcon(draft.getLabels().size() > 0 ? indicator : null));
break;
case 1:
- filterInformationDraft.observe(this, (draft) -> {
- if (draft.getUsers().size() > 0) {
- tab.setIcon(R.drawable.circle_alpha_colorize_36dp);
- } else {
- tab.setIcon(null);
- }
- });
+ filterInformationDraft.observe(this, (draft) -> tab.setIcon(draft.getUsers().size() > 0 ? indicator : null));
break;
case 2:
- filterInformationDraft.observe(this, (draft) -> {
- if (draft.getDueType() != EDueType.NO_FILTER) {
- tab.setIcon(R.drawable.circle_alpha_colorize_36dp);
- } else {
- tab.setIcon(null);
- }
- });
+ filterInformationDraft.observe(this, (draft) -> tab.setIcon(draft.getDueType() != EDueType.NO_FILTER ? indicator : null));
break;
default:
throw new IllegalStateException("position must be between 0 and 2");
@@ -111,7 +100,9 @@ public class FilterDialogFragment extends BrandedDialogFragment {
@Override
public void applyBrand(int mainColor, int textColor) {
- binding.tabLayout.setSelectedTabIndicatorColor(BrandedActivity.getSecondaryForegroundColorDependingOnTheme(requireContext(), mainColor));
+ @ColorInt int finalMainColor = BrandedActivity.getSecondaryForegroundColorDependingOnTheme(requireContext(), mainColor);
+ binding.tabLayout.setSelectedTabIndicatorColor(finalMainColor);
+ indicator.setColorFilter(finalMainColor, PorterDuff.Mode.SRC_ATOP);
}
private static class TabsPagerAdapter extends FragmentStateAdapter {