From 5fdf262bde7230c4ef7a21ab533eb6a7f100807b Mon Sep 17 00:00:00 2001 From: "Andres Gomez, Thomas (ITDV RL)" Date: Fri, 17 Jan 2025 10:48:34 +0100 Subject: [PATCH] Nam integration into the app and some small releated fixes. --- .../pixelized/rplexicon/LauncherViewModel.kt | 12 +-- .../rplexicon/data/model/CharacterSheet.kt | 3 +- .../characterSheet/CharacterSheetParser.kt | 5 +- .../data/parser/inventory/EquipmentParser.kt | 71 ------------------ .../character/EquipmentRepository.kt | 36 --------- .../authentication/AuthenticationScreen.kt | 5 +- .../screens/character/CharacterSheetScreen.kt | 6 +- .../character/CharacterSheetViewModel.kt | 14 +--- .../factory/CharacterSheetUioFactory.kt | 2 +- .../character/factory/SpellUioFactory.kt | 3 + .../summary/pages/statistic/SummaryFactory.kt | 4 +- app/src/main/res/drawable/im_nam.webp | Bin 0 -> 42158 bytes settings.gradle.kts | 4 - 13 files changed, 19 insertions(+), 146 deletions(-) delete mode 100644 app/src/main/java/com/pixelized/rplexicon/data/parser/inventory/EquipmentParser.kt delete mode 100644 app/src/main/java/com/pixelized/rplexicon/data/repository/character/EquipmentRepository.kt create mode 100644 app/src/main/res/drawable/im_nam.webp diff --git a/app/src/main/java/com/pixelized/rplexicon/LauncherViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/LauncherViewModel.kt index 042dcea..11af982 100644 --- a/app/src/main/java/com/pixelized/rplexicon/LauncherViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/LauncherViewModel.kt @@ -10,7 +10,6 @@ import com.pixelized.rplexicon.data.repository.character.ActionRepository import com.pixelized.rplexicon.data.repository.character.AlterationRepository import com.pixelized.rplexicon.data.repository.character.CharacterSheetRepository import com.pixelized.rplexicon.data.repository.character.DescriptionRepository -import com.pixelized.rplexicon.data.repository.character.EquipmentRepository import com.pixelized.rplexicon.data.repository.character.ItemsRepository import com.pixelized.rplexicon.data.repository.character.SkillRepository import com.pixelized.rplexicon.data.repository.character.SpellRepository @@ -44,7 +43,6 @@ class LauncherViewModel @Inject constructor( skillRepository: SkillRepository, descriptionRepository: DescriptionRepository, itemsRepository: ItemsRepository, - equipmentRepository: EquipmentRepository, removeConRepository: RemoteConfigRepository // Unused but injected to initialize it. ) : ViewModel() { @@ -112,14 +110,6 @@ class LauncherViewModel @Inject constructor( _error.emit(FetchErrorUio.Structure(type = Type.INVENTORY)) } } - val equipment = async { - try { - equipmentRepository.fetchEquipment() - } catch (exception: Exception) { - Log.e(TAG, exception.message, exception) - _error.emit(FetchErrorUio.Structure(type = Type.EQUIPMENT)) - } - } awaitAll(characterSheet) val alteration = async { @@ -156,7 +146,7 @@ class LauncherViewModel @Inject constructor( } awaitAll(order, lexicon, location, quest) - awaitAll(description, inventory, equipment, alteration, action, spell, skill) + awaitAll(description, inventory, alteration, action, spell, skill) withContext(Dispatchers.Main) { isLoading = false diff --git a/app/src/main/java/com/pixelized/rplexicon/data/model/CharacterSheet.kt b/app/src/main/java/com/pixelized/rplexicon/data/model/CharacterSheet.kt index 45472e9..cfed188 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/model/CharacterSheet.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/model/CharacterSheet.kt @@ -5,6 +5,7 @@ import androidx.annotation.StringRes import com.pixelized.rplexicon.R data class CharacterSheet( + val active: Boolean, val name: String, val race: String?, val proficiency: Int, // Bonus de maîtrise @@ -22,7 +23,7 @@ data class CharacterSheet( val spell9: Int?, // level 9 spell slot val dC: Int?, // offensive saving throw. val armorClass: Int, // Classe d'armure - val speed: Int, // Vitesse + val speed: Float, // Vitesse val strength: Int, // Force val dexterity: Int, // Dextérité val constitution: Int, // Constitution diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/characterSheet/CharacterSheetParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/characterSheet/CharacterSheetParser.kt index c3d028e..dfaf46c 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/characterSheet/CharacterSheetParser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/parser/characterSheet/CharacterSheetParser.kt @@ -33,6 +33,7 @@ class CharacterSheetParser @Inject constructor( val name = item.parse(column = NAME) if (name != null) { CharacterSheet( + active = item.parseBool(column = ACTIVE) ?: false, name = name, race = item.parse(column = RACE), proficiency = item.parseInt(column = MASTERY) ?: 2, @@ -50,7 +51,7 @@ class CharacterSheetParser @Inject constructor( spell9 = item.parseInt(column = SPELL_LEVEL_9), dC = item.parseInt(column = DD_SAVE_THROW), armorClass = item.parseInt(column = ARMOR_CLASS) ?: 10, - speed = item.parseInt(column = SPEED) ?: 10, + speed = item.parseFloat(column = SPEED) ?: 10f, strength = item.parseInt(column = STRENGTH) ?: 10, dexterity = item.parseInt(column = DEXTERITY) ?: 10, constitution = item.parseInt(column = CONSTITUTION) ?: 10, @@ -103,6 +104,7 @@ class CharacterSheetParser @Inject constructor( } companion object { + private val ACTIVE = column("Actif") private val NAME = column("Nom") private val RACE = column("Race") private val LEVEL = column("Niveau") @@ -157,6 +159,7 @@ class CharacterSheetParser @Inject constructor( private val ROWS get() = listOf( + ACTIVE, NAME, RACE, LEVEL, diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/inventory/EquipmentParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/inventory/EquipmentParser.kt deleted file mode 100644 index 717f3ea..0000000 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/inventory/EquipmentParser.kt +++ /dev/null @@ -1,71 +0,0 @@ -package com.pixelized.rplexicon.data.parser.inventory - -import com.google.api.services.sheets.v4.model.ValueRange -import com.pixelized.rplexicon.data.model.Equipment -import com.pixelized.rplexicon.data.parser.parserScope -import com.pixelized.rplexicon.utilitary.exceptions.IncompatibleSheetStructure -import javax.inject.Inject - -class EquipmentParser @Inject constructor() { - - @Throws(IncompatibleSheetStructure::class) - fun parse(data: ValueRange): Map = parserScope { - lateinit var characters: List - val equipments = hashMapOf() - - data.forEachRowIndexed { index, row -> - when (index) { - // ignore the first column - 0 -> characters = row.drop(1).map { it.toString() } - - else -> row.drop(1).forEachIndexed { column, item -> - val character = characters[column] - equipments.getEquipment(name = character).let { - when (row[0]) { - BACKGROUND -> it.background = item.toItem() - HEAD -> it.head = item.toItem() - FACE -> it.face = item.toItem() - NECK -> it.neck = item.toItem() - SHOULDER -> it.shoulder = item.toItem() - BODY -> it.body = item.toItem() - CHEST -> it.chest = item.toItem() - ARM -> it.arm = item.toItem() - HAND -> it.hand = item.toItem() - RING_1 -> it.ring1 = item.toItem() - RING_2 -> it.ring2 = item.toItem() - WAIST -> it.waist = item.toItem() - FOOT -> it.foot = item.toItem() - MAIN_HAND -> it.mainHand = item.toItem() - OFF_HAND -> it.offHand = item.toItem() - } - } - } - } - } - - return@parserScope characters.associateWith { - equipments.getEquipment(name = it).build() - } - } - - private fun HashMap.getEquipment(name: String) = - this.getOrPut(name) { Equipment.Builder() } - - companion object { - private const val BACKGROUND = "Silhouette" - private const val HEAD = "Tête" - private const val FACE = "Visage" - private const val NECK = "Gorge" - private const val SHOULDER = "Épaules" - private const val BODY = "Corp" - private const val CHEST = "Torse" - private const val ARM = "Bras" - private const val HAND = "Mains" - private const val RING_1 = "Anneau 1" - private const val RING_2 = "Anneau 2" - private const val WAIST = "Taille" - private const val FOOT = "Pieds" - private const val MAIN_HAND = "Main droite" - private const val OFF_HAND = "Main gauche" - } -} \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/rplexicon/data/repository/character/EquipmentRepository.kt b/app/src/main/java/com/pixelized/rplexicon/data/repository/character/EquipmentRepository.kt deleted file mode 100644 index ef0a4db..0000000 --- a/app/src/main/java/com/pixelized/rplexicon/data/repository/character/EquipmentRepository.kt +++ /dev/null @@ -1,36 +0,0 @@ -package com.pixelized.rplexicon.data.repository.character - -import com.pixelized.rplexicon.data.model.Equipment -import com.pixelized.rplexicon.data.parser.inventory.EquipmentParser -import com.pixelized.rplexicon.data.repository.CharacterBinder -import com.pixelized.rplexicon.data.repository.GoogleSheetServiceRepository -import com.pixelized.rplexicon.utilitary.Update -import com.pixelized.rplexicon.utilitary.exceptions.IncompatibleSheetStructure -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.StateFlow -import javax.inject.Inject -import javax.inject.Singleton - -@Singleton -class EquipmentRepository @Inject constructor( - private val googleRepository: GoogleSheetServiceRepository, - private val equipmentParser: EquipmentParser, -) { - private val _data = MutableStateFlow>(emptyMap()) - val data: StateFlow> get() = _data - - var lastSuccessFullUpdate: Update = Update.INITIAL - private set - - fun find(name: String?): Equipment? = _data.value[name] - - @Throws(IncompatibleSheetStructure::class, Exception::class) - suspend fun fetchEquipment() { - googleRepository.fetch { sheet -> - val request = sheet.get(CharacterBinder.ID, CharacterBinder.EQUIPMENT) - val data = equipmentParser.parse(data = request.execute()) - _data.tryEmit(data) - lastSuccessFullUpdate = Update.currentTime() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/authentication/AuthenticationScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/authentication/AuthenticationScreen.kt index 8ebb5e7..0fe3b71 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/authentication/AuthenticationScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/authentication/AuthenticationScreen.kt @@ -320,7 +320,10 @@ private fun rememberPortrait(): List = rememberSaveable { listOf( R.drawable.im_brulkhai, R.drawable.im_leandre, - R.drawable.im_nelia, +// listOf( +// R.drawable.im_nelia, + R.drawable.im_nam, +// ).shuffled().first(), R.drawable.im_tigrane, R.drawable.im_unathana, ).shuffled() 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 91a6d69..8e70cee 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 @@ -105,10 +105,7 @@ enum class CharacterTabUio(@StringRes val label: Int) { Proficiency(R.string.character_sheet_tab_proficiency), } -@OptIn( - ExperimentalMaterialApi::class, - ExperimentalFoundationApi::class, -) +@OptIn(ExperimentalMaterialApi::class) @Composable fun CharacterSheetScreen( viewModel: CharacterSheetViewModel = hiltViewModel(), @@ -490,7 +487,6 @@ private fun CharacterScreenPreview( } } -@OptIn(ExperimentalFoundationApi::class, ExperimentalMaterialApi::class) @Composable private fun BackHandler( sheetState: ModalBottomSheetState, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetViewModel.kt index 00561b0..769eb20 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/CharacterSheetViewModel.kt @@ -10,7 +10,6 @@ import com.pixelized.rplexicon.data.repository.character.ActionRepository import com.pixelized.rplexicon.data.repository.character.AlterationRepository import com.pixelized.rplexicon.data.repository.character.CharacterSheetRepository import com.pixelized.rplexicon.data.repository.character.DescriptionRepository -import com.pixelized.rplexicon.data.repository.character.EquipmentRepository import com.pixelized.rplexicon.data.repository.character.ItemsRepository import com.pixelized.rplexicon.data.repository.character.SkillRepository import com.pixelized.rplexicon.data.repository.character.SpellRepository @@ -33,7 +32,6 @@ class CharacterSheetViewModel @Inject constructor( private val descriptionRepository: DescriptionRepository, private val alterationRepository: AlterationRepository, private val itemsRepository: ItemsRepository, - private val equipmentRepository: EquipmentRepository, private val actionRepository: ActionRepository, private val spellRepository: SpellRepository, private val skillRepository: SkillRepository, @@ -93,16 +91,6 @@ class CharacterSheetViewModel @Inject constructor( } } } - val equipment = async { - if (force || equipmentRepository.lastSuccessFullUpdate.shouldUpdate()) { - try { - equipmentRepository.fetchEquipment() - } catch (exception: Exception) { - Log.e(TAG, exception.message, exception) - _error.emit(FetchErrorUio.Structure(type = Type.EQUIPMENT)) - } - } - } awaitAll(characters) val alterations = async { if (force || alterationRepository.lastSuccessFullUpdate.shouldUpdate()) { @@ -144,7 +132,7 @@ class CharacterSheetViewModel @Inject constructor( } } } - awaitAll(description, alterations, inventory, equipment, actions, spells, skills) + awaitAll(description, alterations, inventory, actions, spells, skills) _isLoading.value = false } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/CharacterSheetUioFactory.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/CharacterSheetUioFactory.kt index 6d2cb7a..d48640b 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/CharacterSheetUioFactory.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/factory/CharacterSheetUioFactory.kt @@ -281,7 +281,7 @@ class CharacterSheetUioFactory @Inject constructor() { ), speed = LabelPointUio( label = R.string.character_sheet_title_speed, - value = "${max(sheet.speed + status[Property.SPEED].sum, 0)}m", + value = "${max(sheet.speed + status[Property.SPEED].sum.toFloat(), 0f)}m", ), masteries = MasteriesUio( martial = sheet.martial, 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 49d592c..23245ff 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 @@ -25,6 +25,9 @@ class SpellUioFactory @Inject constructor( val modifier = diceThrow.modifier.sumOf { when (it) { Property.PROFICIENCY -> characterSheet.proficiency + Property.STRENGTH -> characterSheet.strength.modifier + Property.DEXTERITY -> characterSheet.dexterity.modifier + Property.CONSTITUTION -> characterSheet.constitution.modifier Property.INTELLIGENCE -> characterSheet.intelligence.modifier Property.WISDOM -> characterSheet.wisdom.modifier Property.CHARISMA -> characterSheet.charisma.modifier diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/SummaryFactory.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/SummaryFactory.kt index 1005ad8..009979a 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/SummaryFactory.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/SummaryFactory.kt @@ -146,7 +146,7 @@ class SummaryFactory @Inject constructor( val data = DataStruct() characterSheetRepository.data .combine(activeAlterationRepository.getActiveAlterations()) { sheets, alterations -> - data.sheets = sheets + data.sheets = sheets.filter { entry -> entry.value.active } data.alterations = alterations } .combine(firebaseRepository.getCharacters()) { _, fire -> @@ -216,7 +216,7 @@ class SummaryFactory @Inject constructor( label = (dexterity.modifier + status[Property.INITIATIVE].sum).toLabel() ) val speed = label( - label = "${max(sheet.speed + status[Property.SPEED].sum, 0)}m", + label = "${max(sheet.speed + status[Property.SPEED].sum.toFloat(), 0f)}m", ) val inspiration = proficiency( label = null, diff --git a/app/src/main/res/drawable/im_nam.webp b/app/src/main/res/drawable/im_nam.webp new file mode 100644 index 0000000000000000000000000000000000000000..b126536d2c34597d2247c0abf341fbec4044c282 GIT binary patch literal 42158 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 z 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 V#W^v-bAn%(QhtZfg9-))1^}fAVHp4b literal 0 HcmV?d00001 diff --git a/settings.gradle.kts b/settings.gradle.kts index 6cb3e50..c3e15c8 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,10 +6,6 @@ pluginManagement { } } -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.6.0" -} - dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories {