fix(PatchOptions): warn user when missing selected image

This commit is contained in:
rushiiMachine 2025-05-31 12:49:53 -07:00
parent 2fb5c9c18d
commit 4d1b21acf0
No known key found for this signature in database
GPG key ID: DCBE5952BB3B6420
3 changed files with 18 additions and 12 deletions

View file

@ -95,14 +95,15 @@ class IconOptionsModel(
}
}
fun generateConfig(): IconReplacement = when (mode) {
IconOptionsMode.Original -> IconReplacement.Original
IconOptionsMode.OldDiscord -> IconReplacement.OldDiscord
IconOptionsMode.Aliucord -> IconReplacement.CustomColor(IconReplacement.AliucordColor)
IconOptionsMode.CustomColor -> IconReplacement.CustomColor(color = selectedColor.toColor())
IconOptionsMode.CustomImage -> IconReplacement.CustomImage(
// TODO: fix this?
imageBytes = selectedImage ?: throw IllegalStateException("Cannot generate config without a selected image"),
)
fun generateConfig(): IconReplacement? {
return when (mode) {
IconOptionsMode.Original -> IconReplacement.Original
IconOptionsMode.OldDiscord -> IconReplacement.OldDiscord
IconOptionsMode.Aliucord -> IconReplacement.CustomColor(IconReplacement.AliucordColor)
IconOptionsMode.CustomColor -> IconReplacement.CustomColor(color = selectedColor.toColor())
IconOptionsMode.CustomImage -> IconReplacement.CustomImage(
imageBytes = selectedImage ?: return null
)
}
}
}

View file

@ -32,8 +32,7 @@ import com.aliucord.manager.ui.screens.patchopts.components.PatchOptionsAppBar
import com.aliucord.manager.ui.screens.patchopts.components.options.*
import com.aliucord.manager.ui.util.InstallNotifications
import com.aliucord.manager.ui.util.spacedByLastAtBottom
import com.aliucord.manager.util.isIgnoringBatteryOptimizations
import com.aliucord.manager.util.requestNoBatteryOptimizations
import com.aliucord.manager.util.*
import kotlinx.coroutines.delay
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
@ -97,8 +96,13 @@ class PatchOptionsScreen(
setPackageName = model::changePackageName,
isConfigValid = model.isConfigValid,
onInstall = {
onInstall = onInstall@{
val iconConfig = iconModel.generateConfig()
if (iconConfig == null) {
context.showToast(R.string.patchopts_warning_invalid_iconopts)
return@onInstall
}
val patchConfig = model.generateConfig(iconConfig)
navigator.push(PatchingScreen(patchConfig))
},

View file

@ -169,6 +169,7 @@
<string name="patchopts_icon_desc">Change the app\'s icon to Aliucord\'s icon (or a custom one) instead of Discord\'s.</string>
<string name="patchopts_divider_basic">Basic</string>
<string name="patchopts_divider_advanced">Advanced</string>
<string name="patchopts_warning_invalid_iconopts">The selected icon options are invalid!</string>
<string name="iconopts_screen_title">Icon Replacement</string>
<string name="iconopts_variant_title_old_discord">Old Discord</string>