Compare commits

...

9 Commits

Author SHA1 Message Date
56ba0bd42a Слил master в dev 2026-03-07 19:03:54 +05:00
9625763b0c Убрал свечение у кнопки на экране создания групп
All checks were successful
Android Kernel Build / build (push) Successful in 16h29m0s
2026-03-07 19:00:39 +05:00
5d8dc32672 Замена BasicTextField на AppleEmojiTextField для улучшения ввода названия группы с поддержкой эмодзи и улучшенной логикой отображения.
All checks were successful
Android Kernel Build / build (push) Successful in 16h10m51s
2026-03-07 18:43:58 +05:00
c2761ecedf Релиз v1.1.4: профиль, группы, аватары и исправления
All checks were successful
Android Kernel Build / build (push) Successful in 16h14m54s
- Фиксированные табы в профиле и группах
- Fast-scroll с датой в медиа-галерее
- Apple Emoji в аватарах и интерфейсе
- Восстановление ключей группы по инвайт-ссылке
- Улучшено отображение аватаров с эмодзи
- Исправлен переход по своему тэгу в группах
- Убрана лишняя подсветка, исправлен fast-scroll overlay
- Версия 1.1.3 → 1.1.4, versionCode 15 → 16

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 02:50:29 +05:00
db605cb392 Исправил переход по своему тэгу в группах и убрал лишнюю подсветку
- Клик по своему упоминанию теперь сразу открывает My Profile без экрана OtherProfile и kebab-меню\n- Нормализовал сравнение аккаунта по publicKey/username (trim + ignoreCase)\n- Убрал жёлтую подсветку сообщений с упоминанием в группах\n- Подровнял положение бейджа верификации рядом с именем
2026-03-07 02:50:29 +05:00
06dc9a2b5d Улучшение отображения аватаров: добавлена поддержка текста с эмодзи и улучшена логика отображения в AvatarImage. Обновлен SharedMediaFastScrollOverlay для корректного отображения при изменении размера. Исправлено сообщение подсказки в строках. 2026-03-07 02:50:29 +05:00
6429a61ad0 Профиль и группы: фиксированные табы, fast-scroll с датой и Apple Emoji 2026-03-07 02:50:29 +05:00
59d71c9717 Группы: восстановление ключей по инвайту и Apple Emoji
- Добавлено восстановление локального ключа группы из инвайта при повторном нажатии, даже если на сервере статус уже JOINED.
- В карточке приглашения сначала восстанавливается ключ, затем открывается группа.
- Включено отображение Apple Emoji для названия/описания группы в GroupInfo и в заголовке группы в чате.
- Обновлён превью-заголовок в GroupSetup на Apple Emoji рендер.
2026-03-07 02:50:29 +05:00
1fb891df53 Релиз 1.1.3: обновлена версия и release notes
All checks were successful
Android Kernel Build / build (push) Successful in 16h10m28s
- Поднят versionName до 1.1.3 и versionCode до 15.
- Обновлены release notes под текущий релиз.
- В notes добавлены изменения по reply/mentions в группах, индикаторам чтения и UX-исправлениям.
2026-03-05 20:00:45 +05:00

View File

@@ -26,7 +26,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FloatingActionButton
@@ -54,9 +53,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
@@ -66,7 +63,6 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
@@ -79,6 +75,7 @@ import com.rosetta.messenger.data.GroupRepository
import com.rosetta.messenger.network.GroupStatus
import com.rosetta.messenger.network.SearchUser
import com.rosetta.messenger.repository.AvatarRepository
import com.rosetta.messenger.ui.components.AppleEmojiTextField
import com.rosetta.messenger.ui.components.KeyboardHeightProvider
import com.rosetta.messenger.ui.components.OptimizedEmojiPicker
import com.rosetta.messenger.ui.components.AppleEmojiText
@@ -441,44 +438,29 @@ fun GroupSetupScreen(
verticalAlignment = Alignment.CenterVertically
) {
Box(modifier = Modifier.weight(1f)) {
BasicTextField(
AppleEmojiTextField(
value = title,
onValueChange = { newValue -> title = newValue.take(80) },
singleLine = true,
textStyle = TextStyle(
color = primaryTextColor,
fontSize = 18.sp,
fontWeight = FontWeight.Medium
),
cursorBrush = SolidColor(accentColor),
enabled = !isLoading,
textColor = primaryTextColor,
textSize = 18f,
hint = "Group name",
hintColor = secondaryTextColor.copy(alpha = 0.88f),
modifier =
Modifier
.fillMaxWidth()
.focusRequester(nameFocusRequester)
.onFocusChanged { focusState ->
if (focusState.isFocused &&
showEmojiKeyboard &&
!coordinator.isTransitioning
) {
coordinator.closeEmoji(hideEmoji = { showEmojiKeyboard = false })
}
}
.padding(vertical = 2.dp),
decorationBox = { innerTextField ->
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.CenterStart
onViewCreated = { editText ->
editText.isSingleLine = true
editText.maxLines = 1
editText.setHorizontallyScrolling(true)
},
onFocusChanged = { hasFocus ->
if (hasFocus &&
showEmojiKeyboard &&
!coordinator.isTransitioning
) {
if (title.isBlank()) {
Text(
text = "Group name",
color = secondaryTextColor.copy(alpha = 0.88f),
fontSize = 18.sp,
fontWeight = FontWeight.Normal
)
}
innerTextField()
coordinator.closeEmoji(hideEmoji = { showEmojiKeyboard = false })
}
}
)
@@ -705,6 +687,7 @@ fun GroupSetupScreen(
}
FloatingActionButton(
elevation = androidx.compose.material3.FloatingActionButtonDefaults.elevation(0.dp, 0.dp, 0.dp, 0.dp),
onClick = {
if (step == GroupSetupStep.DETAILS) {
if (canGoNext) {