diff options
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java | 35 | ||||
-rw-r--r-- | app/src/main/res/drawable/circle_grey600_8dp.xml | 12 |
2 files changed, 25 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 { diff --git a/app/src/main/res/drawable/circle_grey600_8dp.xml b/app/src/main/res/drawable/circle_grey600_8dp.xml new file mode 100644 index 000000000..8f641b82b --- /dev/null +++ b/app/src/main/res/drawable/circle_grey600_8dp.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + + <solid + android:color="#ff757575"/> + + <size + android:width="8dp" + android:height="8dp"/> +</shape>
\ No newline at end of file |