diff --git a/app/src/main/java/at/bitfire/icsdroid/model/SubscriptionSettingsUseCase.kt b/app/src/main/java/at/bitfire/icsdroid/model/SubscriptionSettingsUseCase.kt index 67abe875..d09ac4fd 100644 --- a/app/src/main/java/at/bitfire/icsdroid/model/SubscriptionSettingsUseCase.kt +++ b/app/src/main/java/at/bitfire/icsdroid/model/SubscriptionSettingsUseCase.kt @@ -8,9 +8,7 @@ import at.bitfire.icsdroid.HttpUtils import at.bitfire.icsdroid.db.entity.Credential import at.bitfire.icsdroid.db.entity.Subscription import javax.inject.Inject -import javax.inject.Singleton -@Singleton class SubscriptionSettingsUseCase @Inject constructor() { data class UiState( val url: String? = null, @@ -35,6 +33,8 @@ class SubscriptionSettingsUseCase @Inject constructor() { val validUrlInput: Boolean = url?.let { url -> HttpUtils.acceptedProtocol(url.toUri()) } ?: false + + fun isInitialized() = url != null || title != null || color != null } var uiState by mutableStateOf(UiState()) diff --git a/app/src/main/java/at/bitfire/icsdroid/ui/screen/AddSubscriptionScreen.kt b/app/src/main/java/at/bitfire/icsdroid/ui/screen/AddSubscriptionScreen.kt index e0f90e3a..ae8debf3 100644 --- a/app/src/main/java/at/bitfire/icsdroid/ui/screen/AddSubscriptionScreen.kt +++ b/app/src/main/java/at/bitfire/icsdroid/ui/screen/AddSubscriptionScreen.kt @@ -79,6 +79,8 @@ fun AddSubscriptionScreen( } LaunchedEffect(title, color, url) { + if (model.subscriptionSettingsUseCase.uiState.isInitialized()) + return@LaunchedEffect model.subscriptionSettingsUseCase.setInitialValues(title, color, url) if (url != null) {