diff --git a/composeApp/src/commonMain/composeResources/drawable/ic_share_24dp.xml b/composeApp/src/commonMain/composeResources/drawable/ic_share_24dp.xml
new file mode 100644
index 0000000..09416bc
--- /dev/null
+++ b/composeApp/src/commonMain/composeResources/drawable/ic_share_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/composeApp/src/commonMain/composeResources/drawable/ic_share_off_24dp.xml b/composeApp/src/commonMain/composeResources/drawable/ic_share_off_24dp.xml
new file mode 100644
index 0000000..b3be700
--- /dev/null
+++ b/composeApp/src/commonMain/composeResources/drawable/ic_share_off_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollPage.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollPage.kt
index a9353a8..45bcfdd 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollPage.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollPage.kt
@@ -27,6 +27,7 @@ import androidx.compose.material.DropdownMenuItem
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.ExposedDropdownMenuBox
import androidx.compose.material.Icon
+import androidx.compose.material.IconButton
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
@@ -44,9 +45,12 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.overlay.roll.DifficultyUio.Difficulty
+import com.pixelized.desktop.lwa.ui.theme.lwa
import com.pixelized.desktop.lwa.utils.DisableInteractionSource
import lwacharactersheet.composeapp.generated.resources.Res
import lwacharactersheet.composeapp.generated.resources.ic_d20_24dp
+import lwacharactersheet.composeapp.generated.resources.ic_share_24dp
+import lwacharactersheet.composeapp.generated.resources.ic_share_off_24dp
import lwacharactersheet.composeapp.generated.resources.roll_page__dc__label
import lwacharactersheet.composeapp.generated.resources.roll_page__dc_easy__label
import lwacharactersheet.composeapp.generated.resources.roll_page__dc_hard__label
@@ -93,12 +97,12 @@ fun RollPage(
indication = null,
onClick = onDismissRequest,
)
- .padding(all = 32.dp)
+ .padding(all = 16.dp)
.then(other = modifier),
) {
viewModel.rollTitle.value?.let {
Column(
- modifier = Modifier.fillMaxWidth(),
+ modifier = Modifier.fillMaxWidth().padding(top = 16.dp),
horizontalAlignment = Alignment.CenterHorizontally,
) {
Text(
@@ -124,6 +128,20 @@ fun RollPage(
}
}
+ IconButton(
+ modifier = Modifier.align(alignment = Alignment.TopEnd),
+ onClick = { viewModel.toggleShareResult() },
+ ) {
+ Icon(
+ painter = when (viewModel.shareResult.value) {
+ true -> painterResource(Res.drawable.ic_share_24dp)
+ else -> painterResource(Res.drawable.ic_share_off_24dp)
+ },
+ tint = MaterialTheme.lwa.colorScheme.base.primary,
+ contentDescription = null
+ )
+ }
+
Column(
modifier = Modifier.matchParentSize(),
horizontalAlignment = Alignment.CenterHorizontally,
@@ -199,6 +217,7 @@ fun RollPage(
Box(
modifier = Modifier
.align(Alignment.BottomCenter)
+ .padding(bottom = 16.dp)
.clickable(
interactionSource = remember { DisableInteractionSource() },
indication = null,
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollViewModel.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollViewModel.kt
index e3fb5a7..00398c5 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollViewModel.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/overlay/roll/RollViewModel.kt
@@ -64,6 +64,9 @@ class RollViewModel(
private val _rollDifficulty = mutableStateOf(null)
val rollDifficulty: State get() = _rollDifficulty
+ private val _shareResult = mutableStateOf(true)
+ val shareResult: State = _shareResult
+
suspend fun cleanRoll() {
alteredCharacterSheet = null
rollAction = null
@@ -73,6 +76,7 @@ class RollViewModel(
rollRotation.snapTo(0f)
rollScale.snapTo(1f)
+ _shareResult.value = true
_cancellable.value = true
_rollTitle.value = null
_rollResult.value = null
@@ -111,6 +115,7 @@ class RollViewModel(
skillStepUseCase.computeSkillStep(skill = it)
}
+ _shareResult.value = true
_cancellable.value = true
_rollResult.value = null
_rollTitle.value = RollTitleUio(
@@ -192,19 +197,25 @@ class RollViewModel(
value = roll,
)
- launch {
- shareRollResult(
- rollTitle = rollTitle,
- roll = roll,
- rollStep = rollStep,
- success = resultLabel
- )
+ if (shareResult.value) {
+ launch {
+ shareRollResult(
+ rollTitle = rollTitle,
+ roll = roll,
+ rollStep = rollStep,
+ success = resultLabel
+ )
+ }
}
}
}
}
}
+ fun toggleShareResult() {
+ _shareResult.value = _shareResult.value.not()
+ }
+
fun toggleDifficulty() {
_rollDifficulty.value = _rollDifficulty.value?.copy(
open = _rollDifficulty.value?.open?.not() ?: false