diff options
Diffstat (limited to 'app/src/main/java/xyz/adjutor/aniki/presentation')
-rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/presentation/Singletons.kt | 23 | ||||
-rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/presentation/controller/manga/TopMangaController.kt | 37 |
2 files changed, 38 insertions, 22 deletions
diff --git a/app/src/main/java/xyz/adjutor/aniki/presentation/Singletons.kt b/app/src/main/java/xyz/adjutor/aniki/presentation/Singletons.kt new file mode 100644 index 0000000..430f73b --- /dev/null +++ b/app/src/main/java/xyz/adjutor/aniki/presentation/Singletons.kt @@ -0,0 +1,23 @@ +package xyz.adjutor.aniki.presentation + +import com.google.gson.Gson +import com.google.gson.GsonBuilder +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory +import xyz.adjutor.aniki.data.manga.TopMangaApi + +class Singletons { + + companion object { + val gson: Gson = GsonBuilder() + .setLenient() + .create()!! + private const val BASE_URL = "https://api.jikan.moe/" + + val topMangaApi: TopMangaApi = Retrofit.Builder() + .baseUrl(BASE_URL) + .addConverterFactory(GsonConverterFactory.create(gson)) + .build() + .create(TopMangaApi::class.java) + } +} diff --git a/app/src/main/java/xyz/adjutor/aniki/presentation/controller/manga/TopMangaController.kt b/app/src/main/java/xyz/adjutor/aniki/presentation/controller/manga/TopMangaController.kt index 845e750..ea631fd 100644 --- a/app/src/main/java/xyz/adjutor/aniki/presentation/controller/manga/TopMangaController.kt +++ b/app/src/main/java/xyz/adjutor/aniki/presentation/controller/manga/TopMangaController.kt @@ -9,9 +9,7 @@ import com.google.gson.reflect.TypeToken import retrofit2.Call import retrofit2.Callback import retrofit2.Response -import retrofit2.Retrofit -import retrofit2.converter.gson.GsonConverterFactory -import xyz.adjutor.aniki.data.manga.TopMangaApi +import xyz.adjutor.aniki.presentation.Singletons import xyz.adjutor.aniki.presentation.model.manga.TopManga import xyz.adjutor.aniki.presentation.model.manga.TopMangaResponse import xyz.adjutor.aniki.presentation.view.manga.TopMangaPage @@ -48,25 +46,20 @@ class TopMangaController { private fun makeApiCall(view: TopMangaPage, BASE_URL: String, page: Int) { - val retrofit = Retrofit.Builder() - .baseUrl(BASE_URL) - .addConverterFactory(GsonConverterFactory.create(gson)) - .build() - - val service = retrofit.create(TopMangaApi::class.java) - val call = service.getTopMangaData(page) - - call.enqueue(object : Callback<TopMangaResponse> { - override fun onResponse( - call: Call<TopMangaResponse>, - response: Response<TopMangaResponse> - ) { - if (response.isSuccessful && response.body() != null) { //if the code returned is >= 200 and < 300 AND the the body ain't empty - - val mangaList: List<TopManga> = response.body()!! - .getResults() //getting the "top" field containing our list of TopMangas - saveList(mangaList) - view.showList( + Singletons + .topMangaApi + .getTopMangaData(page) + .enqueue(object : Callback<TopMangaResponse> { + override fun onResponse( + call: Call<TopMangaResponse>, + response: Response<TopMangaResponse> + ) { + if (response.isSuccessful && response.body() != null) { //if the code returned is >= 200 and < 300 AND the the body ain't empty + + val mangaList: List<TopManga> = response.body()!! + .getResults() //getting the "top" field containing our list of TopMangas + saveList(mangaList) + view.showList( view.requireView(), mangaList ) //calling the method in charge of displaying on the recyclerview |