app/app/src/main/java/com/danilafe/fencelessgrazing/requests/GsonListener.kt

20 lines
646 B
Kotlin

package com.danilafe.fencelessgrazing.requests
import android.util.Log
import com.android.volley.Response
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import java.lang.reflect.Type
class GsonListener<T>(val listener: Response.Listener<T>, private val type: Type) : Response.Listener<String> {
override fun onResponse(response: String?) {
val transformed = response?.let { Gson().fromJson<T>(it, type) }
listener.onResponse(transformed)
}
}
inline fun <reified T> Response.Listener<T>.toGsonListener(): Response.Listener<String> {
return GsonListener(this, object : TypeToken<T>(){}.type)
}