@@ -26,6 +26,7 @@ import androidx.core.graphics.drawable.DrawableCompat
2626import com.google.android.material.chip.Chip
2727import de.bahnhoefe.deutschlands.bahnhofsfotos.CountryActivity
2828import de.bahnhoefe.deutschlands.bahnhofsfotos.R
29+ import de.bahnhoefe.deutschlands.bahnhofsfotos.databinding.StationFilterBarBinding
2930import de.bahnhoefe.deutschlands.bahnhofsfotos.db.DbAdapter
3031import de.bahnhoefe.deutschlands.bahnhofsfotos.util.PreferencesService
3132import de.bahnhoefe.deutschlands.bahnhofsfotos.util.StationFilter
@@ -39,17 +40,14 @@ class StationFilterBar(
3940 defStyleAttr : Int ,
4041 defStyleRes : Int
4142) : LinearLayout(context, attrs, defStyleAttr, defStyleRes) {
42- private val toggleSort: Chip
43- private val photoFilter: Chip
44- private val activeFilter: Chip
45- private val nicknameFilter: Chip
46- private val countrySelection: Chip
4743 private var listener: OnChangeListener ? = null
4844 private lateinit var context: Context
4945 private lateinit var preferencesService: PreferencesService
5046 private lateinit var dbAdapter: DbAdapter
5147 private lateinit var activity: Activity
5248
49+ private val binding = StationFilterBarBinding .inflate(LayoutInflater .from(context), this , true )
50+
5351 @JvmOverloads
5452 constructor (context: Context , attrs: AttributeSet ? = null , defStyleAttr: Int = 0 ) : this (
5553 context = context,
@@ -59,17 +57,11 @@ class StationFilterBar(
5957 )
6058
6159 init {
62- LayoutInflater .from(context).inflate(R .layout.station_filter_bar, this )
63- toggleSort = findViewById(R .id.toggleSort)
64- toggleSort.setOnClickListener { v: View -> showSortMenu(v) }
65- photoFilter = findViewById(R .id.photoFilter)
66- photoFilter.setOnClickListener { v: View -> showPhotoFilter(v) }
67- activeFilter = findViewById(R .id.activeFilter)
68- activeFilter.setOnClickListener { v: View -> showActiveFilter(v) }
69- nicknameFilter = findViewById(R .id.nicknameFilter)
70- nicknameFilter.setOnClickListener { selectNicknameFilter() }
71- countrySelection = findViewById(R .id.countrySelection)
72- countrySelection.setOnClickListener { selectCountry() }
60+ binding.toggleSort.setOnClickListener { v: View -> showSortMenu(v) }
61+ binding.photoFilter.setOnClickListener { v: View -> showPhotoFilter(v) }
62+ binding.activeFilter.setOnClickListener { v: View -> showActiveFilter(v) }
63+ binding.nicknameFilter.setOnClickListener { selectNicknameFilter() }
64+ binding.countrySelection.setOnClickListener { selectCountry() }
7365 }
7466
7567 private fun setCloseIcon (chip : Chip , icon : Int ) {
@@ -135,25 +127,25 @@ class StationFilterBar(
135127 }
136128 val stationFilter = preferencesService.stationFilter
137129 setChipStatus(
138- photoFilter,
130+ binding. photoFilter,
139131 stationFilter.photoIcon,
140132 stationFilter.isPhotoFilterActive,
141133 R .string.no_text
142134 )
143135 setChipStatus(
144- nicknameFilter,
136+ binding. nicknameFilter,
145137 stationFilter.nicknameIcon,
146138 stationFilter.isNicknameFilterActive,
147139 stationFilter.getNicknameText(activity)
148140 )
149141 setChipStatus(
150- activeFilter,
142+ binding. activeFilter,
151143 stationFilter.activeIcon,
152144 stationFilter.isActiveFilterActive,
153145 stationFilter.activeText
154146 )
155147 setChipStatus(
156- countrySelection,
148+ binding. countrySelection,
157149 R .drawable.ic_countries_active_24px,
158150 true ,
159151 getCountryText(preferencesService)
@@ -180,7 +172,7 @@ class StationFilterBar(
180172 }
181173 }
182174 setChipStatus(
183- activeFilter,
175+ binding. activeFilter,
184176 stationFilter.activeIcon,
185177 stationFilter.isActiveFilterActive,
186178 R .string.no_text
@@ -191,12 +183,12 @@ class StationFilterBar(
191183 setPopupMenuIcons(popup)
192184 popup.setOnDismissListener {
193185 setCloseIcon(
194- activeFilter,
186+ binding. activeFilter,
195187 R .drawable.ic_baseline_arrow_drop_up_24
196188 )
197189 }
198190 popup.show()
199- setCloseIcon(activeFilter, R .drawable.ic_baseline_arrow_drop_down_24)
191+ setCloseIcon(binding. activeFilter, R .drawable.ic_baseline_arrow_drop_down_24)
200192 }
201193
202194 private fun showPhotoFilter (v : View ) {
@@ -218,7 +210,7 @@ class StationFilterBar(
218210 }
219211 }
220212 setChipStatus(
221- photoFilter,
213+ binding. photoFilter,
222214 stationFilter.photoIcon,
223215 stationFilter.isPhotoFilterActive,
224216 R .string.no_text
@@ -229,12 +221,12 @@ class StationFilterBar(
229221 setPopupMenuIcons(popup)
230222 popup.setOnDismissListener {
231223 setCloseIcon(
232- photoFilter,
224+ binding. photoFilter,
233225 R .drawable.ic_baseline_arrow_drop_up_24
234226 )
235227 }
236228 popup.show()
237- setCloseIcon(photoFilter, R .drawable.ic_baseline_arrow_drop_down_24)
229+ setCloseIcon(binding. photoFilter, R .drawable.ic_baseline_arrow_drop_down_24)
238230 }
239231
240232 private fun selectCountry () {
@@ -256,12 +248,12 @@ class StationFilterBar(
256248 setPopupMenuIcons(popup)
257249 popup.setOnDismissListener {
258250 setCloseIcon(
259- toggleSort,
251+ binding. toggleSort,
260252 R .drawable.ic_baseline_arrow_drop_up_24
261253 )
262254 }
263255 popup.show()
264- setCloseIcon(toggleSort, R .drawable.ic_baseline_arrow_drop_down_24)
256+ setCloseIcon(binding. toggleSort, R .drawable.ic_baseline_arrow_drop_down_24)
265257 }
266258
267259 @SuppressLint(" RestrictedApi" )
@@ -289,7 +281,7 @@ class StationFilterBar(
289281
290282 fun setSortOrder (sortByDistance : Boolean ) {
291283 setChipStatus(
292- toggleSort,
284+ binding. toggleSort,
293285 if (sortByDistance) R .drawable.ic_sort_by_distance_active_24px else R .drawable.ic_sort_by_alpha_active_24px,
294286 true ,
295287 R .string.no_text
@@ -320,7 +312,7 @@ class StationFilterBar(
320312 if (selectedPosition >= 0 && nicknames.size > selectedPosition) {
321313 stationFilter.nickname = nicknames[selectedPosition]
322314 setChipStatus(
323- nicknameFilter,
315+ binding. nicknameFilter,
324316 stationFilter.nicknameIcon,
325317 stationFilter.isNicknameFilterActive,
326318 stationFilter.getNicknameText(context)
@@ -332,7 +324,7 @@ class StationFilterBar(
332324 dialog.dismiss()
333325 stationFilter.nickname = null
334326 setChipStatus(
335- nicknameFilter,
327+ binding. nicknameFilter,
336328 stationFilter.nicknameIcon,
337329 stationFilter.isNicknameFilterActive,
338330 stationFilter.getNicknameText(context)
@@ -343,7 +335,7 @@ class StationFilterBar(
343335 dialog.dismiss()
344336 stationFilter.nickname = preferencesService.nickname
345337 setChipStatus(
346- nicknameFilter,
338+ binding. nicknameFilter,
347339 stationFilter.nicknameIcon,
348340 stationFilter.isNicknameFilterActive,
349341 stationFilter.getNicknameText(context)
@@ -361,7 +353,7 @@ class StationFilterBar(
361353 }
362354
363355 fun setSortOrderEnabled (enabled : Boolean ) {
364- toggleSort.visibility = if (enabled) VISIBLE else GONE
356+ binding. toggleSort.visibility = if (enabled) VISIBLE else GONE
365357 }
366358
367359 interface OnChangeListener {
0 commit comments