ha-android/app/src/full/java/io/homeassistant/companion/android/launch/LaunchPresenterImpl.kt

40 lines
1.6 KiB
Kotlin

package io.homeassistant.companion.android.launch
import android.content.Context
import android.util.Log
import dagger.hilt.android.qualifiers.ActivityContext
import dagger.hilt.android.scopes.ActivityScoped
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.common.data.integration.DeviceRegistration
import io.homeassistant.companion.android.common.data.servers.ServerManager
import io.homeassistant.companion.android.onboarding.getMessagingToken
import javax.inject.Inject
import kotlinx.coroutines.launch
@ActivityScoped
class LaunchPresenterImpl @Inject constructor(
@ActivityContext context: Context,
serverManager: ServerManager
) : LaunchPresenterBase(context as LaunchView, serverManager) {
override fun resyncRegistration() {
if (!serverManager.isRegistered()) return
serverManager.defaultServers.forEach {
ioScope.launch {
try {
serverManager.integrationRepository(it.id).updateRegistration(
DeviceRegistration(
"${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})",
null,
getMessagingToken()
)
)
serverManager.integrationRepository(it.id).getConfig() // Update cached data
serverManager.webSocketRepository(it.id).getCurrentUser() // Update cached data
} catch (e: Exception) {
Log.e(TAG, "Issue updating Registration", e)
}
}
}
}
}