From 7d349fae5fce71762dcfa1aa7844ccc2c759834d Mon Sep 17 00:00:00 2001 From: Stefan Niedermann Date: Wed, 8 Jul 2020 13:47:21 +0200 Subject: #579 Compact mode - refactoring --- .../deck/ui/view/labellayout/LabelLayout.java | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java') diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java new file mode 100644 index 000000000..9a1d60021 --- /dev/null +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java @@ -0,0 +1,94 @@ +package it.niedermann.nextcloud.deck.ui.view.labellayout; + +import android.content.Context; +import android.util.AttributeSet; + +import androidx.annotation.NonNull; +import androidx.annotation.Px; + +import com.google.android.flexbox.FlexboxLayout; + +import java.util.LinkedList; +import java.util.List; + +import it.niedermann.nextcloud.deck.DeckLog; +import it.niedermann.nextcloud.deck.R; +import it.niedermann.nextcloud.deck.model.Label; +import it.niedermann.nextcloud.deck.ui.view.labelchip.LabelChip; + +import static it.niedermann.nextcloud.deck.util.DimensionUtil.dpToPx; + +public abstract class LabelLayout extends FlexboxLayout { + + @Px + final protected int gutter; + @NonNull + final private List chipList = new LinkedList<>(); + + public LabelLayout(Context context, AttributeSet attrs) { + super(context, attrs); + this.gutter = dpToPx(context, R.dimen.spacer_1hx); + } + + /** + * Instead of clearing and adding all labels, one can use this method to avoid flickering + */ + public void updateLabels(@NonNull List