Compare commits
3 Commits
3eac17d9a8
...
b271917594
| Author | SHA1 | Date | |
|---|---|---|---|
| b271917594 | |||
| 4cfa9f1d48 | |||
| 20c6696fdf |
@@ -20,7 +20,11 @@ import androidx.compose.runtime.*
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.platform.LocalContext
|
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.content.ContextCompat
|
||||||
|
import androidx.core.view.WindowCompat
|
||||||
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.google.firebase.FirebaseApp
|
import com.google.firebase.FirebaseApp
|
||||||
@@ -586,6 +590,8 @@ fun MainScreen(
|
|||||||
|
|
||||||
// Load username AND name from AccountManager (persisted in DataStore)
|
// Load username AND name from AccountManager (persisted in DataStore)
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
val focusManager = LocalFocusManager.current
|
||||||
|
val rootView = LocalView.current
|
||||||
val callScope = rememberCoroutineScope()
|
val callScope = rememberCoroutineScope()
|
||||||
val callUiState by CallManager.state.collectAsState()
|
val callUiState by CallManager.state.collectAsState()
|
||||||
var pendingOutgoingCall by remember { mutableStateOf<SearchUser?>(null) }
|
var pendingOutgoingCall by remember { mutableStateOf<SearchUser?>(null) }
|
||||||
@@ -757,6 +763,19 @@ fun MainScreen(
|
|||||||
CallManager.bindAccount(accountPublicKey)
|
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) {
|
LaunchedEffect(accountPublicKey, reloadTrigger) {
|
||||||
if (accountPublicKey.isNotBlank()) {
|
if (accountPublicKey.isNotBlank()) {
|
||||||
val accountManager = AccountManager(context)
|
val accountManager = AccountManager(context)
|
||||||
|
|||||||
@@ -17,11 +17,12 @@ object ReleaseNotes {
|
|||||||
val RELEASE_NOTICE = """
|
val RELEASE_NOTICE = """
|
||||||
Update v$VERSION_PLACEHOLDER
|
Update v$VERSION_PLACEHOLDER
|
||||||
|
|
||||||
Оптимизация E2EE и списка чатов
|
Оптимизация производительности и стабильности
|
||||||
- В release отключена frame-диагностика E2EE (детальные frame-логи только в debug)
|
- В release отключена frame-диагностика E2EE (детальные frame-логи оставлены только в debug)
|
||||||
- Упрощен ChatsListScreen: убрано дублирование collectAsState и вынесены route-компоненты
|
- Оптимизирован чат-лист: убрано дублирование collectAsState и вынесены route-компоненты
|
||||||
- Ускорены выборки по вложениям: добавлен denormalized attachment type + индекс в БД
|
- Ускорены выборки по вложениям: добавлен denormalized attachment type и индекс в БД
|
||||||
- Добавлена миграция БД с backfill типа вложения для старых сообщений
|
- Добавлен macrobenchmark-модуль с замерами startup, search и chat list scroll
|
||||||
|
- Исправлено поведение UI в звонке: клавиатура автоматически закрывается при открытии call overlay
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
fun getNotice(version: String): String =
|
fun getNotice(version: String): String =
|
||||||
|
|||||||
Reference in New Issue
Block a user