В настоящее время я декодирую Bitmap
следующим образом:
@GET("api/users/get_avatar/{userId}/default.png")
fun getAvatar(@Header("ApiToken") apiToken: String, @Path("userId") userId: String): Observable<ResponseBody>
и расшифровываем в ViewModel
val avatar = it()?.let { body ->
val stream = body.byteStream()
BitmapFactory.decodeStream(stream)
}
Однако я хотел бы использовать для этого более элегантный Moshi JsonAdapter.
Мой звонок выглядит так:
@GET("api/users/get_avatar/{userId}/default.png")
fun getAvatar(@Header("ApiToken") apiToken: String, @Path("userId") userId: String): Observable<Bitmap>
Добавляю адаптер:
return Moshi.Builder()
.add(BitmapAdapter())
Однако, скорее всего, мой адаптер неправильный:
private class BitmapAdapter {
@ToJson
fun toJson(value: Bitmap): String {
return value.encodeBase64()
}
@FromJson
fun fromJson(value: String): Bitmap {
return value.decodeBase64()
}
}
Как это должно выглядеть?