Skip to content
This repository was archived by the owner on Mar 30, 2025. It is now read-only.

Commit 18eedf8

Browse files
committed
use viewbinding in StationFilterBar
1 parent a02f697 commit 18eedf8

File tree

1 file changed

+25
-33
lines changed

1 file changed

+25
-33
lines changed

app/src/main/kotlin/de/bahnhoefe/deutschlands/bahnhofsfotos/dialogs/StationFilterBar.kt

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import androidx.core.graphics.drawable.DrawableCompat
2626
import com.google.android.material.chip.Chip
2727
import de.bahnhoefe.deutschlands.bahnhofsfotos.CountryActivity
2828
import de.bahnhoefe.deutschlands.bahnhofsfotos.R
29+
import de.bahnhoefe.deutschlands.bahnhofsfotos.databinding.StationFilterBarBinding
2930
import de.bahnhoefe.deutschlands.bahnhofsfotos.db.DbAdapter
3031
import de.bahnhoefe.deutschlands.bahnhofsfotos.util.PreferencesService
3132
import 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

Comments
 (0)