Skip to content

Instantly share code, notes, and snippets.

@Lukmannudin
Last active February 10, 2020 08:34
Show Gist options
  • Select an option

  • Save Lukmannudin/00fc3a5aa058e2013eb09e0cd7ecea7b to your computer and use it in GitHub Desktop.

Select an option

Save Lukmannudin/00fc3a5aa058e2013eb09e0cd7ecea7b to your computer and use it in GitHub Desktop.
Code Readibility Sleepy
package id.diamondsleep.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import java.util.ArrayList;
import id.diamondsleep.R;
import id.diamondsleep.model.Artikel;
import id.diamondsleep.utilities.ConstantValue;
import id.diamondsleep.utilities.Penghitungan;
import id.diamondsleep.view.activity.TipsArtikelDetailActivity;
/**
* Created by nonomang on 17/05/17.
*/
public class ArtikelAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public final int TYPE_ARTIKEL = 0;
public final int TYPE_LOAD = 1;
Context context;
ArrayList<Artikel> mArtikels;
OnLoadMoreListener loadMoreListener;
boolean isLoading = false, isMoreDataAvailable = true;
public ArtikelAdapter(Context context, ArrayList<Artikel> mArtikels) {
this.context = context;
this.mArtikels = mArtikels;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
if (viewType == TYPE_ARTIKEL) {
return new ArtikelHolder(inflater.inflate(R.layout.adapter_article, parent, false));
} else {
return new LoadHolder(inflater.inflate(R.layout.adapter_load, parent, false));
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (position >= getItemCount() - 1 && isMoreDataAvailable && isLoading && loadMoreListener != null) {
isLoading = true;
loadMoreListener.onLoadMore();
}
if (getItemViewType(position) == TYPE_ARTIKEL) {
((ArtikelHolder) holder).bindData(mArtikels.get(position));
}
}
@Override
public int getItemViewType(int position) {
if (mArtikels.get(position).getIsi().equals("loadArtikel")) {
return TYPE_LOAD;
} else {
return TYPE_ARTIKEL;
}
}
@Override
public int getItemCount() {
return mArtikels.size();
}
public void setMoreDataAvailable(boolean moreDataAvailable) {
isMoreDataAvailable = moreDataAvailable;
}
public void notifyDataChanged() {
notifyDataSetChanged();
isLoading = false;
}
public void setLoadMoreListener(OnLoadMoreListener loadMoreListener) {
this.loadMoreListener = loadMoreListener;
}
public interface OnLoadMoreListener {
void onLoadMore();
}
static class LoadHolder extends RecyclerView.ViewHolder {
public LoadHolder(View itemView) {
super(itemView);
}
}
class ArtikelHolder extends RecyclerView.ViewHolder {
TextView artikel_judul, artikel_pengirim, artikel_tanggal;
ImageView artikel_gambar;
public ArtikelHolder(final View itemView) {
super(itemView);
artikel_judul = (TextView) itemView.findViewById(R.id.title_article);
artikel_pengirim = (TextView) itemView.findViewById(R.id.pembuat_article);
artikel_tanggal = (TextView) itemView.findViewById(R.id.tv_tgl_post_articleadapter);
artikel_gambar = (ImageView) itemView.findViewById(R.id.img_artikel);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), TipsArtikelDetailActivity.class);
intent.putExtra("detailArtikel", new Gson().toJson(mArtikels.get(getAdapterPosition())));
itemView.getContext().startActivity(intent);
// Toast.makeText(context, "Clicked", Toast.LENGTH_SHORT).show();
}
});
}
void bindData(Artikel artikel) {
if (artikel.getJudul().length() > 43) {
artikel_judul.setText(artikel.getJudul().substring(0, 40) + "...");
} else {
artikel_judul.setText(artikel.getJudul());
}
artikel_pengirim.setText(artikel.getPengirim());
// String[] tanggal = artikel.getTanggal().split("-");
String tanggal = Penghitungan.convertDateFromDBFormat(artikel.getTanggal());
artikel_tanggal.setText(tanggal);
try {
String image_uri = ConstantValue.Api.PICTURE_URI + artikel.getGambar();
Glide.with(context).load(image_uri).into(artikel_gambar);
} catch (Exception ex) {
Log.e("Connection", ex.getMessage());
Glide.with(context).load(R.mipmap.ic_sad_black).into(artikel_gambar);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment