diff --git a/app/build.gradle b/app/build.gradle index 31290908..c1e5c5a7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId 'org.nuclearfog.twidda' minSdkVersion 21 targetSdkVersion 33 - versionCode 81 - versionName '3.1.1' + versionCode 82 + versionName '3.1.2' resConfigs 'en', 'de-rDE', 'zh-rCN' } diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java index ae4c89ee..3d1e2e6d 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java @@ -768,6 +768,7 @@ public class Mastodon implements Connection { Emoji item = new MastodonEmoji(json.getJSONObject(i)); result.add(item); } + Collections.sort(result); return result; } throw new MastodonException(response); diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/async/EmojiLoader.java b/app/src/main/java/org/nuclearfog/twidda/backend/async/TextEmojiLoader.java similarity index 94% rename from app/src/main/java/org/nuclearfog/twidda/backend/async/EmojiLoader.java rename to app/src/main/java/org/nuclearfog/twidda/backend/async/TextEmojiLoader.java index 00f77fe7..ee5f6fb6 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/async/EmojiLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/async/TextEmojiLoader.java @@ -23,7 +23,7 @@ import java.util.TreeMap; * * @author nuclearfog */ -public class EmojiLoader extends AsyncExecutor { +public class TextEmojiLoader extends AsyncExecutor { private Connection connection; private ImageCache cache; @@ -31,7 +31,7 @@ public class EmojiLoader extends AsyncExecutor implements OnEmojiClickListener { + + private GlobalSettings settings; + private Picasso picasso; + + private LinkedList items = new LinkedList<>(); + + + public EmojiAdapter(Context context) { + settings = GlobalSettings.getInstance(context); + picasso = PicassoBuilder.get(context); + } + + + @NonNull + @Override + public EmojiHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new EmojiHolder(parent, settings, picasso, this); + } + + + @Override + public void onBindViewHolder(@NonNull EmojiHolder holder, int position) { + Object item = items.get(position); + if (item instanceof Emoji[]) { + holder.setData((Emoji[]) item); + } else if (item instanceof String) { + holder.setLabel((String) item); + } + } + + + @Override + public int getItemCount() { + return items.size(); + } + + + @Override + public void onEmojiClick(int position, int index) { + } + + + public void replaceItems(List emojis) { + items.clear(); + String groupname = ""; + for (Emoji emoji : emojis) { + Emoji[] row; + Object item = items.peekLast(); + if (!emoji.getCategory().equals(groupname)) { + row = new Emoji[EmojiHolder.ROW_COUNT]; + row[0] = emoji; + items.add(groupname); + items.add(row); + } else if (item instanceof Emoji[]) { + row = (Emoji[]) item; + if (row[EmojiHolder.ROW_COUNT - 1] == null) { + for (int j = 0; j < row.length; j++) { + if (row[j] == null) { + row[j] = emoji; + } + } + } else { + row = new Emoji[EmojiHolder.ROW_COUNT]; + row[0] = emoji; + items.add(row); + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/MessageAdapter.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/MessageAdapter.java index 595be172..a6df84c1 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/MessageAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/MessageAdapter.java @@ -10,7 +10,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.squareup.picasso.Picasso; import org.nuclearfog.tag.Tagger.OnTagClickListener; -import org.nuclearfog.twidda.backend.async.EmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; import org.nuclearfog.twidda.backend.helper.Messages; import org.nuclearfog.twidda.backend.image.PicassoBuilder; import org.nuclearfog.twidda.config.GlobalSettings; @@ -45,7 +45,7 @@ public class MessageAdapter extends Adapter implements OnItemClickLi private OnMessageClickListener itemClickListener; private GlobalSettings settings; private Picasso picasso; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private Messages messages; private int loadingIndex; @@ -58,7 +58,7 @@ public class MessageAdapter extends Adapter implements OnItemClickLi loadingIndex = NO_LOADING; settings = GlobalSettings.getInstance(context); picasso = PicassoBuilder.get(context); - emojiLoader = new EmojiLoader(context); + emojiLoader = new TextEmojiLoader(context); this.itemClickListener = itemClickListener; } diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/NotificationAdapter.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/NotificationAdapter.java index 9c1874e9..e9527f3c 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/NotificationAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/NotificationAdapter.java @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.squareup.picasso.Picasso; -import org.nuclearfog.twidda.backend.async.EmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; import org.nuclearfog.twidda.backend.image.PicassoBuilder; import org.nuclearfog.twidda.config.GlobalSettings; import org.nuclearfog.twidda.model.Notification; @@ -55,7 +55,7 @@ public class NotificationAdapter extends Adapter implements OnHolder private Picasso picasso; private GlobalSettings settings; private OnNotificationClickListener listener; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private List notifications; private int loadingIndex; @@ -64,7 +64,7 @@ public class NotificationAdapter extends Adapter implements OnHolder public NotificationAdapter(Context context, OnNotificationClickListener listener) { settings = GlobalSettings.getInstance(context); picasso = PicassoBuilder.get(context); - emojiLoader = new EmojiLoader(context); + emojiLoader = new TextEmojiLoader(context); notifications = new LinkedList<>(); loadingIndex = NO_LOADING; this.listener = listener; diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/StatusAdapter.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/StatusAdapter.java index 698259f8..0d751ee6 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/StatusAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/StatusAdapter.java @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.squareup.picasso.Picasso; -import org.nuclearfog.twidda.backend.async.EmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; import org.nuclearfog.twidda.backend.image.PicassoBuilder; import org.nuclearfog.twidda.config.GlobalSettings; import org.nuclearfog.twidda.model.Status; @@ -50,7 +50,7 @@ public class StatusAdapter extends Adapter implements OnHolderClickL */ private static final int MIN_COUNT = 2; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private StatusSelectListener listener; private GlobalSettings settings; private Picasso picasso; @@ -64,7 +64,7 @@ public class StatusAdapter extends Adapter implements OnHolderClickL public StatusAdapter(Context context, StatusSelectListener itemClickListener) { settings = GlobalSettings.getInstance(context); picasso = PicassoBuilder.get(context); - emojiLoader = new EmojiLoader(context); + emojiLoader = new TextEmojiLoader(context); loadingIndex = NO_LOADING; items = new LinkedList<>(); this.listener = itemClickListener; diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserAdapter.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserAdapter.java index b21129af..dcc5c323 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserAdapter.java @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.squareup.picasso.Picasso; -import org.nuclearfog.twidda.backend.async.EmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; import org.nuclearfog.twidda.backend.helper.Users; import org.nuclearfog.twidda.backend.image.PicassoBuilder; import org.nuclearfog.twidda.config.GlobalSettings; @@ -43,7 +43,7 @@ public class UserAdapter extends Adapter implements OnHolderClickLis private GlobalSettings settings; private Picasso picasso; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private UserClickListener listener; private boolean enableDelete; @@ -58,7 +58,7 @@ public class UserAdapter extends Adapter implements OnHolderClickLis public UserAdapter(Context context, UserClickListener listener, boolean enableDelete) { settings = GlobalSettings.getInstance(context); picasso = PicassoBuilder.get(context); - emojiLoader = new EmojiLoader(context); + emojiLoader = new TextEmojiLoader(context); users = new Users(0L, 0L); loadingIndex = NO_LOADING; this.enableDelete = enableDelete; diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserlistAdapter.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserlistAdapter.java index 1e1cf13e..68ca5ed0 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserlistAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/UserlistAdapter.java @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.squareup.picasso.Picasso; -import org.nuclearfog.twidda.backend.async.EmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; import org.nuclearfog.twidda.backend.helper.UserLists; import org.nuclearfog.twidda.backend.image.PicassoBuilder; import org.nuclearfog.twidda.config.GlobalSettings; @@ -49,7 +49,7 @@ public class UserlistAdapter extends Adapter implements OnHolderClic private ListClickListener listener; private GlobalSettings settings; private Picasso picasso; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private UserLists userlists; private int loadingIndex; @@ -61,7 +61,7 @@ public class UserlistAdapter extends Adapter implements OnHolderClic this.listener = listener; settings = GlobalSettings.getInstance(context); picasso = PicassoBuilder.get(context); - emojiLoader = new EmojiLoader(context); + emojiLoader = new TextEmojiLoader(context); userlists = new UserLists(0L, 0L); loadingIndex = NO_LOADING; } diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/EmojiHolder.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/EmojiHolder.java new file mode 100644 index 00000000..7e69e9b5 --- /dev/null +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/EmojiHolder.java @@ -0,0 +1,90 @@ +package org.nuclearfog.twidda.ui.adapter.holder; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.ViewHolder; + +import com.squareup.picasso.Picasso; + +import org.nuclearfog.twidda.R; +import org.nuclearfog.twidda.config.GlobalSettings; +import org.nuclearfog.twidda.model.Emoji; + + +public class EmojiHolder extends ViewHolder implements OnClickListener { + + public static final int ROW_COUNT = 6; + + private ImageView[] emojiViews = new ImageView[ROW_COUNT]; + private TextView groupLabel; + + private OnEmojiClickListener listener; + private Picasso picasso; + + + public EmojiHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, OnEmojiClickListener listener) { + super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_emoji, parent, false)); + + groupLabel = itemView.findViewById(R.id.item_emoji_group); + emojiViews[0] = itemView.findViewById(R.id.item_emoji_1); + emojiViews[1] = itemView.findViewById(R.id.item_emoji_2); + emojiViews[2] = itemView.findViewById(R.id.item_emoji_3); + emojiViews[3] = itemView.findViewById(R.id.item_emoji_4); + emojiViews[4] = itemView.findViewById(R.id.item_emoji_5); + emojiViews[5] = itemView.findViewById(R.id.item_emoji_6); + + groupLabel.setTextColor(settings.getTextColor()); + groupLabel.setTypeface(settings.getTypeFace()); + + this.listener = listener; + this.picasso = picasso; + } + + + @Override + public void onClick(View v) { + int pos = getLayoutPosition(); + if (pos != RecyclerView.NO_POSITION) { + for (int i = 0; i < emojiViews.length; i++) { + if (v == emojiViews[i]) { + listener.onEmojiClick(pos, i); + } + } + } + } + + + public void setData(Emoji[] emojis) { + for (int i = 0 ; i < emojis.length && i < emojiViews.length ; i++) { + Emoji emoji = emojis[i]; + ImageView emojiView = emojiViews[i]; + if (!emoji.getUrl().trim().isEmpty()) { + picasso.load(emoji.getUrl()).into(emojiViews[i]); + emojiView.setVisibility(View.VISIBLE); + } + emojiView.setOnClickListener(this); + } + groupLabel.setVisibility(View.GONE); + } + + + public void setLabel(String label) { + for (ImageView emojiView : emojiViews) { + emojiView.setVisibility(View.GONE); + } + groupLabel.setText(label); + groupLabel.setVisibility(View.VISIBLE); + } + + + public interface OnEmojiClickListener { + + void onEmojiClick(int position, int index); + } +} \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/MessageHolder.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/MessageHolder.java index bdb9286b..7afc702b 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/MessageHolder.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/MessageHolder.java @@ -29,9 +29,9 @@ import org.nuclearfog.tag.Tagger; import org.nuclearfog.tag.Tagger.OnTagClickListener; import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback; -import org.nuclearfog.twidda.backend.async.EmojiLoader; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult; import org.nuclearfog.twidda.backend.utils.AppStyles; import org.nuclearfog.twidda.backend.utils.EmojiUtils; import org.nuclearfog.twidda.backend.utils.StringUtils; @@ -60,12 +60,12 @@ public class MessageHolder extends ViewHolder implements OnClickListener, OnTagC private GlobalSettings settings; private Picasso picasso; private IconAdapter adapter; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private long tagId; - public MessageHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnItemClickListener listener) { + public MessageHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnItemClickListener listener) { super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_message, parent, false)); this.settings = settings; this.picasso = picasso; diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/StatusHolder.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/StatusHolder.java index ad7cc875..fd4347c8 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/StatusHolder.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/StatusHolder.java @@ -27,9 +27,9 @@ import com.squareup.picasso.Transformation; import org.nuclearfog.tag.Tagger; import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback; -import org.nuclearfog.twidda.backend.async.EmojiLoader; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult; import org.nuclearfog.twidda.backend.utils.AppStyles; import org.nuclearfog.twidda.backend.utils.StringUtils; import org.nuclearfog.twidda.backend.utils.EmojiUtils; @@ -57,7 +57,7 @@ public class StatusHolder extends ViewHolder implements OnClickListener { private GlobalSettings settings; private Picasso picasso; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private IconAdapter adapter; private OnHolderClickListener listener; @@ -67,7 +67,7 @@ public class StatusHolder extends ViewHolder implements OnClickListener { private long tagId = 0L; - public StatusHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnHolderClickListener listener) { + public StatusHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnHolderClickListener listener) { super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_status, parent, false)); this.settings = settings; this.picasso = picasso; diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserHolder.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserHolder.java index 847b11f4..cbfc3c0e 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserHolder.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserHolder.java @@ -25,9 +25,9 @@ import com.squareup.picasso.Transformation; import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback; -import org.nuclearfog.twidda.backend.async.EmojiLoader; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult; import org.nuclearfog.twidda.backend.utils.AppStyles; import org.nuclearfog.twidda.backend.utils.StringUtils; import org.nuclearfog.twidda.backend.utils.EmojiUtils; @@ -51,7 +51,7 @@ public class UserHolder extends ViewHolder implements OnClickListener, AsyncCall private View notificationDismiss; private GlobalSettings settings; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private Picasso picasso; private OnHolderClickListener listener; @@ -59,7 +59,7 @@ public class UserHolder extends ViewHolder implements OnClickListener, AsyncCall private long tagId = 0L; - public UserHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnHolderClickListener listener, boolean enableDelete) { + public UserHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnHolderClickListener listener, boolean enableDelete) { super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user, parent, false)); this.settings = settings; this.picasso = picasso; diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserlistHolder.java b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserlistHolder.java index 4dc1e4ab..dadf4a11 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserlistHolder.java +++ b/app/src/main/java/org/nuclearfog/twidda/ui/adapter/holder/UserlistHolder.java @@ -21,9 +21,9 @@ import com.squareup.picasso.Transformation; import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.backend.async.AsyncExecutor; -import org.nuclearfog.twidda.backend.async.EmojiLoader; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam; -import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam; +import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult; import org.nuclearfog.twidda.backend.utils.AppStyles; import org.nuclearfog.twidda.backend.utils.EmojiUtils; import org.nuclearfog.twidda.backend.utils.StringUtils; @@ -49,7 +49,7 @@ public class UserlistHolder extends ViewHolder implements OnClickListener { private Picasso picasso; private GlobalSettings settings; private OnHolderClickListener listener; - private EmojiLoader emojiLoader; + private TextEmojiLoader emojiLoader; private boolean enableExtras, enableImages; private long tagId; @@ -57,7 +57,7 @@ public class UserlistHolder extends ViewHolder implements OnClickListener { /** * @param parent Parent view from adapter */ - public UserlistHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnHolderClickListener listener) { + public UserlistHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnHolderClickListener listener) { super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false)); CardView background = (CardView) itemView; ViewGroup container = itemView.findViewById(R.id.item_list_container); diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/dialogs/EmojiPicker.java b/app/src/main/java/org/nuclearfog/twidda/ui/dialogs/EmojiPicker.java new file mode 100644 index 00000000..72cc3ba0 --- /dev/null +++ b/app/src/main/java/org/nuclearfog/twidda/ui/dialogs/EmojiPicker.java @@ -0,0 +1,34 @@ +package org.nuclearfog.twidda.ui.dialogs; + +import android.content.Context; +import android.graphics.Color; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.bottomsheet.BottomSheetBehavior; +import com.google.android.material.bottomsheet.BottomSheetDialog; + +import org.nuclearfog.twidda.config.GlobalSettings; +import org.nuclearfog.twidda.ui.adapter.EmojiAdapter; + +public class EmojiPicker extends BottomSheetDialog { + + private EmojiAdapter adapter; + + public EmojiPicker(@NonNull Context context) { + super(context); + RecyclerView listView = new RecyclerView(context); + GlobalSettings settings = GlobalSettings.getInstance(context); + setContentView(listView); + + BottomSheetBehavior mBehavior = BottomSheetBehavior.from((View)listView.getParent()); + mBehavior.setPeekHeight(500); + listView.setBackgroundColor(settings.getBackgroundColor()); + + adapter = new EmojiAdapter(context); + } + + +} \ No newline at end of file diff --git a/app/src/main/res/layout/item_emoji.xml b/app/src/main/res/layout/item_emoji.xml new file mode 100644 index 00000000..83fea63a --- /dev/null +++ b/app/src/main/res/layout/item_emoji.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index ed8f2523..1a2468a8 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -11,11 +11,11 @@ @dimen/toolbar_height - 42sp + 38sp 2dp 2dp 4dp - 10dp + 6dp 20sp 20sp 12sp @@ -295,4 +295,7 @@ 5dp 22sp + + 48dp + \ No newline at end of file