From ea32b92465bb5c5da9c378fb1cd0e0b2c726321b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 4 May 2023 10:22:40 +0200 Subject: [PATCH] Open keyboard when replying to a message if no text / file / voice record is pending + bumped gradle --- CHANGELOG.md | 1 + .../linphone/activities/main/MainActivity.kt | 12 +++++++++ .../chat/fragments/DetailChatRoomFragment.kt | 27 ++++++++++--------- build.gradle | 2 +- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69b1b5e1c..bffe7e998 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ Group changes to describe their impact on the project, as follows: - Account EXPIRES is now set to 1 month instead of 1 year for sip.linphone.org accounts - Replaced voice recordings file name by localized placeholder text, like for video conferences invitations - Decline incoming calls with Busy reason if there is at least another active call +- Open keyboard when replying to a message if no text / file / voice record is pending - Removed jetifier as it is not needed - Switched from gradle 7.5 to 8.0, requires JDK 17 (instead of 11) diff --git a/app/src/main/java/org/linphone/activities/main/MainActivity.kt b/app/src/main/java/org/linphone/activities/main/MainActivity.kt index c776e1dc3..f170c5be5 100644 --- a/app/src/main/java/org/linphone/activities/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/activities/main/MainActivity.kt @@ -20,6 +20,7 @@ package org.linphone.activities.main import android.content.ComponentCallbacks2 +import android.content.Context import android.content.Intent import android.content.res.Configuration import android.net.Uri @@ -28,6 +29,7 @@ import android.os.Parcelable import android.view.Gravity import android.view.MotionEvent import android.view.View +import android.view.inputmethod.InputMethodManager import androidx.annotation.StringRes import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.doOnAttach @@ -248,6 +250,16 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin currentFocus?.hideKeyboard() } + fun showKeyboard() { + // Requires a text field to have the focus + if (currentFocus != null) { + (getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager) + .showSoftInput(currentFocus, 0) + } else { + Log.w("[Main Activity] Can't show the keyboard, no focused view") + } + } + fun hideStatusFragment(hide: Boolean) { statusFragment.visibility = if (hide) View.GONE else View.VISIBLE } 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 ad07ce7e2..45e0d1b02 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 @@ -42,7 +42,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.dialog.MaterialAlertDialogBuilder import java.io.File -import java.lang.IllegalArgumentException import kotlinx.coroutines.* import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.corePreferences @@ -57,9 +56,6 @@ import org.linphone.activities.main.chat.viewmodels.* import org.linphone.activities.main.chat.views.RichEditTextSendListener import org.linphone.activities.main.fragments.MasterFragment import org.linphone.activities.main.viewmodels.DialogViewModel -import org.linphone.activities.navigateToContacts -import org.linphone.activities.navigateToImageFileViewer -import org.linphone.activities.navigateToImdn import org.linphone.compatibility.Compatibility import org.linphone.core.* import org.linphone.core.tools.Log @@ -274,10 +270,7 @@ class DetailChatRoomFragment : MasterFragment - chatSendingViewModel.pendingChatMessageToReplyTo.value?.destroy() - chatSendingViewModel.pendingChatMessageToReplyTo.value = - ChatMessageData(chatMessage) - chatSendingViewModel.isPendingAnswer.value = true + replyToChatMessage(chatMessage) } } @@ -1344,4 +1334,17 @@ class DetailChatRoomFragment : MasterFragment