Замена BasicTextField на AppleEmojiTextField для улучшения ввода названия группы с поддержкой эмодзи и улучшенной логикой отображения.
All checks were successful
Android Kernel Build / build (push) Successful in 16h10m51s
All checks were successful
Android Kernel Build / build (push) Successful in 16h10m51s
This commit is contained in:
@@ -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,46 +438,31 @@ 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 &&
|
||||
.padding(vertical = 2.dp),
|
||||
onViewCreated = { editText ->
|
||||
editText.isSingleLine = true
|
||||
editText.maxLines = 1
|
||||
editText.setHorizontallyScrolling(true)
|
||||
},
|
||||
onFocusChanged = { hasFocus ->
|
||||
if (hasFocus &&
|
||||
showEmojiKeyboard &&
|
||||
!coordinator.isTransitioning
|
||||
) {
|
||||
coordinator.closeEmoji(hideEmoji = { showEmojiKeyboard = false })
|
||||
}
|
||||
}
|
||||
.padding(vertical = 2.dp),
|
||||
decorationBox = { innerTextField ->
|
||||
Box(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
contentAlignment = Alignment.CenterStart
|
||||
) {
|
||||
if (title.isBlank()) {
|
||||
Text(
|
||||
text = "Group name",
|
||||
color = secondaryTextColor.copy(alpha = 0.88f),
|
||||
fontSize = 18.sp,
|
||||
fontWeight = FontWeight.Normal
|
||||
)
|
||||
}
|
||||
innerTextField()
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user