Add error handling to device name updating
This fixes a crash
This commit is contained in:
parent
e3d049156c
commit
6bb784b2fe
3 changed files with 20 additions and 8 deletions
|
@ -76,4 +76,6 @@ interface JellyfinRepository {
|
||||||
suspend fun getIntros(itemId: UUID): List<BaseItemDto>
|
suspend fun getIntros(itemId: UUID): List<BaseItemDto>
|
||||||
|
|
||||||
fun getBaseUrl(): String
|
fun getBaseUrl(): String
|
||||||
|
|
||||||
|
suspend fun updateDeviceName(name: String)
|
||||||
}
|
}
|
|
@ -288,4 +288,12 @@ class JellyfinRepositoryImpl(private val jellyfinApi: JellyfinApi) : JellyfinRep
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getBaseUrl() = jellyfinApi.api.baseUrl.orEmpty()
|
override fun getBaseUrl() = jellyfinApi.api.baseUrl.orEmpty()
|
||||||
|
|
||||||
|
override suspend fun updateDeviceName(name: String) {
|
||||||
|
jellyfinApi.jellyfin.deviceInfo?.id?.let { id ->
|
||||||
|
withContext(Dispatchers.IO) {
|
||||||
|
jellyfinApi.devicesApi.updateDeviceOptions(id, DeviceOptionsDto(0, customName = name))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,21 +3,23 @@ package dev.jdtech.jellyfin.viewmodels
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dev.jdtech.jellyfin.api.JellyfinApi
|
import dev.jdtech.jellyfin.repository.JellyfinRepository
|
||||||
import kotlinx.coroutines.Dispatchers.IO
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.jellyfin.sdk.model.api.DeviceOptionsDto
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
internal class SettingsDeviceViewModel @Inject internal constructor(
|
internal class SettingsDeviceViewModel
|
||||||
private val api: JellyfinApi
|
@Inject internal constructor(
|
||||||
|
private val jellyfinRepository: JellyfinRepository,
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
fun updateDeviceName(name: String) {
|
fun updateDeviceName(name: String) {
|
||||||
api.jellyfin.deviceInfo?.id?.let { id ->
|
viewModelScope.launch {
|
||||||
viewModelScope.launch(IO) {
|
try {
|
||||||
api.devicesApi.updateDeviceOptions(id, DeviceOptionsDto(0, customName = name))
|
jellyfinRepository.updateDeviceName(name)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Timber.e("Could not update device name")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue