diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index 25230ab3..d922cda2 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -15,6 +15,7 @@ package app.fedilab.android.ui.drawer; * see . */ +import static android.content.Context.INPUT_METHOD_SERVICE; import static app.fedilab.android.BaseMainActivity.currentAccount; import static app.fedilab.android.BaseMainActivity.emojis; import static app.fedilab.android.BaseMainActivity.instanceInfo; @@ -45,6 +46,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.GridView; @@ -71,6 +73,9 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; +import com.vanniktech.emoji.EmojiManager; +import com.vanniktech.emoji.EmojiPopup; +import com.vanniktech.emoji.one.EmojiOneProvider; import java.io.File; import java.lang.ref.WeakReference; @@ -1073,6 +1078,22 @@ public class ComposeAdapter extends RecyclerView.Adapter { + InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(holder.binding.buttonEmojiOne.getWindowToken(), 0); + EmojiManager.install(new EmojiOneProvider()); + final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(holder.binding.buttonEmojiOne).setOnEmojiPopupDismissListener(() -> { + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + }).build(holder.binding.content); + emojiPopup.toggle(); + }); + } else { + holder.binding.buttonEmojiOne.setVisibility(View.GONE); + } + int newInputType = holder.binding.content.getInputType() & (holder.binding.content.getInputType() ^ InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE); holder.binding.content.setInputType(newInputType); diff --git a/app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml b/app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml index 51f98877..cb1fa12f 100644 --- a/app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml +++ b/app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml @@ -1,7 +1,7 @@ + + @@ -167,7 +180,7 @@ android:layout_height="12dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/button_post" - app:layout_constraintStart_toEndOf="@id/button_emoji" + app:layout_constraintStart_toEndOf="@id/button_emoji_one" app:layout_constraintTop_toBottomOf="@id/character_count" />