aboutsummaryrefslogtreecommitdiffstats
path: root/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java')
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java83
1 files changed, 55 insertions, 28 deletions
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java
index e3dc221d..b9dd5e59 100644
--- a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiAdapter.java
@@ -16,59 +16,86 @@
package github.ankushsachdeva.emojicon;
-import github.ankushsachdeva.emojicon.EmojiconGridView.OnEmojiconClickedListener;
-import github.ankushsachdeva.emojicon.emoji.Emojicon;
-
+import java.util.ArrayList;
import java.util.List;
import android.content.Context;
+import android.view.LayoutInflater;
import android.view.View;
-import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
+import android.widget.BaseAdapter;
import android.widget.TextView;
-import github.ankushsachdeva.emojicon.R;
-
/**
* @author Ankush Sachdeva (sankush@yahoo.co.in)
*/
-class EmojiAdapter extends ArrayAdapter<Emojicon> {
- OnEmojiconClickedListener emojiClickListener;
- public EmojiAdapter(Context context, List<Emojicon> data) {
- super(context, R.layout.emojicon_item, data);
+class EmojiAdapter extends BaseAdapter {
+ private final List<Emojicon> mEmojicons = new ArrayList<>();
+ private OnEmojiClickedListener mClickListener;
+ private final Context mContext;
+
+ public EmojiAdapter(Context context) {
+ this.mContext = context;
+ }
+
+ public void setEmojiconList(List<Emojicon> emojiconList) {
+ mEmojicons.clear();
+ mEmojicons.addAll(emojiconList);
+ notifyDataSetChanged();
+ }
+
+ public void setClickListener(OnEmojiClickedListener clickListener) {
+ mClickListener = clickListener;
+ }
+
+ @Override
+ public int getCount() {
+ return mEmojicons.size();
}
- public EmojiAdapter(Context context, Emojicon[] data) {
- super(context, R.layout.emojicon_item, data);
+ @Override
+ public Emojicon getItem(int position) {
+ return mEmojicons.get(position);
}
-
- public void setEmojiClickListener(OnEmojiconClickedListener listener){
- this.emojiClickListener = listener;
+
+ @Override
+ public long getItemId(int position) {
+ return position;
}
-
+
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
- v = View.inflate(getContext(), R.layout.emojicon_item, null);
+ v = LayoutInflater.from(mContext).inflate(R.layout.emojicon_item, null);
+ v.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (mClickListener != null) {
+ mClickListener.onEmojiClicked(((ViewHolder) v.getTag()).mEmoji);
+ }
+ }
+ });
ViewHolder holder = new ViewHolder();
- holder.icon = (TextView) v.findViewById(R.id.emojicon_icon);
+ holder.mEmojiContainer = (TextView) v.findViewById(R.id.emojiContainer);
+ holder.mEmojiId = (TextView) v.findViewById(R.id.emojiId);
v.setTag(holder);
}
Emojicon emoji = getItem(position);
ViewHolder holder = (ViewHolder) v.getTag();
- holder.icon.setText(emoji.getEmoji());
- holder.icon.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- emojiClickListener.onEmojiconClicked(getItem(position));
- }
- });
+ holder.mEmoji = emoji;
+ holder.mEmojiId.setText(emoji.getId());
+ holder.mEmojiContainer.setText(emoji.toString());
return v;
}
- class ViewHolder {
- TextView icon;
+ private class ViewHolder {
+ TextView mEmojiContainer;
+ TextView mEmojiId;
+ Emojicon mEmoji;
+ }
+
+ public interface OnEmojiClickedListener {
+ void onEmojiClicked(Emojicon emojicon);
}
} \ No newline at end of file