abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/EmojiGridView.java
diff options
context:
space:
mode:
authorjaguillo2015-10-23 14:22:43 +0200
committerjaguillo2015-10-23 14:22:43 +0200
commitdb20d528847fe6b451c19eb0b95eeb12954f98a4 (patch)
tree5e55e710815e98b763e954fd283a154597c9b39f /srcs/juloo.keyboard2/EmojiGridView.java
parent7fb89b0c95e92f46266def50b827b2444d6216e1 (diff)
downloadunexpected-keyboard-db20d528847fe6b451c19eb0b95eeb12954f98a4.tar.gz
unexpected-keyboard-db20d528847fe6b451c19eb0b95eeb12954f98a4.zip
Start with emojis
Diffstat (limited to 'srcs/juloo.keyboard2/EmojiGridView.java')
-rw-r--r--srcs/juloo.keyboard2/EmojiGridView.java107
1 files changed, 107 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/EmojiGridView.java b/srcs/juloo.keyboard2/EmojiGridView.java
new file mode 100644
index 0000000..f4d2d54
--- /dev/null
+++ b/srcs/juloo.keyboard2/EmojiGridView.java
@@ -0,0 +1,107 @@
+package juloo.keyboard2;
+
+import android.graphics.Typeface;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.GridView;
+import android.widget.TextView;
+
+public class EmojiGridView extends GridView
+ implements GridView.OnItemClickListener
+{
+ public static final int COLUMN_WIDTH = 192;
+ public static final int EMOJI_PANE_HEIGHT = 720;
+ public static final int EMOJI_PANE_BG = 0xFF191919;
+ public static final float EMOJI_SIZE = 32.f;
+
+ public EmojiGridView(Keyboard2 context)
+ {
+ super(context);
+ setOnItemClickListener(this);
+ EmojiViewAdpater adpater = new EmojiViewAdpater(context);
+ adpater.setEmojiSet(Emoji.getEmojiByType(Emoji.TYPE_EMOTICONS));
+ setColumnWidth(COLUMN_WIDTH);
+ setBackgroundColor(EMOJI_PANE_BG);
+ setAdapter(adpater);
+ }
+
+ public void onItemClick(AdapterView<?> parent, View v, int pos, long id)
+ {
+ System.out.println("Lol emoji: " + Emoji.getEmojiByType(Emoji.TYPE_EMOTICONS)[pos].getName());
+ }
+
+ @Override
+ public void onMeasure(int wSpec, int hSpec)
+ {
+ super.onMeasure(wSpec, hSpec);
+ setNumColumns(getMeasuredWidth() / COLUMN_WIDTH);
+ setMeasuredDimension(wSpec, EMOJI_PANE_HEIGHT);
+ }
+
+ private static class EmojiView extends TextView
+ {
+ private static ViewGroup.LayoutParams _layoutParams = null;
+
+ public EmojiView(Keyboard2 context)
+ {
+ super(context);
+ setTextSize(EMOJI_SIZE);
+ setGravity(Gravity.CENTER);
+ if (_layoutParams == null)
+ _layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
+ setLayoutParams(_layoutParams);
+ }
+
+ public void setEmoji(Emoji emoji)
+ {
+ setText(emoji.getBytecode());
+ }
+ }
+
+ private static class EmojiViewAdpater extends BaseAdapter
+ {
+ private Keyboard2 _main;
+
+ private Emoji[] _emojiSet = null;
+
+ public EmojiViewAdpater(Keyboard2 main)
+ {
+ _main = main;
+ }
+
+ public void setEmojiSet(Emoji[] set)
+ {
+ _emojiSet = set;
+ }
+
+ public int getCount()
+ {
+ if (_emojiSet == null)
+ return (0);
+ return (_emojiSet.length);
+ }
+
+ public Object getItem(int pos)
+ {
+ return (_emojiSet[pos]);
+ }
+
+ public long getItemId(int pos)
+ {
+ return (pos);
+ }
+
+ public View getView(int pos, View convertView, ViewGroup parent)
+ {
+ EmojiView view = (EmojiView)convertView;
+
+ if (view == null)
+ view = new EmojiView(_main);
+ view.setEmoji(_emojiSet[pos]);
+ return (view);
+ }
+ }
+}