fix CustomAdapter repeating issue
This commit is contained in:
		| @ -1,28 +0,0 @@ | ||||
| package org.mosad.teapod.ui.components | ||||
|  | ||||
| import android.content.Context | ||||
| import android.graphics.Bitmap | ||||
| import android.widget.LinearLayout | ||||
| import com.bumptech.glide.Glide | ||||
| import kotlinx.android.synthetic.main.linear_media.view.* | ||||
| import org.mosad.teapod.R | ||||
|  | ||||
|  | ||||
| class MediaLinearLayout(context: Context?) : LinearLayout(context) { | ||||
|  | ||||
|     init { | ||||
|         inflate(context, R.layout.linear_media, this) | ||||
|     } | ||||
|  | ||||
|     fun setTitle(title: String): MediaLinearLayout = apply { | ||||
|         text_title.text = title | ||||
|     } | ||||
|  | ||||
|     fun setPoster(url: String): MediaLinearLayout = apply { | ||||
|         Glide.with(context) | ||||
|             .load(url) | ||||
|             .into(image_poster) | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
| @ -29,15 +29,13 @@ class LibraryFragment : Fragment() { | ||||
|             val parser = AoDParser() | ||||
|             mediaList = parser.listAnime() | ||||
|  | ||||
|             println("setting adapter") | ||||
|             // create and set the adapter, needs context | ||||
|             withContext(Dispatchers.Main) { | ||||
|                 adapter = CustomAdapter(requireContext(), mediaList)//ArrayAdapter(requireContext(), R.layout.linear_media, R.id.text_title, mediaList) | ||||
|  | ||||
|                 list_library.adapter = adapter | ||||
|                 adapter.notifyDataSetChanged() | ||||
|                 //adapter.notifyDataSetChanged() | ||||
|             } | ||||
|  | ||||
|  | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -7,26 +7,22 @@ import android.view.ViewGroup | ||||
| import android.widget.ArrayAdapter | ||||
| import android.widget.ImageView | ||||
| import android.widget.TextView | ||||
| import androidx.recyclerview.widget.RecyclerView | ||||
| import com.bumptech.glide.Glide | ||||
| import org.mosad.teapod.R | ||||
| import org.mosad.teapod.ui.components.MediaLinearLayout | ||||
|  | ||||
| class CustomAdapter(context: Context, private val media: ArrayList<GUIMedia>) : ArrayAdapter<GUIMedia>(context, R.layout.linear_media, media) { | ||||
|  | ||||
|     override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { | ||||
|         return if (convertView == null) { | ||||
|             val guiMedia = LayoutInflater.from(context).inflate(R.layout.linear_media, parent, false) | ||||
|         val view = convertView ?: LayoutInflater.from(context).inflate(R.layout.linear_media, parent, false) | ||||
|  | ||||
|             val textTitle = guiMedia.findViewById<TextView>(R.id.text_title) | ||||
|             val imagePoster = guiMedia.findViewById<ImageView>(R.id.image_poster) | ||||
|         val textTitle = view.findViewById<TextView>(R.id.text_title) | ||||
|         val imagePoster = view.findViewById<ImageView>(R.id.image_poster) | ||||
|  | ||||
|             textTitle.text = media[position].title | ||||
|             Glide.with(context).load(media[position].imageLink).into(imagePoster) | ||||
|         textTitle.text = media[position].title | ||||
|         Glide.with(context).load(media[position].imageLink).into(imagePoster) | ||||
|  | ||||
|             guiMedia | ||||
|         } else { | ||||
|             convertView | ||||
|         } | ||||
|         return view | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user