diff options
author | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-03-23 10:54:41 +0100 |
---|---|---|
committer | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-03-23 10:54:41 +0100 |
commit | bd885788c79cfa37bb2ff02faf4ae2516b87b5dd (patch) | |
tree | 3008f3643180e237bd735cce7a4ddf72f883acf8 /app/src/main/java/xyz/adjutor | |
parent | d283df0f70241bb6b54bee66e8fb9564b0051376 (diff) |
Feature added to animes.feature/multiple_top_pages
Removed the ScrollListener, I prefer to only use buttons for the feature.
Diffstat (limited to 'app/src/main/java/xyz/adjutor')
3 files changed, 42 insertions, 32 deletions
diff --git a/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimeApi.kt b/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimeApi.kt index 8e44e77..2e6b1e0 100644 --- a/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimeApi.kt +++ b/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimeApi.kt @@ -2,10 +2,11 @@ package xyz.adjutor.aniki.anime.topanime import retrofit2.Call import retrofit2.http.GET +import retrofit2.http.Path interface TopAnimeApi { - @GET("v3/top/anime") - fun getTopAnimeData(): Call<TopAnimeResponse> + @GET("v3/top/anime/{page}") + fun getTopAnimeData(@Path("page") page: Int): Call<TopAnimeResponse> }
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimePage.kt b/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimePage.kt index d62e5b2..babb7c1 100644 --- a/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimePage.kt +++ b/app/src/main/java/xyz/adjutor/aniki/anime/topanime/TopAnimePage.kt @@ -31,6 +31,7 @@ class TopAnimePage : Fragment() { .setLenient() .create() var baseUrl = "https://api.jikan.moe/" //the api's base url + var page: Int = 1 override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -45,10 +46,11 @@ class TopAnimePage : Fragment() { if (animeList != null) { showList(view, animeList) } else { - makeApiCall(view, baseUrl) + makeApiCall(view, baseUrl, 1) } return view + } private fun getDataFromCache(): List<TopAnime>? { @@ -71,16 +73,34 @@ class TopAnimePage : Fragment() { view.findViewById<Button>(R.id.button_home).setOnClickListener { findNavController().navigate(R.id.action_TopAnimePage_to_HomePage) } + view.findViewById<Button>(R.id.button_prev).setOnClickListener { + if (page > 1) { + page -= 1 + makeApiCall(view, baseUrl, page) + Snackbar.make(requireView(), "Page $page has been loaded.", Snackbar.LENGTH_SHORT) + .setAction("Action", null).show() + } else { + Snackbar.make(requireView(), "You're already on page 1.", Snackbar.LENGTH_SHORT) + .setAction("Action", null).show() + } + } + view.findViewById<Button>(R.id.button_next).setOnClickListener { + page += 1 + makeApiCall(view, baseUrl, page) + Snackbar.make(requireView(), "Page $page has been loaded.", Snackbar.LENGTH_SHORT) + .setAction("Action", null).show() + } fun updateList() { - makeApiCall(view, baseUrl) - Snackbar.make(requireView(), "Data refreshed", Snackbar.LENGTH_LONG) + makeApiCall(view, baseUrl, 1) + Snackbar.make(requireView(), "Data refreshed", Snackbar.LENGTH_SHORT) .setAction("Action", null).show() } val swipeRefresh: SwipeRefreshLayout = view.findViewById(R.id.swiperefresh) swipeRefresh.setOnRefreshListener { updateList() + page = 1 swipeRefresh.isRefreshing = false } @@ -95,7 +115,7 @@ class TopAnimePage : Fragment() { (recyclerView.adapter as TopAnimeAdapter).notifyDataSetChanged() } - private fun makeApiCall(view: View, BASE_URL: String) { + private fun makeApiCall(view: View, BASE_URL: String, page: Int) { val retrofit = Retrofit.Builder() .baseUrl(BASE_URL) @@ -103,7 +123,7 @@ class TopAnimePage : Fragment() { .build() val service = retrofit.create(TopAnimeApi::class.java) - val call = service.getTopAnimeData() + val call = service.getTopAnimeData(page) call.enqueue(object : Callback<TopAnimeResponse> { override fun onResponse( @@ -142,7 +162,11 @@ class TopAnimePage : Fragment() { } private fun showError() { - Snackbar.make(requireView(), "API ERROR", Snackbar.LENGTH_LONG) + Snackbar.make( + requireView(), + "API ERROR : Verify your internet connection.", + Snackbar.LENGTH_LONG + ) .setAction("Action", null).show() } diff --git a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt index ea240b9..9c138a3 100644 --- a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt +++ b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt @@ -24,7 +24,6 @@ import retrofit2.converter.gson.GsonConverterFactory import xyz.adjutor.aniki.R import java.lang.reflect.Type - class TopMangaPage : Fragment() { private lateinit var sharedPreferences: SharedPreferences @@ -50,24 +49,6 @@ class TopMangaPage : Fragment() { makeApiCall(view, baseUrl, 1) } - // add other pages when we touch the bottom - val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view) - recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { - override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { - super.onScrollStateChanged(recyclerView, newState) - if (!recyclerView.canScrollVertically(1)) { //direction integers: -1 for up, 1 for down, 0 will always return false. - page += 1 - makeApiCall(view, baseUrl, page) - Snackbar.make( - requireView(), - "Page $page has been loaded.", - Snackbar.LENGTH_LONG - ) - .setAction("Action", null).show() - } - } - }) - return view } @@ -96,23 +77,23 @@ class TopMangaPage : Fragment() { if (page > 1) { page -= 1 makeApiCall(view, baseUrl, page) - Snackbar.make(requireView(), "Page $page has been loaded.", Snackbar.LENGTH_LONG) + Snackbar.make(requireView(), "Page $page has been loaded.", Snackbar.LENGTH_SHORT) .setAction("Action", null).show() } else { - Snackbar.make(requireView(), "You're already page 1.", Snackbar.LENGTH_LONG) + Snackbar.make(requireView(), "You're already on page 1.", Snackbar.LENGTH_SHORT) .setAction("Action", null).show() } } view.findViewById<Button>(R.id.button_next).setOnClickListener { page += 1 makeApiCall(view, baseUrl, page) - Snackbar.make(requireView(), "Page $page has been loaded.", Snackbar.LENGTH_LONG) + Snackbar.make(requireView(), "Page $page has been loaded.", Snackbar.LENGTH_SHORT) .setAction("Action", null).show() } fun updateList() { makeApiCall(view, baseUrl, 1) - Snackbar.make(requireView(), "Data refreshed", Snackbar.LENGTH_LONG) + Snackbar.make(requireView(), "Data refreshed", Snackbar.LENGTH_SHORT) .setAction("Action", null).show() } @@ -182,7 +163,11 @@ class TopMangaPage : Fragment() { } private fun showError() { - Snackbar.make(requireView(), "API ERROR", Snackbar.LENGTH_LONG) + Snackbar.make( + requireView(), + "API ERROR : Verify your internet connection.", + Snackbar.LENGTH_LONG + ) .setAction("Action", null).show() } |