mirror of
https://github.com/ev-map/EVMap.git
synced 2026-05-19 12:26:20 -04:00
SearchSelectScreen, FilterScreen: use nicer checkbox/radio button icons
This commit is contained in:
@@ -20,8 +20,24 @@ class FilterScreen(ctx: CarContext) : Screen(ctx) {
|
||||
db.filterProfileDao().getProfiles(prefs.dataSource)
|
||||
}
|
||||
private val maxRows = 6
|
||||
private val checkIcon =
|
||||
CarIcon.Builder(IconCompat.createWithResource(carContext, R.drawable.ic_check)).build()
|
||||
private val checkedIcon =
|
||||
CarIcon.Builder(
|
||||
IconCompat.createWithResource(
|
||||
carContext,
|
||||
R.drawable.ic_radio_button_checked
|
||||
)
|
||||
)
|
||||
.setTint(CarColor.PRIMARY)
|
||||
.build()
|
||||
private val uncheckedIcon =
|
||||
CarIcon.Builder(
|
||||
IconCompat.createWithResource(
|
||||
carContext,
|
||||
R.drawable.ic_radio_button_unchecked
|
||||
)
|
||||
)
|
||||
.setTint(CarColor.PRIMARY)
|
||||
.build()
|
||||
|
||||
init {
|
||||
filterProfiles.observe(this) {
|
||||
@@ -50,9 +66,9 @@ class FilterScreen(ctx: CarContext) : Screen(ctx) {
|
||||
addItem(Row.Builder().apply {
|
||||
setTitle(carContext.getString(R.string.no_filters))
|
||||
if (FILTERS_DISABLED == filterStatus) {
|
||||
setImage(checkIcon)
|
||||
setImage(checkedIcon)
|
||||
} else {
|
||||
setImage(emptyCarIcon)
|
||||
setImage(uncheckedIcon)
|
||||
}
|
||||
setOnClickListener {
|
||||
prefs.filterStatus = FILTERS_DISABLED
|
||||
@@ -65,9 +81,9 @@ class FilterScreen(ctx: CarContext) : Screen(ctx) {
|
||||
it.name.ifEmpty { carContext.getString(R.string.unnamed_filter_profile) }
|
||||
setTitle(name)
|
||||
if (it.id == filterStatus) {
|
||||
setImage(checkIcon)
|
||||
setImage(checkedIcon)
|
||||
} else {
|
||||
setImage(emptyCarIcon)
|
||||
setImage(uncheckedIcon)
|
||||
}
|
||||
setOnClickListener {
|
||||
prefs.filterStatus = it.id
|
||||
|
||||
@@ -73,18 +73,22 @@ abstract class MultiSelectSearchScreen<T>(ctx: CarContext) : Screen(ctx),
|
||||
} ?: emptyList()
|
||||
}
|
||||
|
||||
private val checkedIcon =
|
||||
CarIcon.Builder(IconCompat.createWithResource(carContext, R.drawable.ic_checkbox_checked))
|
||||
.setTint(CarColor.PRIMARY)
|
||||
.build()
|
||||
private val uncheckedIcon =
|
||||
CarIcon.Builder(IconCompat.createWithResource(carContext, R.drawable.ic_checkbox_unchecked))
|
||||
.setTint(CarColor.PRIMARY)
|
||||
.build()
|
||||
|
||||
private fun buildItemList(): ItemList {
|
||||
return ItemList.Builder().apply {
|
||||
currentList.forEach { item ->
|
||||
addItem(
|
||||
Row.Builder()
|
||||
.setTitle(
|
||||
if (isSelected(item)) {
|
||||
"☑ " + getLabel(item)
|
||||
} else {
|
||||
"☐ " + getLabel(item)
|
||||
}
|
||||
)
|
||||
.setTitle(getLabel(item))
|
||||
.setImage(if (isSelected(item)) checkedIcon else uncheckedIcon)
|
||||
.setOnClickListener {
|
||||
toggleSelected(item)
|
||||
if (isMultiSelect) {
|
||||
|
||||
10
app/src/google/res/drawable/ic_checkbox_checked.xml
Normal file
10
app/src/google/res/drawable/ic_checkbox_checked.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.11,0 2,-0.9 2,-2L21,5c0,-1.1 -0.89,-2 -2,-2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z" />
|
||||
</vector>
|
||||
10
app/src/google/res/drawable/ic_checkbox_unchecked.xml
Normal file
10
app/src/google/res/drawable/ic_checkbox_unchecked.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19,5v14H5V5h14m0,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2z" />
|
||||
</vector>
|
||||
10
app/src/google/res/drawable/ic_radio_button_checked.xml
Normal file
10
app/src/google/res/drawable/ic_radio_button_checked.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5 5,-2.24 5,-5 -2.24,-5 -5,-5zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z" />
|
||||
</vector>
|
||||
10
app/src/google/res/drawable/ic_radio_button_unchecked.xml
Normal file
10
app/src/google/res/drawable/ic_radio_button_unchecked.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z" />
|
||||
</vector>
|
||||
Reference in New Issue
Block a user