20 lines
646 B
Kotlin
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)
|
|
}
|
|
|