diff options
author | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-02-18 21:55:37 +0100 |
---|---|---|
committer | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-02-18 21:55:37 +0100 |
commit | eaef2672c25baaf370c72158d5236f40f6fea01f (patch) | |
tree | 658ee831fc5db15dae455d013cf13ec263faa177 /app | |
parent | f4d8a9c6fa8f805a9dedb626ef343aa37943c079 (diff) |
Preparing
Preparing the implementation of the API datas to our recycerview in a fragment.
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt | 12 | ||||
-rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/RestTopMangaResponse.kt | 4 | ||||
-rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt | 29 | ||||
-rw-r--r-- | app/src/main/res/layout/item_layout.xml | 33 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 2 |
5 files changed, 48 insertions, 32 deletions
diff --git a/app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt b/app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt index 8e1c8f2..9f7a373 100644 --- a/app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt +++ b/app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt @@ -3,6 +3,7 @@ package xyz.adjutor.aniki import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import java.util.ArrayList @@ -12,11 +13,10 @@ class MangaAdapter(val mangaList: Array<String>) : // Describes an item view and its place within the RecyclerView class MangaViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - private val mangaTextView: TextView = itemView.findViewById(R.id.tv_title) + val mangaTitle: TextView = itemView.findViewById(R.id.tv_title) + val mangaRank: TextView = itemView.findViewById(R.id.tv_rank) + val mangaImage: ImageView = itemView.findViewById(R.id.iv_image) - fun bind(word: String) { - mangaTextView.text = word - } } // Returns a new ViewHolder @@ -34,7 +34,9 @@ class MangaAdapter(val mangaList: Array<String>) : // Displays data at a certain position override fun onBindViewHolder(holder: MangaViewHolder, position: Int) { - holder.bind(mangaList[position]) + holder.mangaTitle.text = mangaList[position] //use specific json data + holder.mangaRank.text = position.toString() //replace by the actual rank + //holder.mangaImage.setImageResource(mangaList[position]) //replace by the manga image } } diff --git a/app/src/main/java/xyz/adjutor/aniki/RestTopMangaResponse.kt b/app/src/main/java/xyz/adjutor/aniki/RestTopMangaResponse.kt index 8cd5f2b..46b3bd3 100644 --- a/app/src/main/java/xyz/adjutor/aniki/RestTopMangaResponse.kt +++ b/app/src/main/java/xyz/adjutor/aniki/RestTopMangaResponse.kt @@ -12,4 +12,8 @@ class RestTopMangaResponse { var request_cached_expiry: Int? = null @SerializedName("top") var top = ArrayList<TopManga>() + + fun getResults(): ArrayList<TopManga> { + return top + } }
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt b/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt index 9496053..729ff6f 100644 --- a/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt +++ b/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt @@ -26,17 +26,8 @@ class TopMangaPage : Fragment() { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.top_manga_page, container, false) - // Retrieves data from mangasource - val mangaList = MangaSource(view.context).getMangaList() + makeApiCall(view, base_url) - - makeApiCall(base_url) - - - val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view) - recyclerView.setHasFixedSize(true) - recyclerView.layoutManager = LinearLayoutManager(view.context) - recyclerView.adapter = MangaAdapter(mangaList) return view } @@ -49,7 +40,14 @@ class TopMangaPage : Fragment() { } - fun makeApiCall(BASE_URL: String) { + fun showList(view: View, mangaList: Array<String> ){ + val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view) + recyclerView.setHasFixedSize(true) + recyclerView.layoutManager = LinearLayoutManager(view.context) + recyclerView.adapter = MangaAdapter(mangaList) + } + + fun makeApiCall(view: View, BASE_URL: String) { val gson = GsonBuilder() .setLenient() .create() @@ -62,9 +60,12 @@ class TopMangaPage : Fragment() { call.enqueue(object : Callback<RestTopMangaResponse> { override fun onResponse(call: Call<RestTopMangaResponse>, response: Response<RestTopMangaResponse>) { if(response.isSuccessful && response.body() != null){ - val topMangaResponse = response.body() + val topMangaResponse = response.body()!!.getResults() Snackbar.make(requireView(), "HA? YOU THOUGHT IT WAS AN ERROR !? BUT IT WAS I, API !", Snackbar.LENGTH_LONG) .setAction("Action", null).show() + // Retrieves data from mangasource + val mangaList = MangaSource(view.context).getMangaList() + showList(view, mangaList) } else { showError() } @@ -74,9 +75,7 @@ class TopMangaPage : Fragment() { showError() } - - } - ) + }) } private fun showError() { diff --git a/app/src/main/res/layout/item_layout.xml b/app/src/main/res/layout/item_layout.xml index 8500bc7..eb65d60 100644 --- a/app/src/main/res/layout/item_layout.xml +++ b/app/src/main/res/layout/item_layout.xml @@ -29,17 +29,28 @@ android:src="@mipmap/ic_launcher_round" android:contentDescription="@string/rv_image" /> - <TextView - android:id="@+id/tv_title" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - app:layout_constraintStart_toEndOf="@id/iv_image" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toBottomOf="parent" - android:text="@string/rv_title" - android:textColor="@color/strong_pink" - android:textSize="20sp"/> + <TextView + android:id="@+id/tv_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toEndOf="@id/iv_image" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + android:text="@string/rv_title" + android:textColor="@color/strong_pink" + android:textSize="30sp"/> + + <TextView + android:id="@+id/tv_rank" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@color/very_dark_purple" + android:text="@string/rv_rank" + android:textColor="@color/slightly_desaturated_magenta" + android:textSize="20sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ccd2ae8..5301008 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -13,7 +13,7 @@ <string name="article_page_label">Article Page</string> <string name="top_manga_page_label">Top Manga Page</string> <string name="rv_title">Title</string> - <string name="rv_description">This is a description</string> + <string name="rv_rank">0</string> <string name="rv_image">image</string> <string name="manga_image_content_description">Image of manga</string> |