diff --git a/app/src/main/java/com/hotdeal/alarm/presentation/main/MainViewModel.kt b/app/src/main/java/com/hotdeal/alarm/presentation/main/MainViewModel.kt index cba5f56..186eb7d 100644 --- a/app/src/main/java/com/hotdeal/alarm/presentation/main/MainViewModel.kt +++ b/app/src/main/java/com/hotdeal/alarm/presentation/main/MainViewModel.kt @@ -48,19 +48,23 @@ class MainViewModel @Inject constructor( private suspend fun initializeDefaultSiteConfigs() { val existingConfigs = siteConfigDao.getAllConfigs() - if (existingConfigs.isEmpty()) { - val defaultConfigs = SiteType.entries.flatMap { site -> - site.boards.map { board -> - SiteConfigEntity( - siteBoardKey = "${site.name}_${board.id}", - siteName = site.name, - boardName = board.id, - displayName = "${site.displayName} - ${board.displayName}", - isEnabled = false - ) - } + val existingKeys = existingConfigs.map { it.siteBoardKey }.toSet() + + val allDefaultConfigs = SiteType.entries.flatMap { site -> + site.boards.map { board -> + SiteConfigEntity( + siteBoardKey = "${site.name}_${board.id}", + siteName = site.name, + boardName = board.id, + displayName = "${site.displayName} - ${board.displayName}", + isEnabled = false + ) } - siteConfigDao.insertConfigs(defaultConfigs) + } + + val missingConfigs = allDefaultConfigs.filter { it.siteBoardKey !in existingKeys } + if (missingConfigs.isNotEmpty()) { + siteConfigDao.insertConfigs(missingConfigs) } }