From 34a016d49d0daf7189d235acb565a42803f05417 Mon Sep 17 00:00:00 2001 From: Anmol Gupta <44764339+6point022@users.noreply.github.com> Date: Mon, 16 Mar 2020 15:43:20 +0530 Subject: [PATCH] Change item background according to the theme (#3480) * Change item background according to the theme * Change background colour of item on being selected * Change background colors using XML selectors --- .../nearby/NearbyFilterSearchRecyclerViewAdapter.java | 11 +++++++---- .../res/drawable/linearlayout_color_dark_selector.xml | 6 ++++++ .../main/res/drawable/linearlayout_color_selector.xml | 6 ++++++ app/src/main/res/layout/nearby_search_list_item.xml | 8 +++++--- .../main/res/layout/nearby_search_list_item_dark.xml | 7 ++++--- 5 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 app/src/main/res/drawable/linearlayout_color_dark_selector.xml create mode 100644 app/src/main/res/drawable/linearlayout_color_selector.xml diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapter.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapter.java index efe89db95..c2d4eec9c 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapter.java @@ -70,7 +70,7 @@ public class NearbyFilterSearchRecyclerViewAdapter @NonNull @Override public RecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View itemView = inflater.inflate(callback.isDarkTheme()?R.layout.nearby_search_list_item_dark:R.layout.nearby_search_list_item, parent, false); + View itemView = inflater.inflate(callback.isDarkTheme() ? R.layout.nearby_search_list_item_dark : R.layout.nearby_search_list_item, parent, false); return new RecyclerViewHolder(itemView); } @@ -79,17 +79,20 @@ public class NearbyFilterSearchRecyclerViewAdapter Label label = displayedLabels.get(position); holder.placeTypeIcon.setImageResource(label.getIcon()); holder.placeTypeLabel.setText(label.toString()); + holder.placeTypeLayout.setSelected(label.isSelected()); - holder.placeTypeLayout.setBackgroundColor(label.isSelected() ? ContextCompat.getColor(context, R.color.divider_grey) : callback.isDarkTheme()?Color.BLACK:Color.WHITE); holder.placeTypeLayout.setOnClickListener(view -> { callback.setCheckboxUnknown(); + if (label.isSelected()) { selectedLabels.remove(label); } else { selectedLabels.add(label); } + label.setSelected(!label.isSelected()); - holder.placeTypeLayout.setBackgroundColor(label.isSelected() ? ContextCompat.getColor(context, R.color.divider_grey) : Color.WHITE); + holder.placeTypeLayout.setSelected(label.isSelected()); + callback.filterByMarkerType(selectedLabels, 0, false, false); }); } @@ -165,7 +168,7 @@ public class NearbyFilterSearchRecyclerViewAdapter notifyDataSetChanged(); } - public interface Callback{ + public interface Callback { void setCheckboxUnknown(); diff --git a/app/src/main/res/drawable/linearlayout_color_dark_selector.xml b/app/src/main/res/drawable/linearlayout_color_dark_selector.xml new file mode 100644 index 000000000..ffb78141a --- /dev/null +++ b/app/src/main/res/drawable/linearlayout_color_dark_selector.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/linearlayout_color_selector.xml b/app/src/main/res/drawable/linearlayout_color_selector.xml new file mode 100644 index 000000000..f11c4a93a --- /dev/null +++ b/app/src/main/res/drawable/linearlayout_color_selector.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/nearby_search_list_item.xml b/app/src/main/res/layout/nearby_search_list_item.xml index b6261e80b..439e6fe70 100644 --- a/app/src/main/res/layout/nearby_search_list_item.xml +++ b/app/src/main/res/layout/nearby_search_list_item.xml @@ -1,18 +1,20 @@ + + android:padding="@dimen/tiny_margin" + android:background="@drawable/linearlayout_color_selector"> + android:layout_height="wrap_content"/> + android:layout_height="wrap_content"/> \ No newline at end of file diff --git a/app/src/main/res/layout/nearby_search_list_item_dark.xml b/app/src/main/res/layout/nearby_search_list_item_dark.xml index fd87641f3..e62ab7b42 100644 --- a/app/src/main/res/layout/nearby_search_list_item_dark.xml +++ b/app/src/main/res/layout/nearby_search_list_item_dark.xml @@ -4,16 +4,17 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/tiny_margin" - android:orientation="horizontal"> + android:orientation="horizontal" + android:background="@drawable/linearlayout_color_dark_selector"> + android:layout_height="wrap_content"/> + android:textColor="@color/white"/> \ No newline at end of file