Updated dependencies, better way to show/hide keyboard

This commit is contained in:
Sylvain Berfini 2023-10-04 09:55:28 +02:00
parent 30d03d280c
commit c3de2e906b
7 changed files with 26 additions and 23 deletions

View file

@ -73,14 +73,14 @@ dependencies {
implementation "androidx.annotation:annotation:1.7.0" implementation "androidx.annotation:annotation:1.7.0"
implementation 'androidx.appcompat:appcompat:1.7.0-alpha03' implementation 'androidx.appcompat:appcompat:1.7.0-alpha03'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.core:core-ktx:1.10.1' implementation 'androidx.core:core-ktx:1.12.0'
implementation "androidx.core:core-telecom:1.0.0-alpha01" implementation "androidx.core:core-telecom:1.0.0-alpha01"
implementation 'androidx.media:media:1.6.0' implementation 'androidx.media:media:1.6.0'
implementation 'androidx.recyclerview:recyclerview:1.3.1' implementation 'androidx.recyclerview:recyclerview:1.3.1'
implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0" implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0"
implementation 'androidx.window:window:1.1.0' implementation 'androidx.window:window:1.1.0'
def nav_version = "2.7.2" def nav_version = "2.7.3"
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

View file

@ -170,7 +170,7 @@ abstract class AbstractNewTransferCallFragment : GenericCallFragment() {
it.consume { show -> it.consume { show ->
if (show) { if (show) {
// To automatically open keyboard // To automatically open keyboard
binding.searchBar.showKeyboard(requireActivity().window) binding.searchBar.showKeyboard()
} else { } else {
binding.searchBar.requestFocus() binding.searchBar.requestFocus()
binding.searchBar.hideKeyboard() binding.searchBar.hideKeyboard()

View file

@ -155,7 +155,7 @@ class ContactsListFragment : AbstractTopBarFragment() {
it.consume { show -> it.consume { show ->
if (show) { if (show) {
// To automatically open keyboard // To automatically open keyboard
binding.topBar.search.showKeyboard(requireActivity().window) binding.topBar.search.showKeyboard()
} else { } else {
binding.topBar.search.hideKeyboard() binding.topBar.search.hideKeyboard()
} }

View file

@ -201,7 +201,7 @@ class HistoryListFragment : AbstractTopBarFragment() {
it.consume { show -> it.consume { show ->
if (show) { if (show) {
// To automatically open keyboard // To automatically open keyboard
binding.topBar.search.showKeyboard(requireActivity().window) binding.topBar.search.showKeyboard()
} else { } else {
binding.topBar.search.hideKeyboard() binding.topBar.search.hideKeyboard()
} }

View file

@ -158,7 +158,7 @@ class StartCallFragment : GenericFragment() {
it.consume { show -> it.consume { show ->
if (show) { if (show) {
// To automatically open keyboard // To automatically open keyboard
binding.searchBar.showKeyboard(requireActivity().window) binding.searchBar.showKeyboard()
} else { } else {
binding.searchBar.requestFocus() binding.searchBar.requestFocus()
binding.searchBar.hideKeyboard() binding.searchBar.hideKeyboard()

View file

@ -37,7 +37,9 @@ import androidx.annotation.DimenRes
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.annotation.MainThread import androidx.annotation.MainThread
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.annotation.UiThread
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.SoftwareKeyboardControllerCompat
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.emoji2.text.EmojiCompat import androidx.emoji2.text.EmojiCompat
import java.util.Locale import java.util.Locale
@ -46,6 +48,24 @@ import org.linphone.R
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.ToastBinding import org.linphone.databinding.ToastBinding
@UiThread
fun View.showKeyboard() {
this.requestFocus()
/*val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)*/
// WindowCompat.getInsetsController(window, this).show(WindowInsetsCompat.Type.ime())*/
val compat = SoftwareKeyboardControllerCompat(this)
compat.show()
}
@UiThread
fun View.hideKeyboard() {
/*val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(this.windowToken, 0)*/
val compat = SoftwareKeyboardControllerCompat(this)
compat.hide()
}
class AppUtils { class AppUtils {
companion object { companion object {
const val TAG = "[App Utils]" const val TAG = "[App Utils]"

View file

@ -26,9 +26,7 @@ import android.text.TextWatcher
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.Window
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.EditText import android.widget.EditText
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
@ -38,7 +36,6 @@ import androidx.appcompat.widget.AppCompatEditText
import androidx.appcompat.widget.AppCompatTextView import androidx.appcompat.widget.AppCompatTextView
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.doOnLayout import androidx.core.view.doOnLayout
import androidx.databinding.BindingAdapter import androidx.databinding.BindingAdapter
@ -96,20 +93,6 @@ fun <T> setEntries(
} }
} }
@UiThread
fun View.showKeyboard(window: Window) {
this.requestFocus()
/*val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)*/
WindowCompat.getInsetsController(window, this).show(WindowInsetsCompat.Type.ime())
}
@UiThread
fun View.hideKeyboard() {
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(this.windowToken, 0)
}
@UiThread @UiThread
fun AppCompatEditText.removeCharacterAtPosition() { fun AppCompatEditText.removeCharacterAtPosition() {
val start = selectionStart val start = selectionStart