package com.sdk.snippets.core;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class SnippetsListView extends ListView {
public void initialize(Snippets snippets) {
final SnippetsAdapter snippetsAdapter = new SnippetsAdapter(getContext(), snippets);
setAdapter(snippetsAdapter);
setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Snippet snippet = snippetsAdapter.getSnippet(i);
snippet.performExecution();
}
});
}
public SnippetsListView(Context context) {
super(context);
}
public SnippetsListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SnippetsListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
class SnippetsAdapter extends BaseAdapter {
Context context;
Snippets snippets;
LayoutInflater inflater;
public SnippetsAdapter(Context context, Snippets snippets) {
this.context = context;
this.snippets = snippets;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return snippets.getSnippets().size();
}
@Override
public Object getItem(int i) {
return snippets.getSnippets().get(i);
}
@Override
public long getItemId(int i) {
return i;
}
public Snippet getSnippet(int index) {
return snippets.getSnippets().get(index);
}
@Override
public View getView(int i, View convertView, ViewGroup parent) {
final Snippet snippet = (Snippet) getItem(i);
ViewHolder viewHolder;
if (convertView == null) {
convertView = inflater.inflate(android.R.layout.simple_list_item_2, null);
viewHolder = new ViewHolder();
viewHolder.snippetTitle = (TextView) convertView.findViewById(android.R.id.text1);
viewHolder.snippetSubTitle = (TextView) convertView.findViewById(android.R.id.text2);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.snippetTitle.setText(snippet.getTitle());
if (snippet.getSubtitle() != null) {
viewHolder.snippetSubTitle.setText(snippet.getSubtitle());
} else {
viewHolder.snippetSubTitle.setText("");
}
return convertView;
}
class ViewHolder {
TextView snippetTitle;
TextView snippetSubTitle;
}
}
}