Compare commits

...

3 Commits

2 changed files with 25 additions and 5 deletions

View File

@@ -20,7 +20,11 @@ import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.LocalView
import androidx.core.content.ContextCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.lifecycleScope
import com.google.firebase.FirebaseApp
@@ -586,6 +590,8 @@ fun MainScreen(
// Load username AND name from AccountManager (persisted in DataStore)
val context = LocalContext.current
val focusManager = LocalFocusManager.current
val rootView = LocalView.current
val callScope = rememberCoroutineScope()
val callUiState by CallManager.state.collectAsState()
var pendingOutgoingCall by remember { mutableStateOf<SearchUser?>(null) }
@@ -757,6 +763,19 @@ fun MainScreen(
CallManager.bindAccount(accountPublicKey)
}
LaunchedEffect(callUiState.isVisible) {
if (callUiState.isVisible) {
focusManager.clearFocus(force = true)
// Fallback for cases where IME survives focus reset due to window transitions.
val activity = rootView.context as? android.app.Activity
activity?.window?.let { window ->
WindowCompat.getInsetsController(window, rootView)
?.hide(WindowInsetsCompat.Type.ime())
}
}
}
LaunchedEffect(accountPublicKey, reloadTrigger) {
if (accountPublicKey.isNotBlank()) {
val accountManager = AccountManager(context)

View File

@@ -17,11 +17,12 @@ object ReleaseNotes {
val RELEASE_NOTICE = """
Update v$VERSION_PLACEHOLDER
Оптимизация E2EE и списка чатов
- В release отключена frame-диагностика E2EE (детальные frame-логи только в debug)
- Упрощен ChatsListScreen: убрано дублирование collectAsState и вынесены route-компоненты
- Ускорены выборки по вложениям: добавлен denormalized attachment type + индекс в БД
- Добавлена миграция БД с backfill типа вложения для старых сообщений
Оптимизация производительности и стабильности
- В release отключена frame-диагностика E2EE (детальные frame-логи оставлены только в debug)
- Оптимизирован чат-лист: убрано дублирование collectAsState и вынесены route-компоненты
- Ускорены выборки по вложениям: добавлен denormalized attachment type и индекс в БД
- Добавлен macrobenchmark-модуль с замерами startup, search и chat list scroll
- Исправлено поведение UI в звонке: клавиатура автоматически закрывается при открытии call overlay
""".trimIndent()
fun getNotice(version: String): String =