AutorÃa | Ultima modificación | Ver Log |
package com.cesams.twogetskills.inconcert.adapter;import android.content.Context;import android.text.Html;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import androidx.annotation.NonNull;import androidx.cardview.widget.CardView;import androidx.recyclerview.widget.RecyclerView;import com.bumptech.glide.Glide;import com.bumptech.glide.load.engine.DiskCacheStrategy;import com.bumptech.glide.load.model.GlideUrl;import com.bumptech.glide.load.model.LazyHeaders;import com.bumptech.glide.request.RequestOptions;import com.cesams.twogetskills.inconcert.Constants;import com.cesams.twogetskills.inconcert.R;import com.cesams.twogetskills.inconcert.library.MD5;import com.cesams.twogetskills.inconcert.skeleton.ITwoGetSkills;import java.util.ArrayList;import java.util.Calendar;import java.util.HashMap;import java.util.Random;import java.util.TimeZone;public class TabsCapsulesAdapter extends RecyclerView.Adapter<TabsCapsulesAdapter.MyViewHolder> {private ArrayList<HashMap<String, String>> mDataSet;private Context mContext;private ITwoGetSkills iTwoGetSkills;private ClickListener clickListener;public TabsCapsulesAdapter(Context context, ArrayList<HashMap<String, String>> mDataSet) {this.mDataSet = mDataSet;this.mContext = context;this.iTwoGetSkills = (ITwoGetSkills) context;}@NonNull@Overridepublic MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.capsuleitemcategory, parent, false);MyViewHolder viewHolder = new MyViewHolder(v);return viewHolder;}@Overridepublic void onBindViewHolder(@NonNull MyViewHolder holder, int position) {HashMap<String, String> data = mDataSet.get(position);holder.bindData(data);}@Overridepublic int getItemCount() {return (mDataSet != null) ? mDataSet.size() : 0;}/* void setOnItemClickListener(ClickListener clickListener) {this.clickListener = clickListener;}*/public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {private TextView fecha,pendientes,titulo;private CardView card;private Button entrar;private ImageView imagen;public MyViewHolder(@NonNull View itemView) {super(itemView);titulo = itemView.findViewById(R.id.description);fecha = itemView.findViewById(R.id.progressview);imagen = itemView.findViewById(R.id.imagelist);entrar = itemView.findViewById(R.id.button);pendientes = itemView.findViewById(R.id.pendientes);card = itemView.findViewById(R.id.card_notifi);if (clickListener != null) {card.setFocusable(true);card.setOnClickListener(this);entrar.setFocusable(true);entrar.setOnClickListener(this);}}public void bindData(final HashMap<String, String> data) {data.entrySet();String view, total, nombre, slides;view= data.get("description");total=data.get("total");nombre = data.get("nombre");slides= data.get("view");if(nombre != null){titulo.setText(nombre);}if(view != null ){fecha.setText((Html.fromHtml(view)));}if(total != null || slides != null){pendientes.setText(slides+" / "+total+" items");}else{pendientes.setText("");}String imagens;imagens=data.get("imagen");//Verificamos que las imagenes no esten vaciasif (imagens != null && !imagens.equals("")) {TimeZone timeZone = TimeZone.getTimeZone("UTC");Calendar calendar = Calendar.getInstance(timeZone);TimeZone tz = calendar.getTimeZone();int created = (int) (calendar.getTimeInMillis() / 1000);Random random = new Random(created);int rand = 1000 + random.nextInt(8999);String deviceUuid = iTwoGetSkills.getPreference().getDeviceUuid();String password = iTwoGetSkills.getPreference().getPassword();String secret = MD5.generar(password + ':' + created + ':' + rand);GlideUrl url = new GlideUrl(imagens, new LazyHeaders.Builder().addHeader(Constants.HTTP_HEADER_ACCEPT, Constants.HTTP_HEADER_ACCEPT_VALUE).addHeader(Constants.HTTP_HEADER_SECURITY_TOKEN, deviceUuid).addHeader(Constants.HTTP_HEADER_SECURITY_SECRET, secret).addHeader(Constants.HTTP_HEADER_SECURITY_CREATED, String.valueOf(created)).addHeader(Constants.HTTP_HEADER_SECURITY_RAND, String.valueOf(rand)).build());RequestOptions options = new RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL);Glide.with(mContext).load(url).thumbnail().apply(options).into(imagen);}}@Overridepublic void onClick(View v) {if (clickListener != null) {clickListener.onItemClick(getAbsoluteAdapterPosition(), v);}}}// allows clicks events to be caughtpublic void setClickListener(ClickListener itemClickListener) {this.clickListener = itemClickListener;}public interface ClickListener {void onItemClick(int position, View v);}}