diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreen.kt index 638c52ff7..8849b5924 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreen.kt @@ -8,6 +8,7 @@ import androidx.compose.ui.platform.LocalContext import cafe.adriel.voyager.core.model.rememberScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow +import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoConfirmDialog import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoConflictDialog import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoCreateDialog import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoDeleteDialog @@ -33,7 +34,7 @@ class ExtensionReposScreen( val state by screenModel.state.collectAsState() LaunchedEffect(url) { - url?.let { screenModel.createRepo(it) } + url?.let { screenModel.showDialog(RepoDialog.Confirm(it)) } } if (state is RepoScreenState.Loading) { @@ -78,7 +79,6 @@ class ExtensionReposScreen( repo = dialog.repo, ) } - is RepoDialog.Conflict -> { ExtensionRepoConflictDialog( onDismissRequest = screenModel::dismissDialog, @@ -87,6 +87,13 @@ class ExtensionReposScreen( newRepo = dialog.newRepo, ) } + is RepoDialog.Confirm -> { + ExtensionRepoConfirmDialog( + onDismissRequest = screenModel::dismissDialog, + onCreate = { screenModel.createRepo(dialog.url) }, + repo = dialog.url, + ) + } } LaunchedEffect(Unit) { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreenModel.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreenModel.kt index 8d37e26f1..ed63117a7 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreenModel.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/ExtensionReposScreenModel.kt @@ -171,6 +171,7 @@ sealed class RepoDialog { data object Create : RepoDialog() data class Delete(val repo: String) : RepoDialog() data class Conflict(val oldRepo: ExtensionRepo, val newRepo: ExtensionRepo) : RepoDialog() + data class Confirm(val url: String) : RepoDialog() } sealed class RepoScreenState { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionReposDialogs.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionReposDialogs.kt index 1f6d7cc56..317ee2b14 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionReposDialogs.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionReposDialogs.kt @@ -185,3 +185,35 @@ fun ExtensionRepoConflictDialog( }, ) } + +@Composable +fun ExtensionRepoConfirmDialog( + onDismissRequest: () -> Unit, + onCreate: () -> Unit, + repo: String, +) { + AlertDialog( + onDismissRequest = onDismissRequest, + title = { + Text(text = stringResource(MR.strings.action_add_repo)) + }, + text = { + Text(text = stringResource(MR.strings.add_repo_confirmation, repo)) + }, + confirmButton = { + TextButton( + onClick = { + onCreate() + onDismissRequest() + }, + ) { + Text(text = stringResource(MR.strings.action_add)) + } + }, + dismissButton = { + TextButton(onClick = onDismissRequest) { + Text(text = stringResource(MR.strings.action_cancel)) + } + }, + ) +} diff --git a/i18n/src/commonMain/moko-resources/base/strings.xml b/i18n/src/commonMain/moko-resources/base/strings.xml index 7ef4a036b..22c27ca07 100644 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -350,6 +350,7 @@ Delete repo Invalid repo URL Do you wish to delete the repo \"%s\"? + Do you wish to add the repo \"%s\"? Open source repo Replace Signing Key Fingerprint Already Exists