Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.wildan.moviecatalogue.adapter
- import android.content.Context
- import android.content.Intent
- import android.support.v7.widget.RecyclerView
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import com.wildan.moviecatalogue.GlideApp
- import com.wildan.moviecatalogue.R
- import com.wildan.moviecatalogue.activity.DetailActivity
- import com.wildan.moviecatalogue.model.movie.MovieResult
- import com.wildan.moviecatalogue.utils.DateFormat
- import com.wildan.moviecatalogue.utils.UtilsConstant.Companion.DETAIL_EXTRA
- import com.wildan.moviecatalogue.utils.UtilsConstant.Companion.MOVIE_EXTRA
- import com.wildan.moviecatalogue.utils.UtilsConstant.Companion.POSTER_URL
- import kotlinx.android.synthetic.main.item_movie.view.*
- class ListMovieAdapter(private val context: Context?) : RecyclerView.Adapter<ListMovieAdapter.MovieViewHolder>() {
- private var mMoviesList = ArrayList<MovieResult>()
- fun setData(items: ArrayList<MovieResult>) {
- mMoviesList.clear()
- mMoviesList.addAll(items)
- notifyDataSetChanged()
- }
- fun refreshAdapter(movies: List<MovieResult>) {
- mMoviesList.addAll(movies)
- notifyItemRangeChanged(0, mMoviesList.size)
- }
- override fun onCreateViewHolder(viewGroup: ViewGroup, p1: Int): MovieViewHolder {
- val view = LayoutInflater.from(context).inflate(R.layout.item_movie, viewGroup, false)
- return MovieViewHolder(view)
- }
- override fun getItemCount(): Int {
- return mMoviesList.size
- }
- override fun onBindViewHolder(holder: MovieViewHolder, position: Int) {
- holder.itemView.img_poster?.let {
- context?.let { it1 ->
- GlideApp.with(it1)
- .load(POSTER_URL + mMoviesList[position].posterPath)
- .into(it)
- }
- }
- holder.itemView.tv_title?.text = mMoviesList[position].title.toString()
- holder.itemView.tv_date?.text = DateFormat.getLongDate(mMoviesList[position].releaseDate.toString())
- holder.itemView.tv_popularity?.text =
- context?.resources?.getString(R.string.movie_popularity)?.let {
- String.format(
- it,
- mMoviesList[position].popularity.toString()
- )
- }
- holder.itemView.tv_rating?.text =
- context?.resources?.getString(R.string.movie_rating)?.let {
- String.format(
- it,
- mMoviesList[position].voteAverage.toString()
- )
- }
- holder.itemView.movie_item?.setOnClickListener {
- val intent = Intent(context, DetailActivity::class.java)
- intent.putExtra(MOVIE_EXTRA, mMoviesList[position].id.toString())
- intent.putExtra(DETAIL_EXTRA, "movie")
- context?.startActivity(intent)
- }
- }
- inner class MovieViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
- }
Add Comment
Please, Sign In to add comment