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

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

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

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

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

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

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

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

Loading…
Cancel
Save