/
TvAdapter.java
104 lines (85 loc) · 3.35 KB
/
TvAdapter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.azhar.moviedb.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RatingBar;
import android.widget.TextView;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import com.azhar.moviedb.R;
import com.azhar.moviedb.model.ModelTV;
import com.azhar.moviedb.networking.ApiEndpoint;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import java.util.List;
/**
* Created by Azhar Rivaldi on 22-12-2019.
*/
public class TvAdapter extends RecyclerView.Adapter<TvAdapter.ViewHolder> {
private List<ModelTV> items;
private TvAdapter.onSelectData onSelectData;
private Context mContext;
private double Rating;
public interface onSelectData {
void onSelected(ModelTV modelTV);
}
public TvAdapter(Context context, List<ModelTV> items, TvAdapter.onSelectData xSelectData) {
this.mContext = context;
this.items = items;
this.onSelectData = xSelectData;
}
@Override
public TvAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_film, parent, false);
return new TvAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(TvAdapter.ViewHolder holder, int position) {
final ModelTV data = items.get(position);
Rating = data.getVoteAverage();
holder.tvTitle.setText(data.getName());
holder.tvRealeseDate.setText(data.getReleaseDate());
holder.tvDesc.setText(data.getOverview());
float newValue = (float)Rating;
holder.ratingBar.setNumStars(5);
holder.ratingBar.setStepSize((float) 0.5);
holder.ratingBar.setRating(newValue / 2);
Glide.with(mContext)
.load(ApiEndpoint.URLIMAGE + data.getPosterPath())
.apply(new RequestOptions()
.placeholder(R.drawable.ic_image)
.transform(new RoundedCorners(16)))
.into(holder.imgPhoto);
holder.cvFilm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onSelectData.onSelected(data);
}
});
}
@Override
public int getItemCount() {
return items.size();
}
//Class Holder
class ViewHolder extends RecyclerView.ViewHolder {
public CardView cvFilm;
public ImageView imgPhoto;
public TextView tvTitle;
public TextView tvRealeseDate;
public TextView tvDesc;
public RatingBar ratingBar;
public ViewHolder(View itemView) {
super(itemView);
cvFilm = itemView.findViewById(R.id.cvFilm);
imgPhoto = itemView.findViewById(R.id.imgPhoto);
tvTitle = itemView.findViewById(R.id.tvTitle);
tvRealeseDate = itemView.findViewById(R.id.tvRealeseDate);
tvDesc = itemView.findViewById(R.id.tvDesc);
ratingBar = itemView.findViewById(R.id.ratingBar);
}
}
}