From 81d3e9680113f3555190d9996438abf5f199ec05 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 9 Jun 2022 10:01:54 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../common/compose/extensions/LazyListState.kt | 15 +++++++++++++++ .../tokens/ui/compose/ListOfCurrencies.kt | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/tap/common/compose/extensions/LazyListState.kt b/app/src/main/java/com/tangem/tap/common/compose/extensions/LazyListState.kt index a14477efca..013c92eff6 100644 --- a/app/src/main/java/com/tangem/tap/common/compose/extensions/LazyListState.kt +++ b/app/src/main/java/com/tangem/tap/common/compose/extensions/LazyListState.kt @@ -1,7 +1,11 @@ package com.tangem.tap.common.compose.extensions +import android.content.Context +import android.view.inputmethod.InputMethodManager import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.* +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView @Composable fun LazyListState.OnBottomReached(loadMoreThreshold: Int, loadMore: () -> Unit) { @@ -17,4 +21,15 @@ fun LazyListState.OnBottomReached(loadMoreThreshold: Int, loadMore: () -> Unit) LaunchedEffect(shouldLoadMore) { if (shouldLoadMore) loadMore() } +} + +@Composable +fun LazyListState.HideKeyboardOnScroll() { + val context = LocalContext.current + val view = LocalView.current + LaunchedEffect(firstVisibleItemIndex) { + val inputMethodManager = + context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0) + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt index 75755a0e73..4892cf5e13 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt @@ -11,6 +11,7 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.tangem.blockchain.common.Blockchain +import com.tangem.tap.common.compose.extensions.HideKeyboardOnScroll import com.tangem.tap.common.compose.extensions.OnBottomReached import com.tangem.tap.domain.tokens.Currency import com.tangem.tap.features.tokens.redux.ContractAddress @@ -44,6 +45,8 @@ fun ListOfCurrencies( } val listState = rememberLazyListState() + listState.HideKeyboardOnScroll() + listState.OnBottomReached(loadMoreThreshold = 40) { onLoadMore() } LazyColumn( state = listState, @@ -67,7 +70,6 @@ fun ListOfCurrencies( ) } } - listState.OnBottomReached(loadMoreThreshold = 40) { onLoadMore() } } val Currency.fullName: String