Added icons to main screen menu items
This commit is contained in:
@ -72,6 +72,7 @@ import androidx.compose.ui.platform.SoftwareKeyboardController
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
@ -79,6 +80,12 @@ import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import kotlin.jvm.JvmName
|
||||
|
||||
data class MenuItem(
|
||||
val text: String,
|
||||
val icon: ImageVector? = null
|
||||
)
|
||||
|
||||
object CustomElements {
|
||||
|
||||
@ -118,28 +125,53 @@ object CustomElements {
|
||||
}
|
||||
|
||||
@Composable
|
||||
@JvmName("DropdownMenuString")
|
||||
fun DropdownMenu(
|
||||
expanded: Boolean,
|
||||
onDismissRequest: () -> Unit,
|
||||
items: List<String>,
|
||||
onItemClick: (String) -> Unit
|
||||
) {
|
||||
DropdownMenu(
|
||||
expanded = expanded,
|
||||
onDismissRequest = onDismissRequest,
|
||||
menuItems = items.map { MenuItem(it) },
|
||||
onItemClick = onItemClick
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun DropdownMenu(
|
||||
expanded: Boolean,
|
||||
onDismissRequest: () -> Unit,
|
||||
menuItems: List<MenuItem>,
|
||||
onItemClick: (String) -> Unit
|
||||
) {
|
||||
DropdownMenu(
|
||||
expanded = expanded,
|
||||
onDismissRequest = onDismissRequest,
|
||||
containerColor = MaterialTheme.colorScheme.surfaceVariant
|
||||
) {
|
||||
val itemsIterator = items.iterator()
|
||||
val itemsIterator = menuItems.iterator()
|
||||
while (itemsIterator.hasNext()) {
|
||||
val item = itemsIterator.next()
|
||||
val menuItem = itemsIterator.next()
|
||||
DropdownMenuItem(
|
||||
text = {
|
||||
Text(
|
||||
text = item,
|
||||
text = menuItem.text,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
fontSize = 16.sp
|
||||
) },
|
||||
onClick = { onItemClick(item) }
|
||||
)
|
||||
},
|
||||
leadingIcon = {
|
||||
if (menuItem.icon != null)
|
||||
Icon(
|
||||
imageVector = menuItem.icon,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
)
|
||||
},
|
||||
onClick = { onItemClick(menuItem.text) }
|
||||
)
|
||||
if (itemsIterator.hasNext())
|
||||
HorizontalDivider(color = MaterialTheme.colorScheme.outlineVariant)
|
||||
|
||||
@ -62,6 +62,8 @@ import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.Chat
|
||||
import androidx.compose.material.icons.automirrored.filled.Logout
|
||||
import androidx.compose.material.icons.automirrored.outlined.ReceiptLong
|
||||
import androidx.compose.material.icons.filled.AddIcCall
|
||||
import androidx.compose.material.icons.filled.Call
|
||||
import androidx.compose.material.icons.filled.CallEnd
|
||||
@ -81,8 +83,16 @@ import androidx.compose.material.icons.filled.VoiceOverOff
|
||||
import androidx.compose.material.icons.filled.Voicemail
|
||||
import androidx.compose.material.icons.outlined.ArrowCircleRight
|
||||
import androidx.compose.material.icons.outlined.Clear
|
||||
import androidx.compose.material.icons.outlined.Download
|
||||
import androidx.compose.material.icons.outlined.Info
|
||||
import androidx.compose.material.icons.outlined.ManageAccounts
|
||||
import androidx.compose.material.icons.outlined.PauseCircle
|
||||
import androidx.compose.material.icons.outlined.Receipt
|
||||
import androidx.compose.material.icons.outlined.ReceiptLong
|
||||
import androidx.compose.material.icons.outlined.RestartAlt
|
||||
import androidx.compose.material.icons.outlined.Settings
|
||||
import androidx.compose.material.icons.outlined.Terminal
|
||||
import androidx.compose.material.icons.outlined.Upload
|
||||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.ButtonColors
|
||||
import androidx.compose.material3.Card
|
||||
@ -673,10 +683,16 @@ private fun TopAppBar(
|
||||
DropdownMenu(
|
||||
expanded = menuExpanded,
|
||||
onDismissRequest = { menuExpanded = false },
|
||||
items = if (VERSION.SDK_INT >= 29)
|
||||
listOf(about, settings, accounts, backup, restore, logcat, restart, quit)
|
||||
else
|
||||
listOf(about, settings, accounts, backup, restore, restart, quit),
|
||||
menuItems = listOfNotNull(
|
||||
MenuItem(about, Icons.Outlined.Info),
|
||||
MenuItem(settings, Icons.Outlined.Settings),
|
||||
MenuItem(accounts, Icons.Outlined.ManageAccounts),
|
||||
MenuItem(backup, Icons.Outlined.Upload),
|
||||
MenuItem(restore, Icons.Outlined.Download),
|
||||
if (VERSION.SDK_INT >= 29) MenuItem(logcat, Icons.AutoMirrored.Outlined.ReceiptLong) else null,
|
||||
MenuItem(restart, Icons.Outlined.RestartAlt),
|
||||
MenuItem(quit, Icons.AutoMirrored.Filled.Logout)
|
||||
),
|
||||
onItemClick = { selectedItem ->
|
||||
menuExpanded = false
|
||||
when (selectedItem) {
|
||||
|
||||
Reference in New Issue
Block a user