Skip to content

Commit 62296d4

Browse files
authored
Merge pull request #14 from utsavdotpro/LIB-12
update parse logic for GSON response
2 parents 287b6c7 + a01d64a commit 62296d4

3 files changed

Lines changed: 6 additions & 12 deletions

File tree

Connection/src/main/java/com/isolpro/library/connection/Connection.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.os.Handler
55
import android.os.Looper
66
import android.util.Log
77
import com.google.gson.Gson
8+
import com.google.gson.reflect.TypeToken
89
import com.isolpro.custom.Callback
910
import com.isolpro.library.connection.helpers.Utils
1011
import org.json.JSONException
@@ -16,7 +17,6 @@ import java.nio.charset.StandardCharsets
1617
import java.util.concurrent.Executor
1718
import java.util.concurrent.Executors
1819

19-
2020
abstract class Connection<T>() {
2121
private val REQUST_MODE_POST = "POST";
2222
private val REQUST_MODE_GET = "GET";
@@ -230,7 +230,7 @@ abstract class Connection<T>() {
230230
onResponseReceived(mutatedResponseString)
231231

232232
try {
233-
val res: T = Gson().fromJson(mutatedResponseString, getClassType());
233+
val res = Gson().fromJson<T>(mutatedResponseString, object : TypeToken<T>() {}.type);
234234

235235
onSuccess(res);
236236

@@ -275,8 +275,6 @@ abstract class Connection<T>() {
275275

276276
abstract fun handleOnError(e: Exception)
277277

278-
abstract fun getClassType(): Class<T>
279-
280278
class Config(val baseEndpoint: String) {
281279
}
282280
}

app/src/main/java/com/isolpro/library/connection/helpers/ConnectionHelper.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.isolpro.library.connection.Connection
77

88
const val BASE_ENDPOINT = "https://jsonplaceholder.typicode.com";
99

10-
class ConnectionHelper<T>(private val ctx: Context, private val typeClass: Class<T>) :
10+
class ConnectionHelper<T>(private val ctx: Context) :
1111
Connection<T>() {
1212
override var config: Config = Config(BASE_ENDPOINT)
1313

@@ -58,8 +58,4 @@ class ConnectionHelper<T>(private val ctx: Context, private val typeClass: Class
5858
override fun handleOnNoResponseError() {
5959
Log.e("---------", "handleOnNoResponseError");
6060
}
61-
62-
override fun getClassType(): Class<T> {
63-
return typeClass;
64-
}
6561
}

app/src/main/java/com/isolpro/library/connection/services/PostService.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import com.isolpro.library.connection.models.Post
77

88
object PostService {
99

10-
fun getPosts(ctx: Context): Connection<Post> {
11-
return ConnectionHelper(ctx, Post::class.java)
10+
fun getPosts(ctx: Context): Connection<List<Post>> {
11+
return ConnectionHelper<List<Post>>(ctx)
1212
.endpoint("/posts")
1313
.loader(false)
1414
}
1515

1616
fun createPost(ctx: Context, post: Post): Connection<Post> {
17-
return ConnectionHelper(ctx, Post::class.java)
17+
return ConnectionHelper<Post>(ctx)
1818
.payload(post)
1919
.endpoint("/posts")
2020
.loader(false)

0 commit comments

Comments
 (0)