abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/EmojiGroupButtonsBar.java
diff options
context:
space:
mode:
authorJules Aguillon2022-12-11 16:20:51 +0100
committerJules Aguillon2022-12-11 16:26:50 +0100
commit199ca5cf03f1778d9a41622f4b0ed02912c2a20b (patch)
tree67b12d71826ec7d3f027d81ad37835995d25e6c1 /srcs/juloo.keyboard2/EmojiGroupButtonsBar.java
parent87d21685ca2909a1a08ac22bd8eb2672c3139840 (diff)
downloadunexpected-keyboard-199ca5cf03f1778d9a41622f4b0ed02912c2a20b.tar.gz
unexpected-keyboard-199ca5cf03f1778d9a41622f4b0ed02912c2a20b.zip
Improve emoji pane layout
The measurement function was wrong in some situations. Set a width for columns and properly configure the GridView.
Diffstat (limited to 'srcs/juloo.keyboard2/EmojiGroupButtonsBar.java')
-rw-r--r--srcs/juloo.keyboard2/EmojiGroupButtonsBar.java42
1 files changed, 39 insertions, 3 deletions
diff --git a/srcs/juloo.keyboard2/EmojiGroupButtonsBar.java b/srcs/juloo.keyboard2/EmojiGroupButtonsBar.java
index f736ddf..1d02568 100644
--- a/srcs/juloo.keyboard2/EmojiGroupButtonsBar.java
+++ b/srcs/juloo.keyboard2/EmojiGroupButtonsBar.java
@@ -2,11 +2,18 @@ package juloo.keyboard2;
import android.content.Context;
import android.util.AttributeSet;
-import android.widget.LinearLayout;
+import android.view.ContextThemeWrapper;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
import android.widget.LinearLayout.LayoutParams;
+import android.widget.LinearLayout;
public class EmojiGroupButtonsBar extends LinearLayout
{
+ private EmojiGridView _emoji_grid = null;
+
public EmojiGroupButtonsBar(Context context, AttributeSet attrs)
{
super(context, attrs);
@@ -19,8 +26,37 @@ public class EmojiGroupButtonsBar extends LinearLayout
}
}
- private void add_group(int id, String symbol)
+ void add_group(int id, String symbol)
+ {
+ addView(this.new EmojiGroupButton(getContext(), id, symbol),
+ new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1.f));
+ }
+
+ EmojiGridView get_emoji_grid()
{
- addView(new EmojiTypeButton(getContext(), id, symbol), new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1.f));
+ if (_emoji_grid == null)
+ _emoji_grid = (EmojiGridView)((ViewGroup)(getParent())).findViewById(R.id.emoji_grid);
+ return _emoji_grid;
+ }
+
+ class EmojiGroupButton extends Button implements View.OnTouchListener
+ {
+ int _group_id;
+
+ public EmojiGroupButton(Context context, int group_id, String symbol)
+ {
+ super(new ContextThemeWrapper(context, R.style.emojiTypeButton), null, 0);
+ _group_id = group_id;
+ setText(symbol);
+ setOnTouchListener(this);
+ }
+
+ public boolean onTouch(View view, MotionEvent event)
+ {
+ if (event.getAction() != MotionEvent.ACTION_DOWN)
+ return false;
+ get_emoji_grid().setEmojiGroup(_group_id);
+ return true;
+ }
}
}