package net.reichholf.dreamdroid.adapter.recyclerview;
import android.content.Context;
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.squareup.picasso.Callback;
import net.reichholf.dreamdroid.R;
import net.reichholf.dreamdroid.helpers.ExtendedHashMap;
import net.reichholf.dreamdroid.helpers.Statics;
import net.reichholf.dreamdroid.helpers.enigma2.Picon;
import net.reichholf.dreamdroid.helpers.enigma2.Service;
import java.util.ArrayList;
/**
* Created by Stephan on 03.02.2016.
*/
public class ZapAdapter extends BaseAdapter<ZapAdapter.ZapViewHolder> {
private static String TAG = ZapAdapter.class.getSimpleName();
private Context mContext;
public ZapAdapter(Context context, ArrayList<ExtendedHashMap> data) {
super(data);
mContext = context;
}
@Override
public ZapViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View itemView = inflater.inflate(R.layout.zap_grid_item, parent, false);
ZapViewHolder zvh = new ZapViewHolder(itemView);
itemView.setTag(zvh);
return zvh;
}
@Override
public void onBindViewHolder(ZapViewHolder holder, int position) {
ExtendedHashMap service = mData.get(position);
if (service != null) {
holder.serviceName.setVisibility(View.VISIBLE);
holder.serviceName.setText(service.getString(Service.KEY_NAME));
Picon.setPiconForView(mContext, holder.picon, service, Statics.TAG_PICON, holder.piconCallback);
}
}
static class ZapViewHolder extends RecyclerView.ViewHolder {
ImageView picon;
TextView serviceName;
Callback piconCallback;
public ZapViewHolder(View itemView) {
super(itemView);
picon = (ImageView) itemView.findViewById(R.id.picon);
serviceName = (TextView) itemView.findViewById(android.R.id.text1);
piconCallback = new Callback() {
@Override
public void onSuccess() {
serviceName.setVisibility(View.GONE);
picon.setVisibility(View.VISIBLE);
}
@Override
public void onError() {
Log.w(TAG, String.format("Error loading picon for %s", serviceName.getText()));
serviceName.setVisibility(View.VISIBLE);
picon.setVisibility(View.GONE);
}
};
}
}
}