From 223ae9f02ba4cc02245178dd2060f93c89b44df6 Mon Sep 17 00:00:00 2001 From: "Andres Gomez, Thomas (ITDV RL)" Date: Tue, 28 May 2024 11:02:22 +0200 Subject: [PATCH] Update the landing screen background & Clean import --- .../com/pixelized/rplexicon/MainActivity.kt | 2 +- .../pixelized/rplexicon/MainApplication.kt | 1 - .../ui/composable/BackgroundImage.kt | 33 ++++-- .../ui/composable/BlurredOverlayHost.kt | 2 +- .../ui/composable/FloatingActionButton.kt | 28 ++++- .../rplexicon/ui/composable/ImageDialog.kt | 2 +- .../edit/HandleHitPointEditDialog.kt | 2 +- .../composable/edit/HandleSkillEditDialog.kt | 2 +- .../composable/edit/HandleSpellEditDialog.kt | 2 +- .../rplexicon/ui/navigation/ScreenNavHost.kt | 6 +- .../screens/character/CharacterSheetScreen.kt | 2 +- .../composable/actions/AttackItem.kt | 1 - .../character/composable/actions/SkillItem.kt | 1 - .../composable/character/MasteryCircle.kt | 2 +- .../character/composable/character/Stat.kt | 2 +- .../factory/CharacterSheetUioFactory.kt | 2 +- .../character/pages/actions/SkillDetail.kt | 2 +- .../pages/actions/SpellsViewModel.kt | 2 +- .../pages/alteration/AlterationDetail.kt | 2 +- .../pages/alteration/AlterationPage.kt | 3 - .../pages/proficiency/ProficiencyPage.kt | 5 +- .../ui/screens/landing/LandingItem.kt | 1 - .../ui/screens/landing/LandingScreen.kt | 105 ++++++++++++++++-- .../lexicon/detail/LexiconDetailScreen.kt | 2 +- .../ui/screens/lexicon/list/LexiconItem.kt | 3 +- .../screens/lexicon/list/LexiconViewModel.kt | 8 +- .../location/detail/LocationDetailScreen.kt | 2 +- .../ui/screens/location/list/LocationItem.kt | 2 +- .../screens/quest/detail/QuestDetailScreen.kt | 2 +- .../ui/screens/quest/list/QuestItem.kt | 2 +- .../ui/screens/rolls/composable/RollDice.kt | 16 ++- .../ui/screens/rolls/composable/ThrowsCard.kt | 2 +- .../ui/screens/search/SearchScreen.kt | 6 +- .../ui/screens/spell/SpellDetailScreen.kt | 12 +- .../ui/screens/spell/SpellDetailViewModel.kt | 1 - .../summary/composable/AttributesSummary.kt | 2 +- .../composable/CharacteristicsSummary.kt | 2 +- .../summary/composable/PassivesSummary.kt | 2 +- .../summary/composable/ProficiencySummary.kt | 2 +- .../summary/composable/SavingThrowsSummary.kt | 2 +- .../summary/composable/SpellSummary.kt | 2 +- .../summary/composable/StatusSummary.kt | 4 +- .../summary/composable/common/SummaryRow.kt | 2 +- .../statistic/rememberProficienciesSummary.kt | 1 - .../pages/statistic/StatisticSummary.kt | 5 - .../summary/pages/statistic/SummaryFactory.kt | 2 +- .../modifier/ModifierEx+CriticalShader.kt | 73 ++++++++++++ .../ModifierEx+DashedBorder.kt} | 2 +- .../extentions/{ => modifier}/ModifierEx.kt | 3 +- app/src/main/res/drawable/im_naderius.webp | Bin 28700 -> 0 bytes .../res/drawable/im_naderius_background.webp | Bin 0 -> 37548 bytes .../main/res/drawable/im_naderius_dice.webp | Bin 0 -> 14860 bytes .../res/drawable/im_naderius_foreground.webp | Bin 0 -> 30766 bytes 53 files changed, 282 insertions(+), 90 deletions(-) create mode 100644 app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx+CriticalShader.kt rename app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/{ModifierExt+dashedBorder.kt => modifier/ModifierEx+DashedBorder.kt} (99%) rename app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/{ => modifier}/ModifierEx.kt (98%) delete mode 100644 app/src/main/res/drawable/im_naderius.webp create mode 100644 app/src/main/res/drawable/im_naderius_background.webp create mode 100644 app/src/main/res/drawable/im_naderius_dice.webp create mode 100644 app/src/main/res/drawable/im_naderius_foreground.webp diff --git a/app/src/main/java/com/pixelized/rplexicon/MainActivity.kt b/app/src/main/java/com/pixelized/rplexicon/MainActivity.kt index 97e959a..b2a26e8 100644 --- a/app/src/main/java/com/pixelized/rplexicon/MainActivity.kt +++ b/app/src/main/java/com/pixelized/rplexicon/MainActivity.kt @@ -39,7 +39,7 @@ import com.pixelized.rplexicon.ui.screens.rolls.RollOverlay import com.pixelized.rplexicon.ui.screens.rolls.RollOverlayViewModel import com.pixelized.rplexicon.ui.screens.rolls.rememberBlurredRollOverlayHostState import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder import dagger.hilt.android.AndroidEntryPoint val NO_WINDOW_INSETS = WindowInsets(0, 0, 0, 0) diff --git a/app/src/main/java/com/pixelized/rplexicon/MainApplication.kt b/app/src/main/java/com/pixelized/rplexicon/MainApplication.kt index 4dd910a..caa5815 100644 --- a/app/src/main/java/com/pixelized/rplexicon/MainApplication.kt +++ b/app/src/main/java/com/pixelized/rplexicon/MainApplication.kt @@ -5,7 +5,6 @@ import coil.ImageLoader import coil.ImageLoaderFactory import coil.disk.DiskCache import coil.memory.MemoryCache -import coil.size.Precision import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/BackgroundImage.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/BackgroundImage.kt index 51008c6..507a34c 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/BackgroundImage.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/BackgroundImage.kt @@ -1,16 +1,14 @@ package com.pixelized.rplexicon.ui.composable +import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box -import androidx.compose.material3.Icon -import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.ColorMatrix import androidx.compose.ui.graphics.painter.Painter @@ -20,17 +18,21 @@ import androidx.compose.ui.layout.ContentScale @Composable fun BackgroundImage( modifier: Modifier = Modifier, - tint: Color = LocalContentColor.current, - background: Brush = rememberBackgroundGradient(), + alignment: Alignment = Alignment.TopCenter, + contentScale: ContentScale = ContentScale.Crop, + colorFilter: ColorFilter? = rememberSaturationFilter(saturation = 0f), painter: Painter, + background: Brush = rememberBackgroundGradient(), ) { Box( modifier = modifier ) { - Icon( + Image( modifier = Modifier.matchParentSize(), - tint = tint, + colorFilter = colorFilter, painter = painter, + alignment = alignment, + contentScale = contentScale, contentDescription = null, ) Box( @@ -46,11 +48,7 @@ fun BackgroundImage( modifier: Modifier = Modifier, alignment: Alignment = Alignment.TopCenter, contentScale: ContentScale = ContentScale.Crop, - colorFilter: ColorFilter? = remember { - ColorFilter.colorMatrix( - ColorMatrix().also { it.setToSaturation(0f) } - ) - }, + colorFilter: ColorFilter? = rememberSaturationFilter(saturation = 0f), model: Any?, background: Brush = rememberBackgroundGradient(), ) { @@ -72,6 +70,17 @@ fun BackgroundImage( } } +@Composable +fun rememberSaturationFilter( + saturation: Float = 0f, +): ColorFilter { + return remember { + ColorFilter.colorMatrix( + ColorMatrix().also { it.setToSaturation(saturation) } + ) + } +} + @Composable fun rememberBackgroundGradient( from: Float = 0.5f, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/BlurredOverlayHost.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/BlurredOverlayHost.kt index b9d2f3e..761b890 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/BlurredOverlayHost.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/BlurredOverlayHost.kt @@ -25,8 +25,8 @@ import androidx.compose.ui.draw.BlurredEdgeTreatment import androidx.compose.ui.draw.blur import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.dp -import com.pixelized.rplexicon.utilitary.extentions.clickableInterceptor import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.clickableInterceptor @Stable interface BlurredOverlayHostState { diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/FloatingActionButton.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/FloatingActionButton.kt index 2e1fcbb..b05f258 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/FloatingActionButton.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/FloatingActionButton.kt @@ -1,11 +1,31 @@ package com.pixelized.rplexicon.ui.composable -import androidx.compose.animation.* -import androidx.compose.animation.core.* +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.FastOutSlowInEasing +import androidx.compose.animation.core.animateDpAsState +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.shrinkHorizontally import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.* -import androidx.compose.material3.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.BoxWithConstraints +import androidx.compose.foundation.layout.BoxWithConstraintsScope +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.material3.ButtonColors +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.ButtonElevation +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/composable/ImageDialog.kt b/app/src/main/java/com/pixelized/rplexicon/ui/composable/ImageDialog.kt index 7df8956..6c73ddf 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/composable/ImageDialog.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/composable/ImageDialog.kt @@ -27,8 +27,8 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.ViewModel import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.theme.LexiconTheme +import com.pixelized.rplexicon.utilitary.extentions.modifier.zoomable import com.pixelized.rplexicon.utilitary.extentions.uri -import com.pixelized.rplexicon.utilitary.extentions.zoomable import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject 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 3362490..49723cd 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 @@ -34,8 +34,8 @@ 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.ddBorder import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder import com.pixelized.rplexicon.utilitary.extentions.toLabel @Stable 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 7982814..c415ab6 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 @@ -25,8 +25,8 @@ 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.ddBorder import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class SkillEditDialogUio( 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 02bccad..44c074b 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 @@ -26,8 +26,8 @@ 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.ddBorder import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class SpellEditDialogUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt index 151f04c..5e933f0 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt @@ -8,16 +8,16 @@ import androidx.navigation.NavHostController import androidx.navigation.NavOptionsBuilder import androidx.navigation.compose.NavHost import androidx.navigation.compose.rememberNavController -import com.pixelized.rplexicon.ui.navigation.screens.composableLexicon -import com.pixelized.rplexicon.ui.navigation.screens.composableLocations -import com.pixelized.rplexicon.ui.navigation.screens.composableQuests import com.pixelized.rplexicon.ui.navigation.screens.AUTHENTICATION_ROUTE import com.pixelized.rplexicon.ui.navigation.screens.composableAuthentication import com.pixelized.rplexicon.ui.navigation.screens.composableCharacterSheet import com.pixelized.rplexicon.ui.navigation.screens.composableLanding +import com.pixelized.rplexicon.ui.navigation.screens.composableLexicon import com.pixelized.rplexicon.ui.navigation.screens.composableLexiconDetail import com.pixelized.rplexicon.ui.navigation.screens.composableLocationDetail +import com.pixelized.rplexicon.ui.navigation.screens.composableLocations import com.pixelized.rplexicon.ui.navigation.screens.composableQuestDetail +import com.pixelized.rplexicon.ui.navigation.screens.composableQuests import com.pixelized.rplexicon.ui.navigation.screens.composableSearch import com.pixelized.rplexicon.ui.navigation.screens.composableSpellDetail import com.pixelized.rplexicon.ui.navigation.screens.composableSummary 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 142fef4..669e969 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 @@ -91,7 +91,7 @@ import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.Proficienc import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.ProficiencyPreview import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.ProficiencyViewModel import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.lexiconShadow +import com.pixelized.rplexicon.utilitary.extentions.modifier.lexiconShadow import kotlinx.coroutines.launch 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 fb96a93..176ed50 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 @@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.material.minimumInteractiveComponentSize import androidx.compose.material3.Icon 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 d414275..7879b2e 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 @@ -11,7 +11,6 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.minimumInteractiveComponentSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/MasteryCircle.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/MasteryCircle.kt index 08e9db5..5277ac0 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/MasteryCircle.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/MasteryCircle.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.dashedBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.dashedBorder @Composable fun MasteryCircle( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/Stat.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/Stat.kt index 413cccc..93e6f4a 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/Stat.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/composable/character/Stat.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder import com.pixelized.rplexicon.utilitary.extentions.toLabel @Stable 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 b0dc786..4520047 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 @@ -12,8 +12,8 @@ import com.pixelized.rplexicon.ui.screens.character.composable.character.StatUio import com.pixelized.rplexicon.ui.screens.character.pages.proficiency.CharacterSheetUio import com.pixelized.rplexicon.utilitary.extentions.local.passivesBonus import com.pixelized.rplexicon.utilitary.extentions.local.sum -import com.pixelized.rplexicon.utilitary.extentions.modifier import com.pixelized.rplexicon.utilitary.extentions.masteryMultiplier +import com.pixelized.rplexicon.utilitary.extentions.modifier import javax.inject.Inject import kotlin.math.max diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillDetail.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillDetail.kt index 748139d..aad1805 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillDetail.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/actions/SkillDetail.kt @@ -34,8 +34,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class SkillDetailUio( 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 07fc4bc..8162cb9 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 @@ -10,10 +10,10 @@ import com.pixelized.rplexicon.R import com.pixelized.rplexicon.business.SpellBookUseCase import com.pixelized.rplexicon.data.model.AssignedSpell import com.pixelized.rplexicon.data.model.CharacterSheet -import com.pixelized.rplexicon.data.network.CharacterSheetFire import com.pixelized.rplexicon.data.model.DiceThrow import com.pixelized.rplexicon.data.model.Property import com.pixelized.rplexicon.data.model.Throw +import com.pixelized.rplexicon.data.network.CharacterSheetFire import com.pixelized.rplexicon.data.repository.authentication.FirebaseRepository import com.pixelized.rplexicon.data.repository.character.CharacterSheetRepository import com.pixelized.rplexicon.data.repository.character.SpellRepository diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationDetail.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationDetail.kt index 31d6013..e30d9f7 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationDetail.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationDetail.kt @@ -34,8 +34,8 @@ import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.annotateWithDropCap -import com.pixelized.rplexicon.utilitary.extentions.ddBorder import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class AlterationDetailUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationPage.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationPage.kt index a963bc5..4ef8f33 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationPage.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/alteration/AlterationPage.kt @@ -13,13 +13,10 @@ import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.runtime.Stable import androidx.compose.runtime.State -import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier 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 androidx.hilt.navigation.compose.hiltViewModel import com.pixelized.rplexicon.ui.composable.CategoryHeader import com.pixelized.rplexicon.ui.screens.character.composable.actions.AlterationItem diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyPage.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyPage.kt index 897974c..44ae23c 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyPage.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/character/pages/proficiency/ProficiencyPage.kt @@ -7,10 +7,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope -import androidx.compose.foundation.layout.IntrinsicSize -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.sizeIn import androidx.compose.foundation.rememberScrollState @@ -57,7 +54,7 @@ import com.pixelized.rplexicon.ui.screens.character.composable.character.StatUio import com.pixelized.rplexicon.ui.screens.character.composable.preview.rememberCharacterSheetStatePreview import com.pixelized.rplexicon.ui.screens.character.pages.actions.HandleSkillDetailDialog import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class CharacterSheetUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingItem.kt index c190872..d8db003 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/landing/LandingItem.kt @@ -24,7 +24,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.ColorFilter -import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource 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 b40addd..b5aa102 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 @@ -2,7 +2,15 @@ package com.pixelized.rplexicon.ui.screens.landing import android.content.res.Configuration.UI_MODE_NIGHT_NO import android.content.res.Configuration.UI_MODE_NIGHT_YES +import androidx.compose.animation.core.LinearEasing +import androidx.compose.animation.core.RepeatMode +import androidx.compose.animation.core.animateFloat +import androidx.compose.animation.core.infiniteRepeatable +import androidx.compose.animation.core.rememberInfiniteTransition +import androidx.compose.animation.core.tween +import androidx.compose.foundation.Image import androidx.compose.foundation.ScrollState +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -14,6 +22,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -22,7 +31,12 @@ import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.composed +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.RectangleShape +import androidx.compose.ui.graphics.TransformOrigin +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight @@ -31,7 +45,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp 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.navigation.LocalScreenNavHost import com.pixelized.rplexicon.ui.navigation.screens.navigateToCharacterSheet import com.pixelized.rplexicon.ui.navigation.screens.navigateToLexicon @@ -42,8 +56,7 @@ import com.pixelized.rplexicon.ui.navigation.screens.navigateToSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.annotateMajWithDropCap import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.scrollOffset -import com.pixelized.rplexicon.utilitary.extentions.uri +import com.pixelized.rplexicon.utilitary.extentions.modifier.scrollOffset @Composable fun LandingScreen() { @@ -56,7 +69,7 @@ fun LandingScreen() { modifier = Modifier .fillMaxSize() .navigationBarsPadding(), - padding = PaddingValues( + paddings = PaddingValues( start = 16.dp, top = MaterialTheme.lexicon.dimens.detailPadding, end = 16.dp, @@ -82,8 +95,13 @@ fun LandingScreen() { @Composable private fun LandingContent( modifier: Modifier = Modifier, - padding: PaddingValues = PaddingValues(16.dp), scrollState: ScrollState = rememberScrollState(), + paddings: PaddingValues = PaddingValues( + start = 16.dp, + top = MaterialTheme.lexicon.dimens.detailPadding, + end = 16.dp, + bottom = 16.dp, + ), sectionPadding: Dp = 32.dp, onCharacter: (String) -> Unit, onSearch: () -> Unit, @@ -95,19 +113,46 @@ private fun LandingContent( Box( modifier = modifier.verticalScroll(scrollState), ) { - BackgroundImage( + Box( modifier = Modifier .fillMaxWidth() .aspectRatio(1f) - .scrollOffset(scrollState) { it / 2 }, - contentScale = ContentScale.Crop, - model = R.drawable.im_naderius.uri, - ) + .clip(RectangleShape), + ) { + Image( + modifier = Modifier + .matchParentSize() + .scrollOffset(scrollState) { it / 2 }, + painter = painterResource(id = R.drawable.im_naderius_background), + contentDescription = null, + ) + Image( + modifier = Modifier + .matchParentSize() + .scrollOffset(scrollState) { it / 3 }, + painter = painterResource(id = R.drawable.im_naderius_foreground), + contentDescription = null, + ) + Image( + modifier = Modifier + .matchParentSize() + .offset(y = (-16).dp) + .scrollOffset(scrollState) { it / 3 } + .magic(), + painter = painterResource(id = R.drawable.im_naderius_dice), + contentDescription = null, + ) + Box( + modifier = Modifier + .matchParentSize() + .background(brush = rememberBackgroundGradient()), + ) + } Column( modifier = Modifier .fillMaxSize() - .padding(paddingValues = padding), + .padding(paddingValues = paddings), verticalArrangement = Arrangement.spacedBy(8.dp), ) { Text( @@ -302,6 +347,42 @@ private fun LandingContent( } } +private fun Modifier.magic(): Modifier = composed { + val transition = rememberInfiniteTransition( + label = "Magic transition", + ) + val rotation = transition.animateFloat( + initialValue = 0f, + targetValue = 360f, + animationSpec = infiniteRepeatable( + animation = tween( + durationMillis = 12000, + easing = LinearEasing, + ), + ), + label = "Magic rotation", + ) + val translationY = transition.animateFloat( + initialValue = -10f, + targetValue = -40f, + animationSpec = infiniteRepeatable( + animation = tween( + durationMillis = 8000, + ), + repeatMode = RepeatMode.Reverse, + ), + label = "Magic translationY", + ) + return@composed this.graphicsLayer { + this.transformOrigin = TransformOrigin( + pivotFractionX = 0.375f, + pivotFractionY = 0.625f, + ) + this.rotationZ = rotation.value + this.translationY = translationY.value + } +} + @Composable @Preview(uiMode = UI_MODE_NIGHT_NO) @Preview(uiMode = UI_MODE_NIGHT_YES) 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 f44bec3..c243677 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 @@ -61,7 +61,7 @@ import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.annotate import com.pixelized.rplexicon.utilitary.dropCapRegex import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.scrollOffset +import com.pixelized.rplexicon.utilitary.extentions.modifier.scrollOffset import com.pixelized.rplexicon.utilitary.extentions.searchCriterion import com.pixelized.rplexicon.utilitary.highlightRegex import com.pixelized.rplexicon.utilitary.styleWith diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconItem.kt index 46f0ec8..ca8ad7f 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconItem.kt @@ -39,10 +39,9 @@ import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.LOS_FULL -import com.pixelized.rplexicon.utilitary.annotateMajWithDropCap import com.pixelized.rplexicon.utilitary.annotateWithDropCap import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.placeholder +import com.pixelized.rplexicon.utilitary.extentions.modifier.placeholder @Stable class LexiconGroupUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconViewModel.kt index e360583..24ae781 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconViewModel.kt @@ -45,10 +45,10 @@ class LexiconViewModel @Inject constructor( init { viewModelScope.launch { - launch { + launch(Dispatchers.IO) { orderRepository.data.combine(lexiconRepository.data) { _, lexicon -> lexicon } .collect { items -> - _items.value = items + val lexicons = items .sortedBy { it.name } .groupBy( keySelector = { @@ -74,6 +74,10 @@ class LexiconViewModel @Inject constructor( ) } .sortedBy { orderRepository.findLexiconOrder(quest = it.category) } + + withContext(Dispatchers.Main) { + _items.value = lexicons + } } } launch { 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 ebae578..3169950 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 @@ -89,7 +89,7 @@ import com.pixelized.rplexicon.utilitary.annotate import com.pixelized.rplexicon.utilitary.annotateWithDropCap import com.pixelized.rplexicon.utilitary.dropCapRegex import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.scrollOffset +import com.pixelized.rplexicon.utilitary.extentions.modifier.scrollOffset import com.pixelized.rplexicon.utilitary.extentions.searchCriterion import com.pixelized.rplexicon.utilitary.highlightRegex import com.pixelized.rplexicon.utilitary.styleWith diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationItem.kt index 5e421af..19b39c2 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationItem.kt @@ -35,7 +35,7 @@ import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.LOS_FULL import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.placeholder +import com.pixelized.rplexicon.utilitary.extentions.modifier.placeholder @Stable data class LocationGroupUio( 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 134ac20..eac6230 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 @@ -67,7 +67,7 @@ import com.pixelized.rplexicon.utilitary.LOS_HOLLOW import com.pixelized.rplexicon.utilitary.annotate import com.pixelized.rplexicon.utilitary.dropCapRegex import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.scrollOffset +import com.pixelized.rplexicon.utilitary.extentions.modifier.scrollOffset import com.pixelized.rplexicon.utilitary.extentions.searchCriterion import com.pixelized.rplexicon.utilitary.highlightRegex import com.pixelized.rplexicon.utilitary.styleWith diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestItem.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestItem.kt index 9f0cc55..40bcde7 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestItem.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestItem.kt @@ -36,7 +36,7 @@ import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.LOS_FULL import com.pixelized.rplexicon.utilitary.LOS_HOLLOW import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.placeholder +import com.pixelized.rplexicon.utilitary.extentions.modifier.placeholder @Stable data class QuestGroupUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/RollDice.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/RollDice.kt index f827ada..e57638b 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/RollDice.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/RollDice.kt @@ -46,6 +46,9 @@ import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.criticalShader +import com.pixelized.rplexicon.utilitary.extentions.modifier.rememberITimeState + @Stable data class RollDiceUio( @@ -122,8 +125,19 @@ private fun Dice( animationSpec = it.animationSpec, label = "AnimatedRotation" ) + val isCritical = animateFloatAsState( + targetValue = if (it.isCriticalSuccess) 1.0f else 0f, + label = "animatedCritical", + animationSpec = tween(1500), + ) Icon( - modifier = modifier.rotate(degrees = animatedRotation.value % 360), + modifier = modifier + .rotate(degrees = animatedRotation.value % 360) + .criticalShader( + iDefault = MaterialTheme.colorScheme.primary, + isCritical = isCritical.value, + iTime = rememberITimeState().value, + ), tint = MaterialTheme.colorScheme.primary, painter = painterResource(id = it.icon), contentDescription = null, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt index 71fcd68..d2eb2cb 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt @@ -49,8 +49,8 @@ import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.screens.rolls.composable.ThrowsCardUio.Throw.Type import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.extentions.annotatedSpan -import com.pixelized.rplexicon.utilitary.extentions.ddBorder import com.pixelized.rplexicon.utilitary.extentions.lexicon +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder import com.pixelized.rplexicon.utilitary.highlightRegex import java.util.UUID diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/search/SearchScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/search/SearchScreen.kt index 81b8dc9..5914e6a 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/search/SearchScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/search/SearchScreen.kt @@ -45,7 +45,7 @@ import com.pixelized.rplexicon.ui.screens.search.item.SearchItemUio.SpellSearchI import com.pixelized.rplexicon.ui.screens.search.item.SpellSearchItem import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.PUC_FULL -import com.pixelized.rplexicon.utilitary.extentions.lexiconShadow +import com.pixelized.rplexicon.utilitary.extentions.modifier.lexiconShadow @Stable data class SearchFormUio( @@ -220,14 +220,14 @@ fun SearchScreenPreview() { mutableStateOf( listOf( LocationSearchItemUio( - id = "", + id = "0", category = AnnotatedString(text = "Cartes $PUC_FULL Région de Vallaki"), title = AnnotatedString(text = "Vallaki"), description = null, destination = null, ), LocationSearchItemUio( - id = "", + id = "1", category = AnnotatedString(text = "Cartes $PUC_FULL Contré de la brume"), title = AnnotatedString(text = "Barovie"), description = AnnotatedString(text = "Contré sombre et maudite somise au joug de Stradh von Zarovich"), 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 6f69235..4fc3589 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 @@ -29,9 +29,12 @@ import androidx.compose.runtime.Stable import androidx.compose.runtime.State import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ColorFilter +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontStyle @@ -47,7 +50,7 @@ import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.annotate import com.pixelized.rplexicon.utilitary.dropCapRegex import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.scrollOffset +import com.pixelized.rplexicon.utilitary.extentions.modifier.scrollOffset import com.pixelized.rplexicon.utilitary.extentions.searchCriterion import com.pixelized.rplexicon.utilitary.highlightRegex import com.pixelized.rplexicon.utilitary.styleWith @@ -100,6 +103,7 @@ private fun SpellDetailContent( val typography = MaterialTheme.lexicon.typography val highlightRegex = remember(highlight) { highlightRegex(terms = highlight.searchCriterion()) } val dropCapRegex = remember { dropCapRegex() } + val colorScheme = MaterialTheme.colorScheme Scaffold( modifier = modifier, @@ -131,7 +135,11 @@ private fun SpellDetailContent( .fillMaxWidth() .aspectRatio(ratio = 1f) .scrollOffset(scrollState = state) { -it / 2 }, - tint = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.2f), + alignment = Alignment.Center, + contentScale = ContentScale.Fit, + colorFilter = remember { + ColorFilter.tint(colorScheme.onSurface.copy(alpha = 0.2f)) + }, painter = painterResource(id = detail.icon), ) Column( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailViewModel.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailViewModel.kt index c477719..2da3b54 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailViewModel.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/spell/SpellDetailViewModel.kt @@ -8,7 +8,6 @@ import androidx.lifecycle.viewModelScope import com.pixelized.rplexicon.data.repository.character.DescriptionRepository import com.pixelized.rplexicon.data.repository.character.SpellRepository import com.pixelized.rplexicon.ui.composable.error.FetchErrorUio -import com.pixelized.rplexicon.ui.navigation.screens.lexiconDetailArgument import com.pixelized.rplexicon.ui.navigation.screens.spellDetailArgument import com.pixelized.rplexicon.utilitary.extentions.local.icon import com.pixelized.rplexicon.utilitary.extentions.local.label diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/AttributesSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/AttributesSummary.kt index a53121f..4664327 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/AttributesSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/AttributesSummary.kt @@ -25,7 +25,7 @@ import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRow import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRowUio import com.pixelized.rplexicon.ui.screens.summary.composable.preview.statistic.rememberAttributesSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class AttributesSummaryUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/CharacteristicsSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/CharacteristicsSummary.kt index 779e99d..da58e0f 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/CharacteristicsSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/CharacteristicsSummary.kt @@ -26,7 +26,7 @@ import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRow import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRowUio import com.pixelized.rplexicon.ui.screens.summary.composable.preview.statistic.rememberCharacteristicsSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class CharacteristicsSummaryUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/PassivesSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/PassivesSummary.kt index 0392994..1c0253f 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/PassivesSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/PassivesSummary.kt @@ -25,7 +25,7 @@ import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRow import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRowUio import com.pixelized.rplexicon.ui.screens.summary.composable.preview.statistic.rememberPassivesSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class PassivesSummaryUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/ProficiencySummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/ProficiencySummary.kt index 9242b81..98d1b3f 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/ProficiencySummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/ProficiencySummary.kt @@ -25,7 +25,7 @@ import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRow import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRowUio import com.pixelized.rplexicon.ui.screens.summary.composable.preview.statistic.rememberProficienciesSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class ProficiencySummaryUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SavingThrowsSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SavingThrowsSummary.kt index e167589..192bf6e 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SavingThrowsSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SavingThrowsSummary.kt @@ -25,7 +25,7 @@ import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRow import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRowUio import com.pixelized.rplexicon.ui.screens.summary.composable.preview.statistic.rememberSavingThrowsSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class SavingThrowsSummaryUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SpellSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SpellSummary.kt index 12754b8..3a92087 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SpellSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/SpellSummary.kt @@ -26,7 +26,7 @@ import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRow import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRowUio import com.pixelized.rplexicon.ui.screens.summary.composable.preview.statistic.rememberSpellsSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder @Stable data class SpellSummaryUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/StatusSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/StatusSummary.kt index 2b18aec..f9250ea 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/StatusSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/StatusSummary.kt @@ -37,9 +37,9 @@ import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.screens.summary.composable.preview.statistic.rememberStatusSummary import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.ddBorder import com.pixelized.rplexicon.utilitary.extentions.lexicon -import com.pixelized.rplexicon.utilitary.extentions.verticalDivider +import com.pixelized.rplexicon.utilitary.extentions.modifier.ddBorder +import com.pixelized.rplexicon.utilitary.extentions.modifier.verticalDivider @Stable data class StatusSummaryUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/common/SummaryRow.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/common/SummaryRow.kt index f9cf715..ceed64d 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/common/SummaryRow.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/common/SummaryRow.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.theme.LexiconTheme -import com.pixelized.rplexicon.utilitary.extentions.verticalDivider +import com.pixelized.rplexicon.utilitary.extentions.modifier.verticalDivider @Stable data class SummaryRowUio( diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/preview/statistic/rememberProficienciesSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/preview/statistic/rememberProficienciesSummary.kt index 1ccb8d3..2951686 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/preview/statistic/rememberProficienciesSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/composable/preview/statistic/rememberProficienciesSummary.kt @@ -7,7 +7,6 @@ import androidx.compose.runtime.remember import com.pixelized.rplexicon.R import com.pixelized.rplexicon.ui.screens.summary.composable.ProficiencySummaryUio import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryRowUio -import com.pixelized.rplexicon.ui.screens.summary.composable.common.SummaryCellUio import com.pixelized.rplexicon.ui.screens.summary.composable.common.proficiency @Composable diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticSummary.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticSummary.kt index 937db21..b9575b9 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticSummary.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/summary/pages/statistic/StatisticSummary.kt @@ -10,10 +10,8 @@ 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.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -22,16 +20,13 @@ import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.runtime.Stable import androidx.compose.runtime.State -import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush -import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.ui.screens.summary.composable.AttributesSummary import com.pixelized.rplexicon.ui.screens.summary.composable.AttributesSummaryUio 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 dda4d6e..20c0ef5 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 @@ -28,8 +28,8 @@ import com.pixelized.rplexicon.utilitary.extentions.local.highestSpellLevel import com.pixelized.rplexicon.utilitary.extentions.local.passivesBonus import com.pixelized.rplexicon.utilitary.extentions.local.spell import com.pixelized.rplexicon.utilitary.extentions.local.sum -import com.pixelized.rplexicon.utilitary.extentions.modifier import com.pixelized.rplexicon.utilitary.extentions.masteryMultiplier +import com.pixelized.rplexicon.utilitary.extentions.modifier import com.pixelized.rplexicon.utilitary.extentions.toLabel import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx+CriticalShader.kt b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx+CriticalShader.kt new file mode 100644 index 0000000..7c04054 --- /dev/null +++ b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx+CriticalShader.kt @@ -0,0 +1,73 @@ +package com.pixelized.rplexicon.utilitary.extentions.modifier + +import android.graphics.Color.valueOf +import android.graphics.RuntimeShader +import android.os.Build +import androidx.compose.animation.core.withInfiniteAnimationFrameMillis +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Stable +import androidx.compose.runtime.State +import androidx.compose.runtime.produceState +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.drawWithCache +import androidx.compose.ui.graphics.BlendMode +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.CompositingStrategy +import androidx.compose.ui.graphics.ShaderBrush +import androidx.compose.ui.graphics.graphicsLayer +import org.intellij.lang.annotations.Language + +fun Modifier.criticalShader( + isCritical: Float, + iTime: Float, + iDefault: Color, +): Modifier = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + this + .graphicsLayer { + compositingStrategy = CompositingStrategy.Offscreen + } + .drawWithCache { + val shader = RuntimeShader(CRITICAL_SHADER) + val shaderBrush = ShaderBrush(shader) + shader.setFloatUniform("iResolution", size.width, size.height) + shader.setFloatUniform("isCritical", isCritical) + shader.setColorUniform("iDefault", valueOf(iDefault.red, iDefault.green, iDefault.blue)) + + onDrawWithContent { + drawContent() + shader.setFloatUniform("iTime", iTime) + drawRect(brush = shaderBrush, blendMode = BlendMode.SrcAtop) + } + } +} else { + this +} + +@Composable +@Stable +fun rememberITimeState(speed: Float = 1f): State { + return produceState(0f) { + while (true) { + withInfiniteAnimationFrameMillis { + value = it / 1000f * speed + } + } + } +} + +@Language("AGSL") +val CRITICAL_SHADER = """ + uniform float2 iResolution; + uniform float iTime; + uniform float isCritical; + layout(color) uniform half4 iDefault; + + half4 main(float2 fragCoord) { + // Normalized pixel coordinates (from 0 to 1) + float2 uv = fragCoord.xy / iResolution; + // Time varying pixel color + float2 color = 0.5 + 0.5 * cos(iTime + uv.xy * 2.0 + float2(0, 3.14)); + // Output to screen + return mix(iDefault, float4(color, 1.0, 1.0), isCritical); + } +""".trimIndent() \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/ModifierExt+dashedBorder.kt b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx+DashedBorder.kt similarity index 99% rename from app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/ModifierExt+dashedBorder.kt rename to app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx+DashedBorder.kt index c87d14b..88ff3eb 100644 --- a/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/ModifierExt+dashedBorder.kt +++ b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx+DashedBorder.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.pixelized.rplexicon.utilitary.extentions +package com.pixelized.rplexicon.utilitary.extentions.modifier import androidx.compose.foundation.BorderStroke import androidx.compose.ui.Modifier diff --git a/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/ModifierEx.kt b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx.kt similarity index 98% rename from app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/ModifierEx.kt rename to app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx.kt index ebec8d6..24e2dfc 100644 --- a/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/ModifierEx.kt +++ b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/modifier/ModifierEx.kt @@ -1,4 +1,4 @@ -package com.pixelized.rplexicon.utilitary.extentions +package com.pixelized.rplexicon.utilitary.extentions.modifier import androidx.compose.animation.core.FiniteAnimationSpec import androidx.compose.animation.core.Transition @@ -43,6 +43,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.google.accompanist.placeholder.PlaceholderHighlight import com.google.accompanist.placeholder.placeholder +import com.pixelized.rplexicon.utilitary.extentions.lexicon fun Modifier.placeholder( color: Color = Color.Unspecified, diff --git a/app/src/main/res/drawable/im_naderius.webp b/app/src/main/res/drawable/im_naderius.webp deleted file mode 100644 index bb1c93f4e0af7ee0dd28bd47b7361edb9a3ceb8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28700 zcmWIYbaN9aU|Tk1j+{^6ue4OXvd(@8M^Ne}RZ$^ne zdH83!%Y^036D4zsly&=T^mc5I*|Pmf>i@@oL!E+Fr29|snz8MmO8M~>hwAs7EdPDw z-6Z$7mpneE{bQH&RKEBkjOUPMN_Y}~v*qC>cKcXa)11WI=bA;R{n*vK=7Icv@sv8z z8f8!{Hic3C|;?$9is5e7R=x&Cv9D?um6`LQ+hVe~HHg<`l^n zDsEr=?;+opONXA9bBL%*8W;I3m>Bce#y>?d$x&84v8eHY^tsc@x-*;Chp(Rc`N1Up zZMTlcyqLUgZz*4$q1c|2K^h+wdR70_zGI!Vb^YgSQ^msHoGJ`Yey=KaYQ#;QC;U|QJgvU)<89ZOth)Qoe{DC? zTOGToo#(i+ro52S&q<;AZmcVEZ~YH>BE8tK-QrBnS@FO79+}T83(wcKK2=zA^XyrZ z6a#IOoheblnPp2{mTgUVW4U?#T(!>9|8+hb*%jJuDs^|}-Hx1{czT(aD#sM1?au{^ znhHZ5`9&kvp3X1&vrSg;C3~;@BtP4uvV96x(wpD#*Xv6~IIlGhc2?njG-1!)NyZM^ zLGL!X*M6IGJUehnb1K{ONrheemu)IN5I^DR-%BnNnf8f)i2m?8@s>+rPDHZ!;n;tN z53zJ#w$SNeSz?hg>v7d?p(2e(xs@eCv$K9R1ZA&ReqOA!rHq*)?!%(Lz56t8ROaw) zmR~<-YIM&HWs&-i(+*AhC^&6*z&ib;=bwMQdU}2jrG+hcP#tv4-WqiQmPXWP4<3Fp%m zsw_Bh@|y1hamV*dJbG=d+OydHZ#u{HfLSdquGaD4R?7vSeY(4Iial&T*@n+*Xzt9g zS$BmZ++B+IW#~z0Nm*8!dV80jBd&egJ|NWr8itzLLKM%6ks0k?k zvp-a;@qC}`|AgDtTfOgIk$jk<_rXl%&*Ta3Tx@r5v)DQ9iNX;jmOH#Fd46at%$(=? zr!j8VkKeP@QmjSq>n2!oTU&ptl#Khed-?L^7na}t{%OV=p|twNZ={Ye_&pLoa&PX@ zZ)-iBx4$?1p2NVpPUfn{w%YsLMfw*l%FZ0xvu@v!yt^SzJGA-Im$3N-+fHtN8L?3M zLa6ADoAcA%=8D}}Tw7)MQ(%ta)U|B-bun6N*IxIYY~1zZYJk}44VME9YTcF9XIKmT z{}Mg*!z=M8@;4czr>W%l&c0JE;jCkR(Kz00>%XHv-#9HV6?6C)z1q)7(ez1^q1Abp zuX0s9k}4^YlaF7U9p~S6^UM6EwSm{t7!*!DI(97J(!#ohcM|U?t1Mr+hd0;GbauZI z`%|l5UizmD>>l1sNo6z>7qq#(ZLN`kt6cw&mx~ovKk>7%Z_i|_{kzlhqQcu1?b04$ z<#`Q1SF18uyykl${Cnk@FB?`FK9V_d`SXI^wk)?_9QhT%6dX|~;94nqn6c)gvuwfV z$Zki?pMN%&S}T1%XcuJl=icgV`#GN{n?KycslmanX!y6CZzYewZP&;AYB^6hoHCmxiyvg~ z_?-VRzVnL3nW;CFA9qL0iR^OD`nMv{+%&u(-eA|ZOXfS*RV=b!AuZ?cliFJ9BjxdT zd0T%IuaKI}+=p(HmsMVza6I7ghD$|COna(0rgt$`-LByhyJhI&Em$ELaPMrxS+nq+ z&Ah8}PxNeCv}!{_C%3uX+v1NEyuqQK>#Js-Ry?tXZI<#c$xmNA)jhlVw>L3#JUe<< zP~KKse6>nTk8Gc&pUkW6mpUIMZI)Vfdd(5G<-7VhmaWcD(GZkgY?AFW_KL%WMI37$ zbaX1-Hr;Z{FDQG#?@E;w&ts=EZ28@*`I>#1UORKp%Tq_Ysxmm7x71YJws*bZp)*VB z*9FGwf|vJ7W^T1~YwvhAx$A^l>+zmPtp_-~URl0q%0A?HP43sx@3S0FJhoc=^gZuq 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 diff --git a/app/src/main/res/drawable/im_naderius_background.webp b/app/src/main/res/drawable/im_naderius_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..097c32c3b49d12676a0d606e658dfcc293600a25 GIT binary patch literal 37548 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 YJ^7ql4rWQ0oPWGML4;JuMCMuw0QOkbkpKVy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/im_naderius_foreground.webp b/app/src/main/res/drawable/im_naderius_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..4c044b2fc10155d49622264a175792447d72f923 GIT binary patch literal 30766 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