diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt index 2726fd36a..61a280e9e 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt @@ -330,6 +330,14 @@ class DetailChatRoomFragment : MasterFragment diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt index 403ee5b5c..4ac8c484b 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt @@ -107,6 +107,10 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() val isEmojiPickerVisible = MutableLiveData() + val requestKeyboardHidingEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + private lateinit var recorder: Recorder private var voiceRecordAudioFocusRequest: AudioFocusRequestCompat? = null @@ -216,6 +220,9 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() fun toggleEmojiPicker() { isEmojiPickerOpen.value = isEmojiPickerOpen.value == false + if (isEmojiPickerOpen.value == true) { + requestKeyboardHidingEvent.value = Event(true) + } } fun sendMessage() { diff --git a/app/src/main/java/org/linphone/utils/AppUtils.kt b/app/src/main/java/org/linphone/utils/AppUtils.kt index a8ae1a91c..00e17ff47 100644 --- a/app/src/main/java/org/linphone/utils/AppUtils.kt +++ b/app/src/main/java/org/linphone/utils/AppUtils.kt @@ -45,15 +45,15 @@ import org.linphone.core.tools.Log */ class AppUtils { companion object { - var emojiCompat: EmojiCompat? = null + private val emojiCompat: EmojiCompat? get() = initEmojiCompat() private fun initEmojiCompat(): EmojiCompat? { return try { EmojiCompat.get() } catch (ise: IllegalStateException) { - Log.e("[App Utils] Can't get EmojiCompat: $ise") - null + Log.w("[App Utils] EmojiCompat.get() triggered IllegalStateException [$ise], trying manual init") + EmojiCompat.init(coreContext.context) } }