feat: check if device still registered on server

This commit is contained in:
Fritz Heiden 2025-03-20 20:03:00 +01:00
parent d8395a28a4
commit 04c93a0ce7
2 changed files with 13 additions and 8 deletions

View File

@ -22,7 +22,7 @@ class SettingsViewModel(private val deviceService: DeviceService) : ViewModel()
init { init {
updateConnectionState() updateConnectionState()
viewModelScope.launch { viewModelScope.launch {
updateDeviceName() updateDeviceInfo()
} }
} }
@ -44,9 +44,13 @@ class SettingsViewModel(private val deviceService: DeviceService) : ViewModel()
} }
} }
private suspend fun updateDeviceName() { private suspend fun updateDeviceInfo() {
if (connectionState == Settings.ConnectionState.Unregistered) return if (connectionState == Settings.ConnectionState.Unregistered) return
val integration = deviceService.getIntegration() ?: return val integration = deviceService.getIntegration()
if (integration == null) {
connectionState = Settings.ConnectionState.Unregistered
return
}
deviceName = integration.name deviceName = integration.name
} }

View File

@ -11,6 +11,7 @@ import io.ktor.client.request.headers
import io.ktor.client.request.request import io.ktor.client.request.request
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import io.ktor.client.statement.HttpResponse import io.ktor.client.statement.HttpResponse
import io.ktor.http.HeadersBuilder
import io.ktor.http.HttpMethod import io.ktor.http.HttpMethod
import org.json.JSONObject import org.json.JSONObject
@ -42,9 +43,9 @@ class DeviceService(private val context: Context) {
val body: String = response.body() val body: String = response.body()
val responseJson = JSONObject(body) val responseJson = JSONObject(body)
if (responseJson.has("error")) { if (response.status.value != 200) {
val error = responseJson.getString("error") val error = responseJson.getString("error")
Log.e("DeviceService", "Error creating integration: $error") Log.e("DeviceService", "Error getting integration: ${response.status.value} $error")
return return
} }
token = responseJson.getString("token") token = responseJson.getString("token")
@ -69,16 +70,16 @@ class DeviceService(private val context: Context) {
} }
val body: String = response.body() val body: String = response.body()
Log.i("DeviceService", "Response: ${response.status.value} $body") val responseJson = JSONObject(body)
if (response.status.value != 200) { if (response.status.value != 200) {
val error = responseJson.getString("error")
Log.e("DeviceService", "Error getting integration: ${response.status.value} $error")
return null return null
} }
val responseJson = JSONObject(body)
val integration = Integration( val integration = Integration(
responseJson.getString("id"), responseJson.getString("id"),
responseJson.getString("name") responseJson.getString("name")
) )
Log.i("DeviceService", "Response: ${response.status.value} $body")
return integration return integration
} catch (e: Exception) { } catch (e: Exception) {
Log.e("DeviceService", "Error getting integration", e) Log.e("DeviceService", "Error getting integration", e)