Почему данные устройства пусты или не найдены в моих методах 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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