package cgeo.geocaching.helper;
import cgeo.geocaching.R;
import cgeo.geocaching.compatibility.Compatibility;
import cgeo.geocaching.ui.recyclerview.AbstractRecyclerViewAdapter;
import cgeo.geocaching.ui.recyclerview.AbstractRecyclerViewHolder;
import android.content.Context;
import android.content.res.Resources;
import android.support.annotation.NonNull;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Arrays;
import java.util.List;
import butterknife.BindView;
final class HelperAppAdapter extends AbstractRecyclerViewAdapter<HelperAppAdapter.ViewHolder> {
@NonNull private final List<HelperApp> helperApps;
@NonNull private final HelperAppClickListener clickListener;
@NonNull private final Context context;
protected static final class ViewHolder extends AbstractRecyclerViewHolder {
@BindView(R.id.title) protected TextView title;
@BindView(R.id.image) protected ImageView image;
@BindView(R.id.description) protected TextView description;
ViewHolder(final View rowView) {
super(rowView);
}
}
HelperAppAdapter(@NonNull final Context context, @NonNull final HelperApp[] objects, @NonNull final HelperAppClickListener clickListener) {
this.context = context;
this.clickListener = clickListener;
helperApps = Arrays.asList(objects);
}
@Override
public int getItemCount() {
return helperApps.size();
}
@Override
public ViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) {
final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.usefulapps_item, parent, false);
final ViewHolder viewHolder = new ViewHolder(view);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
final HelperApp app = helperApps.get(viewHolder.getItemPosition());
clickListener.onClickHelperApp(app);
}
});
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
super.onBindViewHolder(holder, position);
final HelperApp app = helperApps.get(position);
final Resources resources = context.getResources();
holder.title.setText(resources.getString(app.titleId));
holder.image.setImageDrawable(Compatibility.getDrawable(resources, app.iconId));
holder.description.setText(Html.fromHtml(resources.getString(app.descriptionId)));
}
}