diff options
| author | Jules Aguillon | 2022-12-11 16:20:51 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2022-12-11 16:26:50 +0100 |
| commit | 199ca5cf03f1778d9a41622f4b0ed02912c2a20b (patch) | |
| tree | 67b12d71826ec7d3f027d81ad37835995d25e6c1 /srcs/juloo.keyboard2/EmojiGroupButtonsBar.java | |
| parent | 87d21685ca2909a1a08ac22bd8eb2672c3139840 (diff) | |
| download | unexpected-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.java | 42 |
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; + } } } |
