mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 01:25:21 +00:00
keyboard works
This commit is contained in:
@@ -58,6 +58,9 @@ fun ChatScreen(
|
||||
onWalletClick: () -> Unit = {},
|
||||
onWalletClickWithToken: ((com.bitchat.android.parsing.ParsedCashuToken) -> Unit)? = null
|
||||
) {
|
||||
// Get focus manager for keyboard control
|
||||
val focusManager = LocalFocusManager.current
|
||||
|
||||
// Initialize payment manager when wallet ViewModel is available
|
||||
LaunchedEffect(walletViewModel) {
|
||||
walletViewModel?.let { wallet ->
|
||||
@@ -65,6 +68,11 @@ fun ChatScreen(
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize focus manager for keyboard control
|
||||
LaunchedEffect(focusManager) {
|
||||
viewModel.setFocusManager(focusManager)
|
||||
}
|
||||
|
||||
val colorScheme = MaterialTheme.colorScheme
|
||||
val messages by viewModel.messages.observeAsState(emptyList())
|
||||
val connectedPeers by viewModel.connectedPeers.observeAsState(emptyList())
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.bitchat.android.ui
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.compose.ui.focus.FocusManager
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
@@ -33,6 +34,9 @@ class ChatViewModel(
|
||||
|
||||
private val context: Context = application.applicationContext
|
||||
|
||||
// Focus manager for keyboard control
|
||||
private var focusManager: FocusManager? = null
|
||||
|
||||
// State management
|
||||
private val state = ChatState()
|
||||
|
||||
@@ -52,6 +56,16 @@ class ChatViewModel(
|
||||
paymentManager = PaymentManager(viewModelScope, walletViewModel)
|
||||
}
|
||||
|
||||
// Initialize focus manager for keyboard control
|
||||
fun setFocusManager(focusManager: FocusManager) {
|
||||
this.focusManager = focusManager
|
||||
}
|
||||
|
||||
// Hide keyboard
|
||||
fun hideKeyboard() {
|
||||
focusManager?.clearFocus()
|
||||
}
|
||||
|
||||
// Delegate handler for mesh callbacks
|
||||
private val meshDelegateHandler = MeshDelegateHandler(
|
||||
state = state,
|
||||
|
||||
@@ -59,8 +59,14 @@ fun MainAppScreen(
|
||||
ChatScreen(
|
||||
viewModel = chatViewModel,
|
||||
walletViewModel = walletViewModel,
|
||||
onWalletClick = { showWallet = true },
|
||||
onWalletClick = {
|
||||
// Close the keyboard if it's open
|
||||
chatViewModel.hideKeyboard()
|
||||
showWallet = true
|
||||
},
|
||||
onWalletClickWithToken = { parsedToken ->
|
||||
// Close the keyboard if it's open
|
||||
chatViewModel.hideKeyboard()
|
||||
// Open wallet and show receive dialog with the parsed token immediately
|
||||
showWallet = true
|
||||
walletViewModel.openReceiveDialogWithParsedToken(parsedToken)
|
||||
|
||||
Reference in New Issue
Block a user