Add basic character sheet and roll feature.
Add RollOverlay feature. Add character sheet Add a basic character sheet and a way to throw dice. Link the character sheet to the roll system. change app icon. Small fix.
This commit is contained in:
parent
42b26e2b9b
commit
df7b43fd73
64 changed files with 3264 additions and 89 deletions
|
|
@ -2,8 +2,8 @@ package com.pixelized.rplexicon
|
|||
|
||||
import android.app.Activity
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
|
|
@ -15,13 +15,19 @@ import androidx.compose.material3.SnackbarHost
|
|||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||
import androidx.core.view.WindowCompat
|
||||
import com.pixelized.rplexicon.facotry.RollParser
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import com.pixelized.rplexicon.ui.composable.BlurredOverlayHost
|
||||
import com.pixelized.rplexicon.ui.navigation.ScreenNavHost
|
||||
import com.pixelized.rplexicon.ui.screens.rolls.BlurredRollOverlayHostState
|
||||
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 dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
|
|
@ -31,6 +37,12 @@ val LocalActivity = staticCompositionLocalOf<Activity> {
|
|||
val LocalSnack = staticCompositionLocalOf<SnackbarHostState> {
|
||||
error("SnackbarHostState not available")
|
||||
}
|
||||
val RollSnack = staticCompositionLocalOf<SnackbarHostState> {
|
||||
error("SnackbarHostState not available")
|
||||
}
|
||||
val LocalRollOverlay = compositionLocalOf<BlurredRollOverlayHostState> {
|
||||
error("LocalRollOverlay not yet ready")
|
||||
}
|
||||
val NO_WINDOW_INSETS = WindowInsets(0, 0, 0, 0)
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
|
@ -49,9 +61,15 @@ class MainActivity : ComponentActivity() {
|
|||
|
||||
setContent {
|
||||
LexiconTheme {
|
||||
val rollViewModel = hiltViewModel<RollOverlayViewModel>()
|
||||
val overlay = rememberBlurredRollOverlayHostState(
|
||||
viewModel = rollViewModel,
|
||||
)
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalActivity provides this,
|
||||
LocalSnack provides remember { SnackbarHostState() }
|
||||
LocalSnack provides remember { SnackbarHostState() },
|
||||
LocalRollOverlay provides overlay,
|
||||
) {
|
||||
Scaffold(
|
||||
contentWindowInsets = NO_WINDOW_INSETS,
|
||||
|
|
@ -62,7 +80,17 @@ class MainActivity : ComponentActivity() {
|
|||
.padding(paddingValues = padding),
|
||||
color = MaterialTheme.colorScheme.background
|
||||
) {
|
||||
ScreenNavHost()
|
||||
BlurredOverlayHost(
|
||||
rollOverlayState = overlay,
|
||||
overlay = {
|
||||
RollOverlay(
|
||||
viewModel = rollViewModel,
|
||||
)
|
||||
},
|
||||
content = {
|
||||
ScreenNavHost()
|
||||
},
|
||||
)
|
||||
}
|
||||
},
|
||||
snackbarHost = {
|
||||
|
|
@ -72,6 +100,9 @@ class MainActivity : ComponentActivity() {
|
|||
)
|
||||
}
|
||||
)
|
||||
BackHandler(enabled = overlay.isOverlayVisible) {
|
||||
overlay.hideOverlay()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue