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-04-24 10:30:59 +0300
committerNiedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com>2020-04-24 15:12:11 +0300
commit4a7f37694e49a0e5635e9695a6464b013c66f09a (patch)
treeaa8069b6a29611767b0711309b7afcd0d28bdb8d
parent4c4e41ac299e753ace433cf0e603332b175ba2ca (diff)
#396 Filter cards
Select labels
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java1
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java27
-rw-r--r--app/src/main/res/drawable/selected.xml2
-rw-r--r--app/src/main/res/layout/item_label.xml39
-rw-r--r--app/src/main/res/layout/item_user.xml12
6 files changed, 65 insertions, 19 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java
index 3b95b43c8..cd20d62cb 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java
@@ -55,8 +55,7 @@ public class LabelAutoCompleteAdapter extends AutoCompleteAdapter<Label> {
}
holder.binding.icon.setImageDrawable(
- ViewUtil.getTintedImageView(activity, iconResource, "#" + getItem(position).getColor()
- ));
+ ViewUtil.getTintedImageView(activity, iconResource, "#" + getItem(position).getColor()));
holder.binding.label.setText(getItem(position).getTitle());
return convertView;
}
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 d25f4d28f..b3b3eea47 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
@@ -128,6 +128,7 @@ public class FilterDialogFragment extends BrandedDialogFragment {
.setNeutralButton(android.R.string.cancel, null)
.setNegativeButton(R.string.simple_clear, (a, b) -> viewModel.postFilterInformation(null))
.setPositiveButton(R.string.simple_filter, (a, b) -> {
+ // Nach dieser Zeile ist labelAdapter.getSelected() leer
filterInformation.clearLabelIds();
filterInformation.addAllLabelIds(labelAdapter.getSelected());
viewModel.postFilterInformation(filterInformation);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java
index 1105de814..184603bb6 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java
@@ -10,21 +10,27 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import java.util.ArrayList;
import java.util.List;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.model.Label;
+import it.niedermann.nextcloud.deck.util.ViewUtil;
+@SuppressWarnings("WeakerAccess")
public class LabelFilterAdapter extends RecyclerView.Adapter<LabelFilterAdapter.LabelViewHolder> {
- private Context context;
- private List<Label> labels;
- private List<Long> selectedLabelIds;
+ @NonNull
+ private final Context context;
+ @NonNull
+ private final List<Label> labels = new ArrayList<>();
+ @NonNull
+ private final List<Long> selectedLabelIds = new ArrayList<>();
public LabelFilterAdapter(@NonNull Context context, @NonNull List<Label> labels, @NonNull List<Long> selectedLabelIds) {
super();
this.context = context;
- this.labels = labels;
- this.selectedLabelIds = selectedLabelIds;
+ this.labels.addAll(labels);
+ this.selectedLabelIds.addAll(selectedLabelIds);
setHasStableIds(true);
notifyDataSetChanged();
}
@@ -37,13 +43,13 @@ public class LabelFilterAdapter extends RecyclerView.Adapter<LabelFilterAdapter.
@NonNull
@Override
public LabelViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
- View view = LayoutInflater.from(context).inflate(R.layout.item_user, viewGroup, false);
+ View view = LayoutInflater.from(context).inflate(R.layout.item_label, viewGroup, false);
return new LabelViewHolder(view);
}
@Override
- public void onBindViewHolder(@NonNull LabelViewHolder multiViewHolder, int position) {
- multiViewHolder.bind(labels.get(position));
+ public void onBindViewHolder(@NonNull LabelViewHolder viewHolder, int position) {
+ viewHolder.bind(labels.get(position));
}
@Override
@@ -57,17 +63,18 @@ public class LabelFilterAdapter extends RecyclerView.Adapter<LabelFilterAdapter.
class LabelViewHolder extends RecyclerView.ViewHolder {
+ // TODO Use ViewBinding
private TextView textView;
private ImageView imageView;
LabelViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.displayname);
- imageView = itemView.findViewById(R.id.avatar);
+ imageView = itemView.findViewById(R.id.label);
}
void bind(final Label label) {
- imageView.setVisibility(selectedLabelIds.contains(label.getLocalId()) ? View.VISIBLE : View.GONE);
+ imageView.setImageDrawable(ViewUtil.getTintedImageView(imageView.getContext(), R.drawable.ic_label_grey600_24dp, "#" + label.getColor()));
textView.setText(label.getTitle());
itemView.setOnClickListener(view -> {
diff --git a/app/src/main/res/drawable/selected.xml b/app/src/main/res/drawable/selected.xml
index cc62aec0d..cb301fd84 100644
--- a/app/src/main/res/drawable/selected.xml
+++ b/app/src/main/res/drawable/selected.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:enterFadeDuration="@android:integer/config_shortAnimTime" android:state_activated="true">
+ <item android:enterFadeDuration="@android:integer/config_shortAnimTime" android:state_selected="true">
<layer-list>
<item>
<shape android:shape="oval">
diff --git a/app/src/main/res/layout/item_label.xml b/app/src/main/res/layout/item_label.xml
new file mode 100644
index 000000000..5817d0c6a
--- /dev/null
+++ b/app/src/main/res/layout/item_label.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?attr/selectableItemBackground"
+ android:orientation="horizontal"
+ android:padding="@dimen/spacer_1x">
+
+ <FrameLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:layout_width="22dp"
+ android:layout_height="22dp"
+ android:layout_gravity="end|bottom"
+ android:background="@drawable/selected" />
+
+ <ImageView
+ android:id="@+id/label"
+ android:layout_width="@dimen/avatar_size"
+ android:layout_height="@dimen/avatar_size"
+ android:layout_marginEnd="@dimen/spacer_2x"
+ android:layout_marginRight="@dimen/spacer_2x"
+ android:contentDescription="@null"
+ app:srcCompat="@drawable/ic_label_grey600_24dp" />
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/displayname"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:textSize="16sp"
+ tools:text="@tools:sample/lorem" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/item_user.xml b/app/src/main/res/layout/item_user.xml
index 7d2f584f4..c6ccf607f 100644
--- a/app/src/main/res/layout/item_user.xml
+++ b/app/src/main/res/layout/item_user.xml
@@ -11,6 +11,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content">
+ <androidx.appcompat.widget.AppCompatImageView
+ android:layout_width="22dp"
+ android:layout_height="22dp"
+ android:layout_gravity="end|bottom"
+ android:background="@drawable/selected" />
+
<ImageView
android:id="@+id/avatar"
android:layout_width="@dimen/avatar_size"
@@ -20,12 +26,6 @@
android:contentDescription="@null"
app:srcCompat="@drawable/ic_person_grey600_24dp"
tools:srcCompat="@tools:sample/avatars" />
-
- <androidx.appcompat.widget.AppCompatImageView
- android:layout_width="22dp"
- android:layout_height="22dp"
- android:layout_gravity="end|bottom"
- android:background="@drawable/selected" />
</FrameLayout>
<TextView