refactor: improve service admin channel index logic

This commit is contained in:
andrekir 2023-05-21 19:46:40 -03:00
parent 6a72c65a83
commit 9869a9208b
3 changed files with 6 additions and 14 deletions

View file

@ -48,10 +48,9 @@ class ChannelSetRepository @Inject constructor(
}
/**
* Updates the [ChannelSettings] list with the provided channel and returns the index of the
* admin channel after the update (if not found, returns 0).
* Updates the [ChannelSettings] list with the provided channel.
*/
suspend fun updateChannelSettings(channel: Channel): Int {
suspend fun updateChannelSettings(channel: Channel) {
channelSetStore.updateData { preference ->
if (preference.settingsCount > channel.index) {
preference.toBuilder().setSettings(channel.index, channel.settings).build()
@ -59,7 +58,6 @@ class ChannelSetRepository @Inject constructor(
preference.toBuilder().addSettings(channel.settings).build()
}
}
return getAdminChannel()
}
suspend fun setLoraConfig(config: ConfigProtos.Config.LoRaConfig) {
@ -68,13 +66,6 @@ class ChannelSetRepository @Inject constructor(
}
}
/**
* Returns the index of the admin channel (or 0 if not found).
*/
private suspend fun getAdminChannel(): Int = fetchInitialChannelSet()?.settingsList
?.indexOfFirst { it.name.lowercase() == "admin" }
?.coerceAtLeast(0) ?: 0
suspend fun fetchInitialChannelSet() = channelSetStore.data.firstOrNull()
}

View file

@ -45,7 +45,7 @@ class RadioConfigRepository @Inject constructor(
* @param channel The [Channel] provided.
* @return the index of the admin channel after the update (if not found, returns 0).
*/
suspend fun updateChannelSettings(channel: Channel): Int {
suspend fun updateChannelSettings(channel: Channel) {
return channelSetRepository.updateChannelSettings(channel)
}