Почему данные устройства пусты или не найдены в моих методах getDevice и getListDevice? ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Почему данные устройства пусты или не найдены в моих методах getDevice и getListDevice?

Сообщение Anonymous »

Код: Выделить всё

private val _getListTrustedDeviceState: MutableStateFlow =
MutableStateFlow(BaseUIState.Idle)
val getListTrustedDeviceState: StateFlow =
_getListTrustedDeviceState.asStateFlow()

private val _getTrustedDeviceByDeviceKey: MutableStateFlow =
MutableStateFlow(BaseUIState.Idle)
val getTrustedDeviceByDeviceKey: StateFlow =
_getTrustedDeviceByDeviceKey.asStateFlow()

fun getListTrustedDevice() {
viewModelScope.launch {
_getListTrustedDeviceState.value = BaseUIState.Loading

val accessToken = SharedPreferencesUtils().getDataFromSharedPreferences(
context, SharedPrefKey.USER_SECTION
)?.accessToken
if (accessToken.isNullOrBlank()) {
_getListTrustedDeviceState.value = BaseUIState.Error("Access token is missing")
return@launch
}
userRepository.getListTrustedDevices(accessToken).onSuccess { devices ->
_getListTrustedDeviceState.value = BaseUIState.Success(devices)
LogUtil.d("getListTrustedDevice: ${devices.toJson()}")
}.onFailure { error ->
_getListTrustedDeviceState.value = BaseUIState.Error(error.message ?: "An unknown error occurred")
}
}
}

fun getTrustedDeviceByDeviceKey(){
viewModelScope.launch {
_getTrustedDeviceByDeviceKey.value = BaseUIState.Loading

val accessToken = SharedPreferencesUtils().getDataFromSharedPreferences(
context, SharedPrefKey.USER_SECTION
)?.accessToken
val deviceKey = extractDataFromToken(accessToken.toString(), "device_key")
LogUtil.d("deviceKey: $deviceKey")
if (accessToken.isNullOrBlank()) {
_getTrustedDeviceByDeviceKey.value = BaseUIState.Error("Access token is missing")
return@launch
}
userRepository.getDevicesByKey(accessToken,deviceKey.toString()).onSuccess { devices ->
_getTrustedDeviceByDeviceKey.value = BaseUIState.Success(devices)
LogUtil.d("getTrustedDeviceByDeviceKey: ${devices.toJson()}")
}.onFailure { error ->
_getTrustedDeviceByDeviceKey.value = BaseUIState.Error(error.message ?: "An unknown error occurred")

}
}
}

private fun extractDataFromToken(token: String, key: String): String? {
try {
val payloadPart = token.split(".")[1]
val decodedPayload = String(Base64.decode(payloadPart, Base64.URL_SAFE))
val payloadJson = JSONObject(decodedPayload)
return payloadJson.optString(key)
} catch (e: Exception) {
e.printStackTrace()
}
return null
}
Я работаю над приложением для Android и использую Kotlin с шаблоном репозитория. У меня есть две функции, getListTrustedDevice и getTrustedDeviceByDeviceKey, которые вызывают API для получения списка доверенных устройств и сведений об устройстве по ключу устройства.
Проблема в том, что при вызове этих методов я получаю пустое сообщение. ответы или данные об устройстве отсутствуют, хотя я ожидаю, что устройства будут присутствовать. Мне интересно, может ли проблема быть связана с ключом устройства или какой-либо другой частью запроса.

Подробнее здесь: https://stackoverflow.com/questions/793 ... evice-meth

Вернуться в «Android»