diff --git a/app/src/main/java/com/pixelized/rplexicon/data/model/Attack.kt b/app/src/main/java/com/pixelized/rplexicon/data/model/Attack.kt index 7d362ed..e8efac7 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/model/Attack.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/model/Attack.kt @@ -3,6 +3,7 @@ package com.pixelized.rplexicon.data.model import android.net.Uri import com.pixelized.rplexicon.data.model.roll.Throw import com.pixelized.rplexicon.script.Script +import com.pixelized.rplexicon.utilitary.extentions.string.attackIcon data class Attack( val title: String, @@ -11,8 +12,10 @@ data class Attack( val hit: Throw?, val damage: Throw?, val script: Script?, - val icon: Uri?, + private val iconUri: Uri?, ) { + val icon: Uri? get() = this.iconUri ?: title.attackIcon() + enum class Type(val key: String) { PHYSICAL_MELEE_ATTACK("Mêlée"), PHYSICAL_RANGE_ATTACK("Distance"); diff --git a/app/src/main/java/com/pixelized/rplexicon/data/model/ObjectAction.kt b/app/src/main/java/com/pixelized/rplexicon/data/model/ObjectAction.kt index 10a3e3f..bf896c9 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/model/ObjectAction.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/model/ObjectAction.kt @@ -2,10 +2,13 @@ package com.pixelized.rplexicon.data.model import android.net.Uri import com.pixelized.rplexicon.data.model.roll.Throw +import com.pixelized.rplexicon.utilitary.extentions.string.objectIcon data class ObjectAction( val prefix: String?, - val icon: Uri?, val name: String, val effect: Throw?, -) \ No newline at end of file + private val iconUri: Uri?, +) { + val icon: Uri? get() = iconUri ?: "${prefix ?: ""}${name}".objectIcon() +} \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/rplexicon/data/model/Skill.kt b/app/src/main/java/com/pixelized/rplexicon/data/model/Skill.kt index 324fb7b..251bc1c 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/model/Skill.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/model/Skill.kt @@ -3,6 +3,7 @@ package com.pixelized.rplexicon.data.model import android.net.Uri import com.pixelized.rplexicon.data.model.roll.Throw import com.pixelized.rplexicon.script.Script +import com.pixelized.rplexicon.utilitary.extentions.string.skillIcon data class Skill( val name: String, @@ -12,5 +13,7 @@ data class Skill( val effect: Throw?, val passive: Boolean, val script: Script?, - val icon: Uri?, -) \ No newline at end of file + private val iconUri: Uri?, +) { + val icon: Uri? get() = iconUri ?: name.skillIcon() +} \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/rplexicon/data/model/Spell.kt b/app/src/main/java/com/pixelized/rplexicon/data/model/Spell.kt index fc66bd0..07eefec 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/model/Spell.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/model/Spell.kt @@ -1,9 +1,9 @@ package com.pixelized.rplexicon.data.model import android.net.Uri +import com.pixelized.rplexicon.utilitary.extentions.string.spellIcon data class Spell( - val icon: Uri?, val name: String, val school: School, val level: Int, @@ -12,7 +12,10 @@ data class Spell( val requirement: String, val duration: String, val ritual: Boolean, + private val iconUri: Uri?, ) { + val icon: Uri? get() = iconUri ?: name.spellIcon() + enum class School(val key: String) { ABJURATION("Abjuration"), DIVINATION("Divination"), diff --git a/app/src/main/java/com/pixelized/rplexicon/data/model/alteration/Alteration.kt b/app/src/main/java/com/pixelized/rplexicon/data/model/alteration/Alteration.kt index 3a7effc..5ba6d0a 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/model/alteration/Alteration.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/model/alteration/Alteration.kt @@ -5,15 +5,18 @@ import com.pixelized.rplexicon.data.model.Property import com.pixelized.rplexicon.data.model.roll.Dice import com.pixelized.rplexicon.data.model.roll.Flat import com.pixelized.rplexicon.script.Script +import com.pixelized.rplexicon.utilitary.extentions.string.alterationIcon data class Alteration( val name: String, val source: String, val target: String, val script: Script?, - val icon: Uri?, val status: Map, + private val iconUri: Uri?, ) { + val icon: Uri? get() = iconUri ?: name.alterationIcon() + data class Status( val name: String, val advantage: Boolean = false, diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/AttackParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/AttackParser.kt index cddceed..ee0f524 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/AttackParser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/parser/AttackParser.kt @@ -31,7 +31,7 @@ class AttackParser @Inject constructor( val title = row.parse(column = NAME) if (characterSheet != null && title != null) { val attack = Attack( - icon = row.parseUri(column = ICON), + iconUri = row.parseUri(column = ICON), title = title, type = parseType(value = row.parse(column = TYPE)), range = row.parse(column = RANGE), diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/ObjectActionParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/ObjectActionParser.kt index 72c5165..52df857 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/ObjectActionParser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/parser/ObjectActionParser.kt @@ -24,7 +24,7 @@ class ObjectActionParser @Inject constructor( objects.getOrPut(character) { mutableListOf() }.add( ObjectAction( prefix = row.parse(column = PREFIX), - icon = row.parseUri(column = ICON), + iconUri = row.parseUri(column = ICON), name = name, effect = throwParser.parse(value = row.parse(column = EFFECT)), ) diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/SkillParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/SkillParser.kt index 83afb48..bc5b323 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/SkillParser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/parser/SkillParser.kt @@ -28,13 +28,13 @@ class SkillParser @Inject constructor( val name = row.parse(column = NAME) if (characterSheet != null && name != null) { val skill = Skill( - icon = row.parseUri(column = ICON), name = name, amount = row.parseInt(column = AMOUNT), rest = row.parse(column = REST), cost = row.parse(column = COST), effect = throwParser.parse(row.parse(column = EFFECT)), passive = row.parseBool(column = PASSIVE) ?: false, + iconUri = row.parseUri(column = ICON), script = row.parse(column = SCRIPT)?.let { scriptParser.parse(it) }, ) skills.getOrPut(characterSheet.name) { mutableListOf() }.add(skill) diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/alteration/AlterationParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/alteration/AlterationParser.kt index 7dbd344..068bd2c 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/alteration/AlterationParser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/parser/alteration/AlterationParser.kt @@ -35,7 +35,7 @@ class AlterationParser @Inject constructor( val target = row.parse(column = TARGET) if (name != null && source != null && target != null) { val alteration = Alteration( - icon = row.parseUri(column = ICON), + iconUri = row.parseUri(column = ICON), name = name, source = source, target = target, diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/spell/SpellBookParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/spell/SpellBookParser.kt index 7589e63..688482f 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/spell/SpellBookParser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/parser/spell/SpellBookParser.kt @@ -37,7 +37,6 @@ class SpellBookParser @Inject constructor() { && duration != null ) { val spell = Spell( - icon = icon, name = name, level = level, school = school, @@ -46,6 +45,7 @@ class SpellBookParser @Inject constructor() { requirement = requirement, duration = duration, ritual = row.parseBool(column = RITUAL) ?: false, + iconUri = icon, ) spells.add(spell) } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/CollapsingHeader.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/CollapsingHeader.kt deleted file mode 100644 index 1781572..0000000 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/CollapsingHeader.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.pixelized.rplexicon.ui.composable - -import androidx.compose.animation.core.animateIntAsState -import androidx.compose.foundation.layout.Box -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.input.nestedscroll.NestedScrollConnection -import androidx.compose.ui.input.nestedscroll.NestedScrollSource -import androidx.compose.ui.input.nestedscroll.nestedScroll -import androidx.compose.ui.layout.Layout -import androidx.compose.ui.layout.Measurable -import androidx.compose.ui.layout.layoutId -import androidx.compose.ui.unit.Velocity - -private val List.grid: Measurable get() = first { it.layoutId == GRID_ID } -private val List.header: Measurable get() = first { it.layoutId == HEADER_ID } - -private const val GRID_ID = "GRID_ID" -private const val HEADER_ID = "HEADER_ID" - -@Composable -fun CollapsingHeader( - modifier: Modifier = Modifier, - header: @Composable () -> Unit, - content: @Composable () -> Unit -) { - val headerHeight = rememberSaveable { mutableStateOf(0) } - val headerScroll = rememberSaveable { mutableStateOf(0) } - - val animatedHeaderScroll = animateIntAsState( - targetValue = headerScroll.value, - label = "HeaderSnapAnimation", - ) - - val nestedScrollConnection = remember { - object : NestedScrollConnection { - override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset { - val scroll = (headerScroll.value + available.y.toInt()).coerceIn( - minimumValue = -headerHeight.value, - maximumValue = 0, - ) - return if (headerScroll.value != scroll) { - headerScroll.value = scroll - available - } else { - Offset.Zero - } - } - - override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity { - headerScroll.value = if (headerScroll.value < -headerHeight.value / 2) { - -headerHeight.value - } else { - 0 - } - return super.onPostFling(consumed, available) - } - } - } - - Layout( - modifier = modifier.nestedScroll(nestedScrollConnection), - content = { - Box( - modifier = Modifier.layoutId(HEADER_ID), - content = { header() }, - ) - Box( - modifier = Modifier.layoutId(GRID_ID), - content = { content() }, - ) - }, - measurePolicy = { measurables, constraints -> - val headerPlaceable = measurables.header.measure(constraints) - val gridPlaceable = measurables.grid.measure(constraints) - - if (headerHeight.value == 0) { - headerHeight.value = headerPlaceable.height - } - - layout(constraints.maxWidth, constraints.maxHeight) { - headerPlaceable.place(0, animatedHeaderScroll.value) - gridPlaceable.place(0, headerPlaceable.height + animatedHeaderScroll.value) - } - } - ) -} \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleHitPointEditDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleHitPointEditDialog.kt index 49723cd..87a40ec 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleHitPointEditDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleHitPointEditDialog.kt @@ -32,7 +32,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.NumberPicker import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.extentions.lexicon import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSkillEditDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSkillEditDialog.kt index c415ab6..495ad76 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSkillEditDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSkillEditDialog.kt @@ -24,7 +24,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.pixelized.rplexicon.ui.composable.NumberPicker import com.pixelized.rplexicon.utilitary.extentions.lexicon import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSpellEditDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSpellEditDialog.kt index 44c074b..2b3e755 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSpellEditDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/HandleSpellEditDialog.kt @@ -25,7 +25,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.NumberPicker import com.pixelized.rplexicon.utilitary.extentions.lexicon import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/NumberPicker.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/NumberPicker.kt similarity index 98% rename from app/src/main/java/com/pixelized/rplexicon/ui/composable/NumberPicker.kt rename to app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/NumberPicker.kt index 63079e6..8743685 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/NumberPicker.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/edit/NumberPicker.kt @@ -1,4 +1,4 @@ -package com.pixelized.rplexicon.ui.composable +package com.pixelized.rplexicon.ui.composable.edit import android.content.res.Configuration.UI_MODE_NIGHT_NO import android.content.res.Configuration.UI_MODE_NIGHT_YES diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/AsyncImage.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/images/AsyncImage.kt similarity index 96% rename from app/src/main/java/com/pixelized/rplexicon/ui/composable/AsyncImage.kt rename to app/src/main/java/com/pixelized/rplexicon/ui/composable/images/AsyncImage.kt index 6f2d1e8..6bb16a7 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/AsyncImage.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/images/AsyncImage.kt @@ -1,4 +1,4 @@ -package com.pixelized.rplexicon.ui.composable +package com.pixelized.rplexicon.ui.composable.images import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/BackgroundImage.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/images/BackgroundImage.kt similarity index 98% rename from app/src/main/java/com/pixelized/rplexicon/ui/composable/BackgroundImage.kt rename to app/src/main/java/com/pixelized/rplexicon/ui/composable/images/BackgroundImage.kt index 507a34c..1712650 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/BackgroundImage.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/images/BackgroundImage.kt @@ -1,4 +1,4 @@ -package com.pixelized.rplexicon.ui.composable +package com.pixelized.rplexicon.ui.composable.images import androidx.compose.foundation.Image import androidx.compose.foundation.background diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/ImageDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/images/ImageDialog.kt similarity index 97% rename from app/src/main/java/com/pixelized/rplexicon/ui/composable/ImageDialog.kt rename to app/src/main/java/com/pixelized/rplexicon/ui/composable/images/ImageDialog.kt index 6c73ddf..201e67b 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/ImageDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/images/ImageDialog.kt @@ -1,4 +1,4 @@ -package com.pixelized.rplexicon.ui.composable +package com.pixelized.rplexicon.ui.composable.images import android.content.res.Configuration.UI_MODE_NIGHT_NO import android.content.res.Configuration.UI_MODE_NIGHT_YES @@ -6,10 +6,10 @@ import android.net.Uri import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.material.IconButton import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.getValue diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetScreen.kt index 4f82d7b..7b2ab19 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetScreen.kt @@ -58,6 +58,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import com.pixelized.rplexicon.LocalRollOverlay import com.pixelized.rplexicon.NO_WINDOW_INSETS import com.pixelized.rplexicon.R +import com.pixelized.rplexicon.ui.composable.Handle import com.pixelized.rplexicon.ui.composable.KeepOnScreen import com.pixelized.rplexicon.ui.composable.Loader import com.pixelized.rplexicon.ui.composable.edit.HandleHitPointEditDialog diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AlterationItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AlterationItem.kt index bc33082..926d8ee 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AlterationItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AlterationItem.kt @@ -35,7 +35,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import com.pixelized.rplexicon.ui.composable.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.AsyncImage import com.pixelized.rplexicon.ui.theme.LexiconTheme @Stable diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AttackItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AttackItem.kt index ad7df27..c82ba4a 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AttackItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/AttackItem.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.unit.dp import androidx.core.net.toUri import com.pixelized.rplexicon.R import com.pixelized.rplexicon.data.model.Attack -import com.pixelized.rplexicon.ui.composable.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.AsyncImage import com.pixelized.rplexicon.ui.screens.character.composable.common.DiceButton import com.pixelized.rplexicon.ui.screens.character.composable.common.FlatValue import com.pixelized.rplexicon.ui.theme.LexiconTheme diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/EquipmentItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/EquipmentItem.kt index dd8e679..a1f3e97 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/EquipmentItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/EquipmentItem.kt @@ -38,8 +38,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.BackgroundImage -import com.pixelized.rplexicon.ui.composable.rememberBackgroundGradient +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.rememberBackgroundGradient import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.extentions.uri diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/ObjectItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/ObjectItem.kt index a3dbaa3..5499964 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/ObjectItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/ObjectItem.kt @@ -31,7 +31,7 @@ import com.pixelized.rplexicon.R import com.pixelized.rplexicon.data.model.roll.Dice import com.pixelized.rplexicon.data.model.roll.Flat import com.pixelized.rplexicon.data.model.roll.Throw -import com.pixelized.rplexicon.ui.composable.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.AsyncImage import com.pixelized.rplexicon.ui.theme.LexiconTheme @Stable diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SkillItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SkillItem.kt index 6dfb887..fd3c394 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SkillItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SkillItem.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.AsyncImage import com.pixelized.rplexicon.ui.screens.character.composable.common.CounterButton import com.pixelized.rplexicon.ui.screens.character.composable.common.DiceButton import com.pixelized.rplexicon.ui.screens.character.composable.common.FlatValue diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SpellItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SpellItem.kt index 1717a0d..904aae7 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SpellItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/actions/SpellItem.kt @@ -35,7 +35,7 @@ import androidx.compose.ui.unit.dp import androidx.core.net.toUri import com.pixelized.rplexicon.R import com.pixelized.rplexicon.data.model.Spell -import com.pixelized.rplexicon.ui.composable.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.AsyncImage import com.pixelized.rplexicon.ui.screens.character.composable.common.DiceButton import com.pixelized.rplexicon.ui.screens.character.composable.common.FlatValue import com.pixelized.rplexicon.ui.theme.LexiconTheme diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/chooser/SpellLevelChooser.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/chooser/SpellLevelChooser.kt index f8c1de8..089e9ca 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/chooser/SpellLevelChooser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/chooser/SpellLevelChooser.kt @@ -2,7 +2,15 @@ package com.pixelized.rplexicon.ui.screens.character.composable.chooser import android.content.res.Configuration.UI_MODE_NIGHT_NO import android.content.res.Configuration.UI_MODE_NIGHT_YES +import android.net.Uri +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.calculateEndPadding +import androidx.compose.foundation.layout.calculateStartPadding import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material3.HorizontalDivider @@ -12,49 +20,97 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.Stable import androidx.compose.runtime.State +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.pixelized.rplexicon.ui.composable.Handle +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage import com.pixelized.rplexicon.ui.screens.character.composable.actions.SpellLevelItem import com.pixelized.rplexicon.ui.screens.character.composable.actions.SpellLevelUio import com.pixelized.rplexicon.ui.screens.character.composable.preview.rememberSpellLevelChooserState import com.pixelized.rplexicon.ui.theme.LexiconTheme +import com.pixelized.rplexicon.utilitary.annotateWithDropCap +import com.pixelized.rplexicon.utilitary.extentions.lexicon @Stable data class SpellChooserUio( val name: String, + val original: String?, + val icon: Uri?, val spells: List, ) @Composable fun SpellLevelChooser( modifier: Modifier = Modifier, + paddingValues: PaddingValues = PaddingValues(all = 16.dp), spells: State, onLevel: (spell: String, level: Int) -> Unit, ) { - LazyColumn( - modifier = modifier, - ) { - item { - Text( + val layoutDirection = LocalLayoutDirection.current + Box { + spells.value?.icon?.let { uri -> + BackgroundImage( modifier = Modifier - .padding(top = 16.dp) - .padding(horizontal = 16.dp), - style = MaterialTheme.typography.titleLarge, - text = spells.value?.name ?: "" + .size(size = 144.dp) + .align(alignment = Alignment.TopEnd), + model = uri, ) } - itemsIndexed( - items = spells.value?.spells ?: emptyList(), - ) { index, item -> - SpellLevelItem( - spell = item, - onSpellCast = onLevel, - ) - if (index < (spells.value?.spells?.lastIndex ?: 0)) { - HorizontalDivider( - modifier = Modifier.padding(horizontal = 16.dp), + Column( + modifier = Modifier + .padding( + top = paddingValues.calculateTopPadding(), + bottom = paddingValues.calculateBottomPadding() ) + .then(other = modifier), + verticalArrangement = Arrangement.spacedBy(space = 16.dp), + ) { + Handle( + modifier = Modifier.align(alignment = Alignment.CenterHorizontally) + ) + LazyColumn { + item { + Column( + modifier = Modifier.padding( + start = paddingValues.calculateStartPadding(layoutDirection), + end = paddingValues.calculateEndPadding(layoutDirection) + ) + ) { + Text( + style = MaterialTheme.typography.titleMedium, + text = annotateWithDropCap( + text = spells.value?.name ?: "", + style = MaterialTheme.lexicon.typography.dropCap.titleMedium, + ) + ) + spells.value?.original?.let { original -> + Text( + style = MaterialTheme.typography.labelSmall, + fontWeight = FontWeight.Light, + fontStyle = FontStyle.Italic, + text = original, + ) + } + } + } + itemsIndexed( + items = spells.value?.spells ?: emptyList(), + ) { index, item -> + SpellLevelItem( + spell = item, + onSpellCast = onLevel, + ) + if (index < (spells.value?.spells?.lastIndex ?: 0)) { + HorizontalDivider( + modifier = Modifier.padding(horizontal = 16.dp), + ) + } + } } } } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/AlterationDetailDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/AlterationDetailDialog.kt index d6c456b..5798c85 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/AlterationDetailDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/AlterationDetailDialog.kt @@ -33,7 +33,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.annotateWithDropCap import com.pixelized.rplexicon.utilitary.extentions.lexicon diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SkillDetailDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SkillDetailDialog.kt index 175a852..57013c0 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SkillDetailDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SkillDetailDialog.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.pixelized.rplexicon.ui.composable.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.annotateWithDropCap import com.pixelized.rplexicon.utilitary.extentions.lexicon diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SpellDetailDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SpellDetailDialog.kt index e5da0f6..4b26f74 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SpellDetailDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/dialogs/SpellDetailDialog.kt @@ -36,7 +36,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.annotateWithDropCap import com.pixelized.rplexicon.utilitary.extentions.lexicon diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/preview/rememberSpellLevelChooserState.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/preview/rememberSpellLevelChooserState.kt index 1639d49..5d838a0 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/preview/rememberSpellLevelChooserState.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/preview/rememberSpellLevelChooserState.kt @@ -13,7 +13,9 @@ import com.pixelized.rplexicon.ui.screens.character.composable.chooser.SpellChoo fun rememberSpellLevelChooserState() = remember { mutableStateOf( SpellChooserUio( - name = "Cure wounds", + name = "Soin", + original = "Cure wounds", + icon = null, spells = listOf( SpellLevelUio( spell = "", diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/AttackUioFactory.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/AttackUioFactory.kt index 1f60d80..922e393 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/AttackUioFactory.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/AttackUioFactory.kt @@ -75,7 +75,7 @@ class AttackUioFactory @Inject constructor() { return AttackUio( id = attack, - icon = attack.icon ?: attack.title.attackIcon(), + icon = attack.icon, name = attack.title, type = when (attack.type) { Attack.Type.PHYSICAL_MELEE_ATTACK -> R.string.attack_type_melee diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SkillFactoryUioFactory.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SkillFactoryUioFactory.kt index ed06492..cf1e696 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SkillFactoryUioFactory.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SkillFactoryUioFactory.kt @@ -45,7 +45,7 @@ class SkillFactoryUioFactory @Inject constructor( val modifier = effectModifier + effectFlat SkillItemUio( - icon = skill.icon ?: skill.name.skillIcon(), + icon = skill.icon, label = skill.name, translate = description?.original, rest = skill.rest, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SpellUioFactory.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SpellUioFactory.kt index 8c1ed56..ed507a0 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SpellUioFactory.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/SpellUioFactory.kt @@ -96,7 +96,7 @@ class SpellUioFactory @Inject constructor( } } return SpellUio( - icon = assignedSpell.spell.icon ?: assignedSpell.spell.name.spellIcon(), + icon = assignedSpell.spell.icon, school = assignedSpell.spell.school, name = assignedSpell.spell.name, translated = descriptionRepository.getDescription(name = assignedSpell.spell.name)?.original, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ActionsPage.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ActionsPage.kt index 68a70d1..7ed1ddc 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ActionsPage.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ActionsPage.kt @@ -82,7 +82,7 @@ fun ActionPage( } }, onObject = { - objectsViewModel.showObjectDetailDialog(item = it.name) + objectsViewModel.showObjectDetailDialog(name = it.name) }, onUseObject = { objectsViewModel.onUse(it.name)?.let { throws -> diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ObjectsViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ObjectsViewModel.kt index 0c97093..2be3313 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ObjectsViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/ObjectsViewModel.kt @@ -11,7 +11,6 @@ import com.pixelized.rplexicon.data.repository.character.ObjectActionRepository import com.pixelized.rplexicon.ui.navigation.screens.characterSheetArgument import com.pixelized.rplexicon.ui.screens.character.composable.actions.ObjectItemUio import com.pixelized.rplexicon.ui.screens.character.composable.dialogs.SkillDialogDetailUio -import com.pixelized.rplexicon.utilitary.extentions.string.objectIcon import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -38,7 +37,7 @@ class ObjectsViewModel @Inject constructor( val data = objects[character]?.map { ObjectItemUio( prefix = it.prefix, - icon = it.icon ?: "${it.prefix ?: ""}${it.name}".objectIcon(), + icon = it.icon, name = it.name, original = descriptionRepository.getDescription(name = it.name)?.original, effect = it.effect, @@ -62,12 +61,12 @@ class ObjectsViewModel @Inject constructor( } } - fun showObjectDetailDialog(item: String) { - val description = descriptionRepository.getDescription(name = item) - val item = objectsRepository.find(character = character, item = item) + fun showObjectDetailDialog(name: String) { + val description = descriptionRepository.getDescription(name = name) + val item = objectsRepository.find(character = character, item = name) if (item != null && description != null) { _objectDetailDialog.value = SkillDialogDetailUio( - icon = item.icon ?: item.name.objectIcon(), + icon = item.icon, name = item.name, original = description.original, description = description.description diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillsViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillsViewModel.kt index 9622cca..464246c 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillsViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillsViewModel.kt @@ -87,7 +87,7 @@ class SkillsViewModel @Inject constructor( val skill = skillRepository.find(character = character, skill = item) if (skill != null && description != null) { _skillDetailDialog.value = SkillDialogDetailUio( - icon = skill.icon ?: skill.name.skillIcon(), + icon = skill.icon, name = skill.name, original = description.original, description = description.description diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SpellsViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SpellsViewModel.kt index 2bedeb6..433329d 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SpellsViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SpellsViewModel.kt @@ -111,11 +111,16 @@ class SpellsViewModel @Inject constructor( character = characterName, spell = name, ) + val description = descriptionRepository.getDescription( + name = assignedSpell?.spell?.name, + ) if (assignedSpell != null && character != null && characterFire != null) { val icon = assignedSpell.effect?.dice?.icon ?: R.drawable.ic_d20_24 val base = assignedSpell.effect?.toString(character = character, level = 1) ?: "" _preparedSpellLevel.value = SpellChooserUio( name = name, + original = description?.original, + icon = assignedSpell.spell.icon, spells = List( size = max(0, character.highestSpellLevel() + 1 - assignedSpell.spell.level) ) { index -> @@ -188,7 +193,7 @@ class SpellsViewModel @Inject constructor( val spell = spellRepository.findSpell(name = item) if (spell != null && description != null) { _spellDetailDialog.value = SpellDialogDetailUio( - icon = spell.icon ?: spell.name.spellIcon(), + icon = spell.icon, name = spell.name, translated = description.original, level = "${spell.level}", diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationViewModel.kt index 5894242..9c40fa4 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationViewModel.kt @@ -117,7 +117,7 @@ class AlterationViewModel @Inject constructor( name = alteration.name, ) _alterationDetailDialog.value = AlterationDialogDetailUio( - icon = alteration.icon ?: alteration.name.alterationIcon(), + icon = alteration.icon, name = id, original = description?.original, source = alteration.source, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyViewModel.kt index 18d2a22..e9af5e7 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyViewModel.kt @@ -159,7 +159,7 @@ class ProficiencyViewModel @Inject constructor( val skill = skillRepository.find(character = character, skill = item) if (skill != null && description != null) { _skillDetailDialog.value = SkillDialogDetailUio( - icon = skill.icon ?: skill.name.skillIcon(), + icon = skill.icon, name = skill.name, original = description.original, description = description.description diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingScreen.kt index f3e055d..fb255d0 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingScreen.kt @@ -49,7 +49,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.rememberBackgroundGradient +import com.pixelized.rplexicon.ui.composable.images.rememberBackgroundGradient import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost import com.pixelized.rplexicon.ui.navigation.screens.navigateToCharacterSheet import com.pixelized.rplexicon.ui.navigation.screens.navigateToLexicon diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/detail/LexiconDetailScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/detail/LexiconDetailScreen.kt index 0e64203..397fb95 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/detail/LexiconDetailScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/detail/LexiconDetailScreen.kt @@ -51,10 +51,10 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.AsyncImage -import com.pixelized.rplexicon.ui.composable.BackgroundImage -import com.pixelized.rplexicon.ui.composable.FullScreenImageHandler -import com.pixelized.rplexicon.ui.composable.FullScreenImageViewModel +import com.pixelized.rplexicon.ui.composable.images.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.FullScreenImageHandler +import com.pixelized.rplexicon.ui.composable.images.FullScreenImageViewModel import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost import com.pixelized.rplexicon.ui.navigation.screens.navigateToCharacterSheet import com.pixelized.rplexicon.ui.theme.LexiconTheme diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/FantasyMap.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/FantasyMap.kt index 15fc3b1..15cb663 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/FantasyMap.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/FantasyMap.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp -import com.pixelized.rplexicon.ui.composable.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.AsyncImage import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.extentions.lexicon diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetailScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetailScreen.kt index 58541f1..8bdc2eb 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetailScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetailScreen.kt @@ -76,11 +76,11 @@ import androidx.compose.ui.unit.min import androidx.hilt.navigation.compose.hiltViewModel import com.pixelized.rplexicon.LocalSnack import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.AsyncImage -import com.pixelized.rplexicon.ui.composable.BackgroundImage -import com.pixelized.rplexicon.ui.composable.FullScreenImageHandler -import com.pixelized.rplexicon.ui.composable.FullScreenImageViewModel -import com.pixelized.rplexicon.ui.composable.rememberBackgroundGradient +import com.pixelized.rplexicon.ui.composable.images.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.FullScreenImageHandler +import com.pixelized.rplexicon.ui.composable.images.FullScreenImageViewModel +import com.pixelized.rplexicon.ui.composable.images.rememberBackgroundGradient import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost import com.pixelized.rplexicon.ui.navigation.screens.navigateToLocationDetail import com.pixelized.rplexicon.ui.theme.LexiconTheme diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/detail/QuestDetailScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/detail/QuestDetailScreen.kt index 7cf6737..bc4ebd2 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/detail/QuestDetailScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/detail/QuestDetailScreen.kt @@ -53,10 +53,10 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.AsyncImage -import com.pixelized.rplexicon.ui.composable.BackgroundImage -import com.pixelized.rplexicon.ui.composable.FullScreenImageHandler -import com.pixelized.rplexicon.ui.composable.FullScreenImageViewModel +import com.pixelized.rplexicon.ui.composable.images.AsyncImage +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.FullScreenImageHandler +import com.pixelized.rplexicon.ui.composable.images.FullScreenImageViewModel import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost import com.pixelized.rplexicon.ui.navigation.screens.navigateToLexiconDetail import com.pixelized.rplexicon.ui.navigation.screens.navigateToLocationDetail diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/RollOverlayViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/RollOverlayViewModel.kt index 32551fe..98ad409 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/RollOverlayViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/RollOverlayViewModel.kt @@ -192,7 +192,7 @@ class RollOverlayViewModel @Inject constructor( ) if (alteration != null) { _alterationDetailDialog.value = AlterationDialogDetailUio( - icon = alteration.icon ?: alteration.name.alterationIcon(), + icon = alteration.icon, name = id, original = description?.original, source = alteration.source, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/factory/AlterationFactory.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/factory/AlterationFactory.kt index 0daa13f..2170436 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/factory/AlterationFactory.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/factory/AlterationFactory.kt @@ -24,13 +24,13 @@ class AlterationFactory @Inject constructor( actives: Map, description: Map, ): List { - return alterations.map { + return alterations.map { alteration -> AlterationItemUio( - icon = it.icon ?: it.name.alterationIcon(), - label = it.name, - source = it.source, - subLabel = description[it.name]?.original, - checked = actives[it.name] ?: false, + icon = alteration.icon, + label = alteration.name, + source = alteration.source, + subLabel = description[alteration.name]?.original, + checked = actives[alteration.name] ?: false, override = false, ) } @@ -145,14 +145,14 @@ class AlterationFactory @Inject constructor( return alterationRepository .getAssignedAlterations(character = diceThrow.character, *properties.toTypedArray()) .firstOrNull() - ?.map { alt -> + ?.map { alteration -> AlterationItemUio( - icon = alt.icon, - label = alt.name, - subLabel = description[alt.name]?.original, - source = alt.source, - checked = override[alt.name] ?: checked[alt.name] ?: false, - override = override[alt.name]?.let { it != checked[alt.name] } ?: false, + icon = alteration.icon, + label = alteration.name, + subLabel = description[alteration.name]?.original, + source = alteration.source, + checked = override[alteration.name] ?: checked[alteration.name] ?: false, + override = override[alteration.name]?.let { it != checked[alteration.name] } ?: false, ) } ?: emptyList() } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailScreen.kt index 2abc12f..0b4e2bd 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailScreen.kt @@ -43,7 +43,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import com.pixelized.rplexicon.R -import com.pixelized.rplexicon.ui.composable.BackgroundImage +import com.pixelized.rplexicon.ui.composable.images.BackgroundImage import com.pixelized.rplexicon.ui.composable.error.HandleFetchError import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost import com.pixelized.rplexicon.ui.theme.LexiconTheme diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticViewModel.kt index 05a26c2..f93f3f9 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticViewModel.kt @@ -72,7 +72,7 @@ class StatisticViewModel @Inject constructor( if (alteration != null) { _alterationDetailDialog.value = AlterationDialogDetailUio( - icon = alteration.icon ?: alteration.name.alterationIcon(), + icon = alteration.icon, name = name, original = description?.original, source = alteration.source,