Fix some more null icons

pull/2967/head
Alex Baker 1 year ago
parent 686b141bb8
commit 93f1735965

@ -28,7 +28,6 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.compose.components.imageVectorByName
import org.tasks.compose.pickers.SearchableFilterPicker import org.tasks.compose.pickers.SearchableFilterPicker
import org.tasks.dialogs.FilterPickerViewModel import org.tasks.dialogs.FilterPickerViewModel
import org.tasks.filters.Filter import org.tasks.filters.Filter
@ -75,7 +74,7 @@ class FilterSelectionActivity : AppCompatActivity() {
filters = if (searching) state.searchResults else state.filters, filters = if (searching) state.searchResults else state.filters,
query = state.query, query = state.query,
onQueryChange = { viewModel.onQueryChange(it) }, onQueryChange = { viewModel.onQueryChange(it) },
getIcon = { imageVectorByName(viewModel.getIcon(it)) }, getIcon = { viewModel.getIcon(it) },
getColor = { viewModel.getColor(it) }, getColor = { viewModel.getColor(it) },
selected = selected, selected = selected,
onClick = { filter -> onClick = { filter ->

@ -6,9 +6,6 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Block
import androidx.compose.material.icons.outlined.Event
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
@ -24,6 +21,7 @@ import com.google.accompanist.permissions.rememberMultiplePermissionsState
import org.tasks.R import org.tasks.R
import org.tasks.calendars.AndroidCalendar import org.tasks.calendars.AndroidCalendar
import org.tasks.calendars.CalendarPickerViewModel import org.tasks.calendars.CalendarPickerViewModel
import org.tasks.themes.TasksIcons
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
@OptIn(ExperimentalPermissionsApi::class) @OptIn(ExperimentalPermissionsApi::class)
@ -68,7 +66,7 @@ fun CalendarPickerList(
.padding(vertical = 12.dp) .padding(vertical = 12.dp)
) { ) {
CheckableIconRow( CheckableIconRow(
icon = Icons.Outlined.Block, icon = TasksIcons.BLOCK,
tint = MaterialTheme.colorScheme.onSurface, tint = MaterialTheme.colorScheme.onSurface,
text = stringResource(id = R.string.dont_add_to_calendar), text = stringResource(id = R.string.dont_add_to_calendar),
selected = selectedCalendar == null, selected = selectedCalendar == null,
@ -76,7 +74,7 @@ fun CalendarPickerList(
) )
calendars.forEach { calendars.forEach {
CheckableIconRow( CheckableIconRow(
icon = Icons.Outlined.Event, icon = TasksIcons.EVENT,
tint = Color(it.color), tint = Color(it.color),
text = it.name, text = it.name,
selected = selectedCalendar == it, selected = selectedCalendar == it,

@ -40,7 +40,7 @@ import kotlinx.coroutines.launch
import org.tasks.R import org.tasks.R
import org.tasks.Strings import org.tasks.Strings
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.compose.components.imageVectorByName import org.tasks.compose.components.TasksIcon
import org.tasks.data.entity.TagData import org.tasks.data.entity.TagData
import org.tasks.extensions.addBackPressedCallback import org.tasks.extensions.addBackPressedCallback
import org.tasks.filters.TagFilter import org.tasks.filters.TagFilter
@ -142,7 +142,12 @@ internal fun TagPicker(
Box ( Box (
modifier = Modifier.weight(1f) modifier = Modifier.weight(1f)
) { ) {
PickerBox(viewModel, viewModel.tagsList.observeAsState(initial = emptyList()), getTagIcon, getTagColor) PickerBox(
viewModel = viewModel,
tags = viewModel.tagsList.observeAsState(initial = emptyList()),
getTagIcon = getTagIcon,
getTagColor = getTagColor
)
} }
} }
} }
@ -207,7 +212,7 @@ internal fun PickerBox (
item(key = -1) { item(key = -1) {
val text = LocalContext.current.getString(R.string.new_tag) + " \"${viewModel.tagToCreate.value}\"" val text = LocalContext.current.getString(R.string.new_tag) + " \"${viewModel.tagToCreate.value}\""
TagRow( TagRow(
icon = ImageVector.vectorResource(R.drawable.ic_outline_add_24px), icon = TasksIcons.ADD,
iconColor = Color(LocalContext.current.getColor(R.color.icon_tint_with_alpha)), iconColor = Color(LocalContext.current.getColor(R.color.icon_tint_with_alpha)),
text = text, text = text,
onClick = { newItem(viewModel.searchText.value) } onClick = { newItem(viewModel.searchText.value) }
@ -220,7 +225,7 @@ internal fun PickerBox (
val checked = remember { mutableStateOf ( viewModel.getState(it) ) } val checked = remember { mutableStateOf ( viewModel.getState(it) ) }
val clickChecked: () -> Unit = { onClick(it); checked.value = viewModel.getState(it) } val clickChecked: () -> Unit = { onClick(it); checked.value = viewModel.getState(it) }
TagRow( TagRow(
icon = imageVectorByName(getTagIcon(it))!!, icon = getTagIcon(it),
iconColor = getTagColor(it), iconColor = getTagColor(it),
text = it.name!!, text = it.name!!,
onClick = clickChecked onClick = clickChecked
@ -237,7 +242,7 @@ internal fun PickerBox (
@Composable @Composable
internal fun TagRow ( internal fun TagRow (
icon: ImageVector, icon: String,
iconColor: Color, iconColor: Color,
text: String, text: String,
onClick: () -> Unit, onClick: () -> Unit,
@ -248,10 +253,9 @@ internal fun TagRow (
.clickable { onClick() }, .clickable { onClick() },
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
) { ) {
Icon( TasksIcon(
imageVector = icon,
contentDescription = "",
modifier = Modifier.padding(6.dp), modifier = Modifier.padding(6.dp),
label = icon,
tint = iconColor tint = iconColor
) )
Text( Text(

@ -3,7 +3,6 @@ package org.tasks.previews.pickers
import android.content.res.Configuration import android.content.res.Configuration
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import org.tasks.compose.components.imageVectorByName
import org.tasks.compose.pickers.SearchableFilterPicker import org.tasks.compose.pickers.SearchableFilterPicker
import org.tasks.filters.FilterImpl import org.tasks.filters.FilterImpl
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
@ -33,7 +32,7 @@ fun FilterPickerPreview() {
onQueryChange = {}, onQueryChange = {},
selected = null, selected = null,
onClick = {}, onClick = {},
getIcon = { imageVectorByName(label = it.icon!!)!! }, getIcon = { it.icon },
getColor = { 0 }, getColor = { 0 },
) )
} }

@ -15,10 +15,11 @@ import org.tasks.compose.pickers.label
@Composable @Composable
fun TasksIcon( fun TasksIcon(
modifier: Modifier = Modifier,
label: String?, label: String?,
tint: Color = MaterialTheme.colorScheme.onSurface, tint: Color = MaterialTheme.colorScheme.onSurface,
) { ) {
Box(modifier = Modifier.size(24.dp)) { Box(modifier = modifier.size(24.dp)) {
Icon( Icon(
imageVector = remember (label) { imageVector = remember (label) {
imageVectorByName(label) imageVectorByName(label)

@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Check import androidx.compose.material.icons.outlined.Check
@ -17,12 +16,12 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import org.tasks.compose.components.TasksIcon
@Composable @Composable
fun CheckableIconRow( fun CheckableIconRow(
icon: ImageVector, icon: String?,
tint: Color, tint: Color,
text: String, text: String,
selected: Boolean, selected: Boolean,
@ -45,7 +44,7 @@ fun CheckableIconRow(
@Composable @Composable
fun CheckableIconRow( fun CheckableIconRow(
icon: ImageVector?, icon: String?,
tint: Color, tint: Color,
selected: Boolean, selected: Boolean,
onClick: () -> Unit, onClick: () -> Unit,
@ -57,20 +56,16 @@ fun CheckableIconRow(
.fillMaxWidth() .fillMaxWidth()
.clickable { onClick() } .clickable { onClick() }
) { ) {
Box( TasksIcon(
modifier = Modifier modifier = Modifier.padding(
.padding(start = 16.dp, end = 32.dp, top = 12.dp, bottom = 12.dp) start = 16.dp,
.size(24.dp), end = 32.dp,
contentAlignment = Alignment.Center, top = 12.dp,
) { bottom = 12.dp
if (icon != null) { ),
Icon( label = icon,
imageVector = icon, tint = tint,
contentDescription = null, )
tint = tint,
)
}
}
Box(modifier = Modifier.weight(1f)) { Box(modifier = Modifier.weight(1f)) {
content() content()
} }

@ -37,7 +37,7 @@ fun SearchableFilterPicker(
onQueryChange: (String) -> Unit, onQueryChange: (String) -> Unit,
selected: Filter?, selected: Filter?,
onClick: (FilterListItem) -> Unit, onClick: (FilterListItem) -> Unit,
getIcon: @Composable (Filter) -> ImageVector?, getIcon: @Composable (Filter) -> String?,
getColor: (Filter) -> Int, getColor: (Filter) -> Int,
) { ) {
LazyColumn( LazyColumn(

@ -21,4 +21,6 @@ object TasksIcons {
const val KEYBOARD_ARROW_DOWN = "keyboard_arrow_down" const val KEYBOARD_ARROW_DOWN = "keyboard_arrow_down"
const val SNOOZE = "snooze" const val SNOOZE = "snooze"
const val TIMER = "timer" const val TIMER = "timer"
const val BLOCK = "block"
const val EVENT = "event"
} }

Loading…
Cancel
Save