package
com.sangyan.financeapp;
import
android.content.Context;
import
android.content.Intent;
import
android.net.Uri;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
androidx.recyclerview.widget.RecyclerView;
import
com.bumptech.glide.Glide;
import
com.sangyan.financeapp.databinding.NewsLayoutBinding;
import
java.util.ArrayList;
import
java.util.List;
public
class
FinanceAdapter
extends
RecyclerView
.Adapter<FinanceAdapter.ViewHolder> {
private
ArrayList<Data> list =
new
ArrayList<>();
public
void
setData(List<Data> list)
{
java.util.Collections.shuffle(list);
this
.list =
new
ArrayList<>(list);
notifyDataSetChanged();
}
public
static
class
ViewHolder
extends
RecyclerView.ViewHolder {
NewsLayoutBinding binding;
public
ViewHolder(NewsLayoutBinding binding)
{
super
(binding.getRoot());
this
.binding = binding;
}
}
@Override
public
ViewHolder onCreateViewHolder(ViewGroup parent,
int
viewType)
{
NewsLayoutBinding binding
= NewsLayoutBinding.inflate(
LayoutInflater.from(parent.getContext()),
parent,
false
);
return
new
ViewHolder(binding);
}
@Override
public
void
onBindViewHolder(ViewHolder holder,
int
position)
{
Data data = list.get(position);
holder.binding.newsTitle.setText(data.getTitle());
holder.binding.newsDescription.setText(
data.getDescription());
holder.binding.newsSource.setText(
data.getSource().getName());
holder.binding.newsTime.setText(
data.getPublishedAt());
Glide.with(holder.itemView)
.load(data.getUrlToImage())
.into(holder.binding.newsImage);
holder.itemView.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v)
{
Intent intent
=
new
Intent(Intent.ACTION_VIEW);
intent.setData(
Uri.parse(data.getUrl()));
holder.itemView.getContext()
.startActivity(intent);
}
});
}
@Override
public
int
getItemCount()
{
return
list.size();
}
}