Fix a crash in SummaryFactory & update deprecated composable.

This commit is contained in:
Andres Gomez, Thomas (ITDV RL) 2024-06-04 12:35:48 +02:00
parent 51ffc9a303
commit aa1603819f
10 changed files with 73 additions and 35 deletions

View file

@ -131,7 +131,6 @@ fun CharacterSheetScreen(
)
val tabs = rememberHeaderTabsState()
val pagerState = rememberPagerState { tabs.value.size }
val isMenuExpended = remember { mutableStateOf(false) }
Surface(
modifier = Modifier.fillMaxSize(),

View file

@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Divider
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@ -64,7 +65,7 @@ fun GenericHeader(
),
)
}
Divider(
HorizontalDivider(
color = MaterialTheme.lexicon.colorScheme.placeholder,
)
}

View file

@ -2,6 +2,8 @@ package com.pixelized.rplexicon.ui.screens.character.composable.actions
import android.content.res.Configuration.UI_MODE_NIGHT_NO
import android.content.res.Configuration.UI_MODE_NIGHT_YES
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ExperimentalLayoutApi
import androidx.compose.foundation.layout.FlowRow
@ -13,6 +15,7 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.material3.Divider
import androidx.compose.material3.DividerDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@ -75,23 +78,26 @@ fun InventoryItem(
) {
val size = rememberTextSize(style = MaterialTheme.typography.bodyMedium)
if (index == lastIndex) {
Divider(
Box(
modifier = Modifier
.height(height = 3.dp + size.height / 2)
.width(1.dp)
.background(color = DividerDefaults.color)
)
} else {
Divider(
Box(
modifier = Modifier
.fillMaxHeight()
.width(1.dp)
.background(color = DividerDefaults.color)
)
}
Divider(
Box(
modifier = Modifier
.padding(top = 2.dp + size.height / 2)
.height(1.dp)
.width(8.dp)
.background(color = DividerDefaults.color)
)
InventoryItem(
padding = PaddingValues(start = 7.dp, top = 2.dp, bottom = 2.dp),

View file

@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Divider
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@ -97,7 +98,7 @@ fun SpellHeader(
)
}
}
Divider(
HorizontalDivider(
color = MaterialTheme.lexicon.colorScheme.placeholder,
)
}

View file

@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Divider
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
@ -130,18 +131,18 @@ private fun DeathMark(
Circle(
full = counter > 0,
)
Divider(
HorizontalDivider(
modifier = Modifier.width(width = 8.dp),
thickness = 2.dp,
color = MaterialTheme.colorScheme.onSurface,
color = MaterialTheme.colorScheme.onSurface
)
Circle(
full = counter > 1,
)
Divider(
HorizontalDivider(
modifier = Modifier.width(width = 8.dp),
thickness = 2.dp,
color = MaterialTheme.colorScheme.onSurface,
color = MaterialTheme.colorScheme.onSurface
)
Circle(
full = counter > 2,

View file

@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.CutCornerShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Divider
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@ -68,7 +69,7 @@ fun Stat(
style = MaterialTheme.typography.displayMedium,
text = stat.modifier.toLabel(),
)
Divider(
HorizontalDivider(
modifier = Modifier.width(width = 32.dp),
)
Text(

View file

@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.material3.Divider
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@ -52,7 +53,9 @@ fun SpellLevelChooser(
onSpellCast = onLevel,
)
if (index < (spells.value?.spells?.lastIndex ?: 0)) {
Divider(modifier = Modifier.padding(horizontal = 16.dp))
HorizontalDivider(
modifier = Modifier.padding(horizontal = 16.dp),
)
}
}
}

View file

@ -4,6 +4,7 @@ import android.content.res.Configuration
import androidx.annotation.DrawableRes
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
@ -15,7 +16,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CutCornerShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Divider
import androidx.compose.material3.DividerDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
@ -101,8 +102,10 @@ fun StatusSummary(
status.c1.value.getOrNull(index)
}
}
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryIcon(
icon = c1?.icon,
@ -114,8 +117,10 @@ fun StatusSummary(
status.c2.value.getOrNull(index)
}
}
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryIcon(
icon = c2?.icon,
@ -127,8 +132,10 @@ fun StatusSummary(
status.c3.value.getOrNull(index)
}
}
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryIcon(
icon = c3?.icon,
@ -140,8 +147,10 @@ fun StatusSummary(
status.c4.value.getOrNull(index)
}
}
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryIcon(
icon = c4?.icon,
@ -153,8 +162,10 @@ fun StatusSummary(
status.c5.value.getOrNull(index)
}
}
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryIcon(
icon = c5?.icon,

View file

@ -1,13 +1,15 @@
package com.pixelized.rplexicon.ui.screens.summary.composable.common
import androidx.annotation.StringRes
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.material3.Divider
import androidx.compose.material3.DividerDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@ -71,40 +73,50 @@ fun SummaryRow(
Row(
modifier = Modifier.height(intrinsicSize = IntrinsicSize.Min),
) {
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryValue(
cell = row.c1,
style = style,
color = color,
)
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryValue(
cell = row.c2,
style = style,
color = color,
)
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryValue(
cell = row.c3,
style = style,
color = color,
)
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryValue(
cell = row.c4,
style = style,
color = color,
)
Divider(
modifier = Modifier.verticalDivider(),
Box(
modifier = Modifier
.verticalDivider()
.background(color = DividerDefaults.color),
)
SummaryValue(
cell = row.c5,

View file

@ -656,7 +656,7 @@ class SummaryFactory @Inject constructor(
dices.getOrNull(index = characters.indexOf(name))
throws.forEach { entry ->
header.getDice(name = entry.key)?.value = if (entry.value.hidden) {
val headerValue = if (entry.value.hidden) {
ClassHeaderSummaryUio.Dice(
characterName = entry.key,
timestamp = entry.value.timestamp,
@ -673,6 +673,9 @@ class SummaryFactory @Inject constructor(
isCriticalFailure = entry.value.isCriticalFailure ?: false,
)
}
withContext(Dispatchers.Main) {
header.getDice(name = entry.key)?.value = headerValue
}
}
}
}