diff options
Diffstat (limited to 'app')
| -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 | 
