Fix a crash in SummaryFactory & update deprecated composable.
This commit is contained in:
parent
51ffc9a303
commit
aa1603819f
10 changed files with 73 additions and 35 deletions
|
|
@ -131,7 +131,6 @@ fun CharacterSheetScreen(
|
||||||
)
|
)
|
||||||
val tabs = rememberHeaderTabsState()
|
val tabs = rememberHeaderTabsState()
|
||||||
val pagerState = rememberPagerState { tabs.value.size }
|
val pagerState = rememberPagerState { tabs.value.size }
|
||||||
val isMenuExpended = remember { mutableStateOf(false) }
|
|
||||||
|
|
||||||
Surface(
|
Surface(
|
||||||
modifier = Modifier.fillMaxSize(),
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.Row
|
||||||
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.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
|
@ -64,7 +65,7 @@ fun GenericHeader(
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Divider(
|
HorizontalDivider(
|
||||||
color = MaterialTheme.lexicon.colorScheme.placeholder,
|
color = MaterialTheme.lexicon.colorScheme.placeholder,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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_NO
|
||||||
import android.content.res.Configuration.UI_MODE_NIGHT_YES
|
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.Column
|
||||||
import androidx.compose.foundation.layout.ExperimentalLayoutApi
|
import androidx.compose.foundation.layout.ExperimentalLayoutApi
|
||||||
import androidx.compose.foundation.layout.FlowRow
|
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.padding
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
|
import androidx.compose.material3.DividerDefaults
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
|
@ -75,23 +78,26 @@ fun InventoryItem(
|
||||||
) {
|
) {
|
||||||
val size = rememberTextSize(style = MaterialTheme.typography.bodyMedium)
|
val size = rememberTextSize(style = MaterialTheme.typography.bodyMedium)
|
||||||
if (index == lastIndex) {
|
if (index == lastIndex) {
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.height(height = 3.dp + size.height / 2)
|
.height(height = 3.dp + size.height / 2)
|
||||||
.width(1.dp)
|
.width(1.dp)
|
||||||
|
.background(color = DividerDefaults.color)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxHeight()
|
.fillMaxHeight()
|
||||||
.width(1.dp)
|
.width(1.dp)
|
||||||
|
.background(color = DividerDefaults.color)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(top = 2.dp + size.height / 2)
|
.padding(top = 2.dp + size.height / 2)
|
||||||
.height(1.dp)
|
.height(1.dp)
|
||||||
.width(8.dp)
|
.width(8.dp)
|
||||||
|
.background(color = DividerDefaults.color)
|
||||||
)
|
)
|
||||||
InventoryItem(
|
InventoryItem(
|
||||||
padding = PaddingValues(start = 7.dp, top = 2.dp, bottom = 2.dp),
|
padding = PaddingValues(start = 7.dp, top = 2.dp, bottom = 2.dp),
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.offset
|
import androidx.compose.foundation.layout.offset
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
|
@ -97,7 +98,7 @@ fun SpellHeader(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Divider(
|
HorizontalDivider(
|
||||||
color = MaterialTheme.lexicon.colorScheme.placeholder,
|
color = MaterialTheme.lexicon.colorScheme.placeholder,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
|
|
@ -130,18 +131,18 @@ private fun DeathMark(
|
||||||
Circle(
|
Circle(
|
||||||
full = counter > 0,
|
full = counter > 0,
|
||||||
)
|
)
|
||||||
Divider(
|
HorizontalDivider(
|
||||||
modifier = Modifier.width(width = 8.dp),
|
modifier = Modifier.width(width = 8.dp),
|
||||||
thickness = 2.dp,
|
thickness = 2.dp,
|
||||||
color = MaterialTheme.colorScheme.onSurface,
|
color = MaterialTheme.colorScheme.onSurface
|
||||||
)
|
)
|
||||||
Circle(
|
Circle(
|
||||||
full = counter > 1,
|
full = counter > 1,
|
||||||
)
|
)
|
||||||
Divider(
|
HorizontalDivider(
|
||||||
modifier = Modifier.width(width = 8.dp),
|
modifier = Modifier.width(width = 8.dp),
|
||||||
thickness = 2.dp,
|
thickness = 2.dp,
|
||||||
color = MaterialTheme.colorScheme.onSurface,
|
color = MaterialTheme.colorScheme.onSurface
|
||||||
)
|
)
|
||||||
Circle(
|
Circle(
|
||||||
full = counter > 2,
|
full = counter > 2,
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.foundation.shape.CutCornerShape
|
import androidx.compose.foundation.shape.CutCornerShape
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
|
@ -68,7 +69,7 @@ fun Stat(
|
||||||
style = MaterialTheme.typography.displayMedium,
|
style = MaterialTheme.typography.displayMedium,
|
||||||
text = stat.modifier.toLabel(),
|
text = stat.modifier.toLabel(),
|
||||||
)
|
)
|
||||||
Divider(
|
HorizontalDivider(
|
||||||
modifier = Modifier.width(width = 32.dp),
|
modifier = Modifier.width(width = 32.dp),
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.itemsIndexed
|
import androidx.compose.foundation.lazy.itemsIndexed
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
|
@ -52,7 +53,9 @@ fun SpellLevelChooser(
|
||||||
onSpellCast = onLevel,
|
onSpellCast = onLevel,
|
||||||
)
|
)
|
||||||
if (index < (spells.value?.spells?.lastIndex ?: 0)) {
|
if (index < (spells.value?.spells?.lastIndex ?: 0)) {
|
||||||
Divider(modifier = Modifier.padding(horizontal = 16.dp))
|
HorizontalDivider(
|
||||||
|
modifier = Modifier.padding(horizontal = 16.dp),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import android.content.res.Configuration
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.compose.animation.AnimatedVisibility
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.animation.animateContentSize
|
import androidx.compose.animation.animateContentSize
|
||||||
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
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.layout.size
|
||||||
import androidx.compose.foundation.shape.CutCornerShape
|
import androidx.compose.foundation.shape.CutCornerShape
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
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.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
|
|
@ -101,8 +102,10 @@ fun StatusSummary(
|
||||||
status.c1.value.getOrNull(index)
|
status.c1.value.getOrNull(index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryIcon(
|
SummaryIcon(
|
||||||
icon = c1?.icon,
|
icon = c1?.icon,
|
||||||
|
|
@ -114,8 +117,10 @@ fun StatusSummary(
|
||||||
status.c2.value.getOrNull(index)
|
status.c2.value.getOrNull(index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryIcon(
|
SummaryIcon(
|
||||||
icon = c2?.icon,
|
icon = c2?.icon,
|
||||||
|
|
@ -127,8 +132,10 @@ fun StatusSummary(
|
||||||
status.c3.value.getOrNull(index)
|
status.c3.value.getOrNull(index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryIcon(
|
SummaryIcon(
|
||||||
icon = c3?.icon,
|
icon = c3?.icon,
|
||||||
|
|
@ -140,8 +147,10 @@ fun StatusSummary(
|
||||||
status.c4.value.getOrNull(index)
|
status.c4.value.getOrNull(index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryIcon(
|
SummaryIcon(
|
||||||
icon = c4?.icon,
|
icon = c4?.icon,
|
||||||
|
|
@ -153,8 +162,10 @@ fun StatusSummary(
|
||||||
status.c5.value.getOrNull(index)
|
status.c5.value.getOrNull(index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryIcon(
|
SummaryIcon(
|
||||||
icon = c5?.icon,
|
icon = c5?.icon,
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,15 @@
|
||||||
package com.pixelized.rplexicon.ui.screens.summary.composable.common
|
package com.pixelized.rplexicon.ui.screens.summary.composable.common
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.IntrinsicSize
|
import androidx.compose.foundation.layout.IntrinsicSize
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
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.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
|
@ -71,40 +73,50 @@ fun SummaryRow(
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.height(intrinsicSize = IntrinsicSize.Min),
|
modifier = Modifier.height(intrinsicSize = IntrinsicSize.Min),
|
||||||
) {
|
) {
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryValue(
|
SummaryValue(
|
||||||
cell = row.c1,
|
cell = row.c1,
|
||||||
style = style,
|
style = style,
|
||||||
color = color,
|
color = color,
|
||||||
)
|
)
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryValue(
|
SummaryValue(
|
||||||
cell = row.c2,
|
cell = row.c2,
|
||||||
style = style,
|
style = style,
|
||||||
color = color,
|
color = color,
|
||||||
)
|
)
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryValue(
|
SummaryValue(
|
||||||
cell = row.c3,
|
cell = row.c3,
|
||||||
style = style,
|
style = style,
|
||||||
color = color,
|
color = color,
|
||||||
)
|
)
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryValue(
|
SummaryValue(
|
||||||
cell = row.c4,
|
cell = row.c4,
|
||||||
style = style,
|
style = style,
|
||||||
color = color,
|
color = color,
|
||||||
)
|
)
|
||||||
Divider(
|
Box(
|
||||||
modifier = Modifier.verticalDivider(),
|
modifier = Modifier
|
||||||
|
.verticalDivider()
|
||||||
|
.background(color = DividerDefaults.color),
|
||||||
)
|
)
|
||||||
SummaryValue(
|
SummaryValue(
|
||||||
cell = row.c5,
|
cell = row.c5,
|
||||||
|
|
|
||||||
|
|
@ -656,7 +656,7 @@ class SummaryFactory @Inject constructor(
|
||||||
dices.getOrNull(index = characters.indexOf(name))
|
dices.getOrNull(index = characters.indexOf(name))
|
||||||
|
|
||||||
throws.forEach { entry ->
|
throws.forEach { entry ->
|
||||||
header.getDice(name = entry.key)?.value = if (entry.value.hidden) {
|
val headerValue = if (entry.value.hidden) {
|
||||||
ClassHeaderSummaryUio.Dice(
|
ClassHeaderSummaryUio.Dice(
|
||||||
characterName = entry.key,
|
characterName = entry.key,
|
||||||
timestamp = entry.value.timestamp,
|
timestamp = entry.value.timestamp,
|
||||||
|
|
@ -673,6 +673,9 @@ class SummaryFactory @Inject constructor(
|
||||||
isCriticalFailure = entry.value.isCriticalFailure ?: false,
|
isCriticalFailure = entry.value.isCriticalFailure ?: false,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
header.getDice(name = entry.key)?.value = headerValue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue