Приведен стиль меню в группах к единому стилю приложения
This commit is contained in:
@@ -44,8 +44,6 @@ import androidx.compose.foundation.lazy.itemsIndexed
|
|||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import compose.icons.TablerIcons
|
|
||||||
import compose.icons.tablericons.Code
|
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
@@ -61,10 +59,10 @@ import androidx.compose.material.icons.filled.Search
|
|||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.material3.DropdownMenu
|
import androidx.compose.material3.DropdownMenu
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
|
||||||
import androidx.compose.material3.Divider
|
import androidx.compose.material3.Divider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.OutlinedTextField
|
import androidx.compose.material3.OutlinedTextField
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Tab
|
import androidx.compose.material3.Tab
|
||||||
@@ -93,6 +91,7 @@ import androidx.compose.ui.draw.clipToBounds
|
|||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.geometry.Offset
|
import androidx.compose.ui.geometry.Offset
|
||||||
import androidx.compose.ui.geometry.Size
|
import androidx.compose.ui.geometry.Size
|
||||||
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.graphics.toArgb
|
import androidx.compose.ui.graphics.toArgb
|
||||||
import androidx.compose.ui.platform.LocalDensity
|
import androidx.compose.ui.platform.LocalDensity
|
||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
@@ -110,6 +109,7 @@ import androidx.compose.ui.text.style.TextOverflow
|
|||||||
import androidx.compose.ui.unit.IntOffset
|
import androidx.compose.ui.unit.IntOffset
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
|
import androidx.compose.ui.window.PopupProperties
|
||||||
import com.airbnb.lottie.compose.LottieAnimation
|
import com.airbnb.lottie.compose.LottieAnimation
|
||||||
import com.airbnb.lottie.compose.LottieCompositionSpec
|
import com.airbnb.lottie.compose.LottieCompositionSpec
|
||||||
import com.airbnb.lottie.compose.LottieConstants
|
import com.airbnb.lottie.compose.LottieConstants
|
||||||
@@ -1010,52 +1010,71 @@ fun GroupInfoScreen(
|
|||||||
tint = Color.White
|
tint = Color.White
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
DropdownMenu(
|
val menuBgColor = if (isDarkTheme) Color(0xFF272829) else Color.White
|
||||||
expanded = showMenu,
|
val menuTextColor = if (isDarkTheme) Color.White else Color(0xFF222222)
|
||||||
onDismissRequest = { showMenu = false }
|
val menuIconColor = if (isDarkTheme) Color.White.copy(alpha = 0.47f) else Color(0xFF676B70)
|
||||||
|
val menuDividerColor = if (isDarkTheme) Color(0xFF1C1D1F) else Color(0xFFF5F5F5)
|
||||||
|
val menuDangerColor = Color(0xFFFF3B30)
|
||||||
|
|
||||||
|
MaterialTheme(
|
||||||
|
colorScheme = MaterialTheme.colorScheme.copy(
|
||||||
|
surface = menuBgColor,
|
||||||
|
onSurface = menuTextColor
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
DropdownMenuItem(
|
DropdownMenu(
|
||||||
text = { Text("Search members") },
|
expanded = showMenu,
|
||||||
leadingIcon = {
|
onDismissRequest = { showMenu = false },
|
||||||
Icon(Icons.Default.Search, contentDescription = null)
|
modifier = Modifier.widthIn(min = 196.dp).background(menuBgColor),
|
||||||
},
|
properties = PopupProperties(
|
||||||
onClick = {
|
focusable = true,
|
||||||
showMenu = false
|
dismissOnBackPress = true,
|
||||||
selectedTab = GroupInfoTab.MEMBERS
|
dismissOnClickOutside = true
|
||||||
showSearch = true
|
)
|
||||||
}
|
) {
|
||||||
)
|
GroupInfoMenuItem(
|
||||||
DropdownMenuItem(
|
icon = Icons.Default.Search,
|
||||||
text = { Text("Copy invite") },
|
text = "Search members",
|
||||||
leadingIcon = {
|
tintColor = menuIconColor,
|
||||||
Icon(Icons.Default.PersonAdd, contentDescription = null)
|
textColor = menuTextColor,
|
||||||
},
|
onClick = {
|
||||||
onClick = {
|
showMenu = false
|
||||||
showMenu = false
|
selectedTab = GroupInfoTab.MEMBERS
|
||||||
copyInvite()
|
showSearch = true
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
GroupInfoMenuItem(
|
||||||
text = { Text("Encryption key") },
|
icon = Icons.Default.PersonAdd,
|
||||||
leadingIcon = {
|
text = "Copy invite",
|
||||||
Icon(Icons.Default.Lock, contentDescription = null)
|
tintColor = menuIconColor,
|
||||||
},
|
textColor = menuTextColor,
|
||||||
onClick = {
|
onClick = {
|
||||||
showMenu = false
|
showMenu = false
|
||||||
openEncryptionKey()
|
copyInvite()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
Divider()
|
GroupInfoMenuItem(
|
||||||
DropdownMenuItem(
|
icon = Icons.Default.Lock,
|
||||||
text = { Text("Leave group", color = Color(0xFFFF3B30)) },
|
text = "Encryption key",
|
||||||
leadingIcon = {
|
tintColor = menuIconColor,
|
||||||
Icon(Icons.Default.ExitToApp, contentDescription = null, tint = Color(0xFFFF3B30))
|
textColor = menuTextColor,
|
||||||
},
|
onClick = {
|
||||||
onClick = {
|
showMenu = false
|
||||||
showMenu = false
|
openEncryptionKey()
|
||||||
showLeaveConfirm = true
|
}
|
||||||
}
|
)
|
||||||
)
|
Divider(color = menuDividerColor)
|
||||||
|
GroupInfoMenuItem(
|
||||||
|
icon = Icons.Default.ExitToApp,
|
||||||
|
text = "Leave group",
|
||||||
|
tintColor = menuDangerColor,
|
||||||
|
textColor = menuDangerColor,
|
||||||
|
onClick = {
|
||||||
|
showMenu = false
|
||||||
|
showLeaveConfirm = true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1821,6 +1840,39 @@ private fun GroupEncryptionKeyPage(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun GroupInfoMenuItem(
|
||||||
|
icon: ImageVector,
|
||||||
|
text: String,
|
||||||
|
tintColor: Color,
|
||||||
|
textColor: Color,
|
||||||
|
onClick: () -> Unit
|
||||||
|
) {
|
||||||
|
Box(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.height(48.dp)
|
||||||
|
.clickable(onClick = onClick)
|
||||||
|
.padding(horizontal = 18.dp),
|
||||||
|
contentAlignment = Alignment.CenterStart
|
||||||
|
) {
|
||||||
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
|
Icon(
|
||||||
|
imageVector = icon,
|
||||||
|
contentDescription = null,
|
||||||
|
tint = tintColor,
|
||||||
|
modifier = Modifier.size(24.dp)
|
||||||
|
)
|
||||||
|
Spacer(modifier = Modifier.width(19.dp))
|
||||||
|
Text(
|
||||||
|
text = text,
|
||||||
|
color = textColor,
|
||||||
|
fontSize = 16.sp
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun GroupActionButton(
|
private fun GroupActionButton(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
|
|||||||
Reference in New Issue
Block a user