feat(android): brand glyph migration sweep 2 — migrate remaining Material icons to CloserGlyphs catalog
This commit is contained in:
parent
c3092ad8f6
commit
3ae3f36ad4
|
|
@ -24,8 +24,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -383,7 +381,7 @@ private fun HistoryStateBadge(isRevealed: Boolean) {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = if (isRevealed) Icons.Filled.Visibility else CloserGlyphs.Lock,
|
||||
imageVector = if (isRevealed) CloserGlyphs.Eye else CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = tint,
|
||||
modifier = Modifier.size(14.dp)
|
||||
|
|
|
|||
|
|
@ -23,9 +23,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material.icons.filled.VisibilityOff
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -60,6 +57,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
|
|||
import app.closer.core.navigation.AppRoute
|
||||
import app.closer.ui.components.BrandMessageRotator
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun LoginScreen(
|
||||
|
|
@ -152,7 +150,7 @@ fun LoginScreen(
|
|||
trailingIcon = {
|
||||
IconButton(onClick = viewModel::togglePasswordVisibility) {
|
||||
Icon(
|
||||
imageVector = if (state.isPasswordVisible) Icons.Filled.VisibilityOff else Icons.Filled.Visibility,
|
||||
imageVector = if (state.isPasswordVisible) CloserGlyphs.EyeOff else CloserGlyphs.Eye,
|
||||
contentDescription = if (state.isPasswordVisible) "Hide password" else "Show password"
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,9 +23,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material.icons.filled.VisibilityOff
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import app.closer.ui.components.BrandMessageRotator
|
||||
|
|
@ -167,7 +164,7 @@ fun SignUpScreen(
|
|||
trailingIcon = {
|
||||
IconButton(onClick = viewModel::togglePasswordVisibility) {
|
||||
Icon(
|
||||
if (state.isPasswordVisible) Icons.Filled.VisibilityOff else Icons.Filled.Visibility,
|
||||
if (state.isPasswordVisible) CloserGlyphs.EyeOff else CloserGlyphs.Eye,
|
||||
contentDescription = if (state.isPasswordVisible) "Hide password" else "Show password"
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.layout.statusBarsPadding
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.PlayArrow
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -152,7 +150,7 @@ private fun GamePromptCard(
|
|||
)
|
||||
} else {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.PlayArrow,
|
||||
imageVector = CloserGlyphs.Play,
|
||||
contentDescription = null,
|
||||
tint = Color.White,
|
||||
modifier = Modifier.size(22.dp)
|
||||
|
|
@ -181,7 +179,7 @@ private fun GamePromptCard(
|
|||
),
|
||||
shape = RoundedCornerShape(14.dp)
|
||||
) {
|
||||
Icon(Icons.Filled.PlayArrow, contentDescription = null, modifier = Modifier.size(18.dp))
|
||||
Icon(CloserGlyphs.Play, contentDescription = null, modifier = Modifier.size(18.dp))
|
||||
Text(
|
||||
text = "Join",
|
||||
style = MaterialTheme.typography.labelLarge.copy(fontWeight = FontWeight.Bold),
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.Column
|
|||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Image
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -46,7 +44,7 @@ fun IllustrationPlaceholder(
|
|||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Image,
|
||||
imageVector = CloserGlyphs.Photo,
|
||||
contentDescription = null,
|
||||
tint = CloserPalette.PurpleRich,
|
||||
modifier = Modifier.size(40.dp)
|
||||
|
|
|
|||
|
|
@ -11,8 +11,6 @@ import androidx.compose.foundation.layout.offset
|
|||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.Chat
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -159,7 +157,7 @@ fun MessageBubbleOverlay(
|
|||
)
|
||||
} else {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.Chat,
|
||||
imageVector = CloserGlyphs.Chat,
|
||||
contentDescription = "Open conversation",
|
||||
tint = Color.White,
|
||||
modifier = Modifier.size(26.dp)
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Cake
|
||||
import androidx.compose.material.icons.filled.CardGiftcard
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -103,7 +100,7 @@ fun SpecialDatesSection(
|
|||
}
|
||||
|
||||
Icon(
|
||||
imageVector = Icons.Filled.CardGiftcard,
|
||||
imageVector = CloserGlyphs.CardGiftcard,
|
||||
contentDescription = null,
|
||||
tint = Purple,
|
||||
modifier = Modifier.size(24.dp)
|
||||
|
|
@ -145,7 +142,7 @@ private fun BirthdayRow(name: String, day: String, month: String) {
|
|||
)
|
||||
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Cake,
|
||||
imageVector = CloserGlyphs.Cake,
|
||||
contentDescription = null,
|
||||
tint = Purple.copy(alpha = 0.7f),
|
||||
modifier = Modifier.size(20.dp)
|
||||
|
|
|
|||
|
|
@ -25,10 +25,6 @@ import androidx.compose.foundation.lazy.LazyColumn
|
|||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Favorite
|
||||
import androidx.compose.material.icons.filled.FavoriteBorder
|
||||
import androidx.compose.material.icons.filled.Sync
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -559,7 +555,7 @@ private fun DSIntroScreen(total: Int, onReady: () -> Unit) {
|
|||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.FavoriteBorder,
|
||||
icon = CloserGlyphs.HeartOutline,
|
||||
tint = CloserPalette.Romantic,
|
||||
container = CloserPalette.Romantic.copy(alpha = 0.12f)
|
||||
)
|
||||
|
|
@ -786,7 +782,7 @@ private fun DSRevealScreen(
|
|||
verticalArrangement = Arrangement.spacedBy(10.dp)
|
||||
) {
|
||||
StatusGlyph(
|
||||
icon = if (matches.isEmpty()) Icons.Filled.FavoriteBorder else CloserGlyphs.Heart,
|
||||
icon = if (matches.isEmpty()) CloserGlyphs.HeartOutline else CloserGlyphs.Heart,
|
||||
tint = CloserPalette.Romantic,
|
||||
container = CloserPalette.Romantic.copy(alpha = 0.12f),
|
||||
size = 82.dp,
|
||||
|
|
@ -916,7 +912,7 @@ private fun DesireRevealMeter(
|
|||
modifier = Modifier.weight(1f)
|
||||
)
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Sync,
|
||||
icon = CloserGlyphs.Sync,
|
||||
tint = CloserPalette.Romantic,
|
||||
container = CloserPalette.Romantic.copy(alpha = 0.12f),
|
||||
size = 38.dp,
|
||||
|
|
|
|||
|
|
@ -18,10 +18,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.HourglassEmpty
|
||||
import androidx.compose.material.icons.filled.LocalFireDepartment
|
||||
import androidx.compose.material.icons.filled.NotificationsNone
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
|
|
@ -361,7 +357,7 @@ private fun PartnerIdentityCard(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.LocalFireDepartment,
|
||||
imageVector = CloserGlyphs.Streak,
|
||||
contentDescription = null,
|
||||
tint = CloserPalette.PinkAccentDeep,
|
||||
modifier = Modifier.size(15.dp)
|
||||
|
|
@ -422,7 +418,7 @@ private fun PartnerActivityCard(
|
|||
) {
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
Icon(
|
||||
imageVector = if (hasAnsweredToday) CloserGlyphs.Check else Icons.Filled.HourglassEmpty,
|
||||
imageVector = if (hasAnsweredToday) CloserGlyphs.Check else CloserGlyphs.Hourglass,
|
||||
contentDescription = null,
|
||||
tint = if (hasAnsweredToday) CloserPalette.PurpleDeep else MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
modifier = Modifier.size(20.dp)
|
||||
|
|
@ -457,7 +453,7 @@ private fun PartnerActivityCard(
|
|||
)
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.NotificationsNone,
|
||||
CloserGlyphs.Bell,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(16.dp)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -25,9 +25,6 @@ import androidx.compose.foundation.lazy.items
|
|||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Psychology
|
||||
import androidx.compose.material.icons.filled.Sync
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -609,7 +606,7 @@ private fun PlayerIntroScreen(
|
|||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
StatusGlyph(
|
||||
icon = if (amSubject) CloserGlyphs.Person else Icons.Filled.Psychology,
|
||||
icon = if (amSubject) CloserGlyphs.Person else CloserGlyphs.Psychology,
|
||||
tint = CloserPalette.PurpleDeep,
|
||||
container = CloserPalette.PurpleMist
|
||||
)
|
||||
|
|
@ -657,7 +654,7 @@ private fun HowWellWaitingScreen(amSubject: Boolean, partnerName: String, onBack
|
|||
) {
|
||||
Spacer(Modifier.weight(1f))
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Sync,
|
||||
icon = CloserGlyphs.Sync,
|
||||
tint = CloserPalette.PurpleDeep,
|
||||
container = CloserPalette.PurpleMist
|
||||
)
|
||||
|
|
|
|||
|
|
@ -24,12 +24,6 @@ import androidx.compose.foundation.lazy.items
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Add
|
||||
import androidx.compose.material.icons.filled.Delete
|
||||
import androidx.compose.material.icons.filled.Edit
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material.icons.filled.LockOpen
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -536,7 +530,7 @@ private fun CapsuleListScreen(
|
|||
}
|
||||
IconButton(onClick = onNew) {
|
||||
Surface(shape = RoundedCornerShape(12.dp), color = CloserPalette.PurpleDeep) {
|
||||
Icon(Icons.Filled.Add, contentDescription = "New capsule", tint = Color.White, modifier = Modifier.padding(6.dp).size(20.dp))
|
||||
Icon(CloserGlyphs.Add, contentDescription = "New capsule", tint = Color.White, modifier = Modifier.padding(6.dp).size(20.dp))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -570,7 +564,7 @@ private fun CapsuleListScreen(
|
|||
}
|
||||
item {
|
||||
TextButton(onClick = onNew, modifier = Modifier.fillMaxWidth()) {
|
||||
Icon(Icons.Filled.Add, contentDescription = null, modifier = Modifier.size(16.dp))
|
||||
Icon(CloserGlyphs.Add, contentDescription = null, modifier = Modifier.size(16.dp))
|
||||
Spacer(Modifier.width(6.dp))
|
||||
Text("Add another capsule")
|
||||
}
|
||||
|
|
@ -605,7 +599,7 @@ private fun CapsuleCard(capsule: TimeCapsule, onClick: () -> Unit) {
|
|||
) {
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
Icon(
|
||||
imageVector = if (unlocked) Icons.Filled.LockOpen else CloserGlyphs.Lock,
|
||||
imageVector = if (unlocked) CloserGlyphs.LockOpen else CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = if (unlocked) CloserPalette.Evergreen else CloserPalette.PurpleDeep,
|
||||
modifier = Modifier.size(22.dp)
|
||||
|
|
@ -843,13 +837,13 @@ private fun CapsuleDetailScreen(
|
|||
}
|
||||
if (onEdit != null) {
|
||||
IconButton(onClick = onEdit, enabled = !isDeleting) {
|
||||
Icon(Icons.Filled.Edit, contentDescription = "Edit", tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(20.dp))
|
||||
Icon(CloserGlyphs.Edit, contentDescription = "Edit", tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(20.dp))
|
||||
}
|
||||
}
|
||||
if (onDelete != null) {
|
||||
IconButton(onClick = onDelete, enabled = !isDeleting) {
|
||||
if (isDeleting) CloserHeartLoader(size = 20.dp)
|
||||
else Icon(Icons.Filled.Delete, contentDescription = "Delete", tint = MaterialTheme.colorScheme.error.copy(alpha = 0.7f), modifier = Modifier.size(20.dp))
|
||||
else Icon(CloserGlyphs.Trash, contentDescription = "Delete", tint = MaterialTheme.colorScheme.error.copy(alpha = 0.7f), modifier = Modifier.size(20.dp))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -859,7 +853,7 @@ private fun CapsuleDetailScreen(
|
|||
item {
|
||||
Surface(shape = RoundedCornerShape(999.dp), color = CloserPalette.Evergreen.copy(alpha = 0.12f)) {
|
||||
Row(modifier = Modifier.padding(horizontal = 12.dp, vertical = 6.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
||||
Icon(Icons.Filled.LockOpen, contentDescription = null, tint = CloserPalette.Evergreen, modifier = Modifier.size(14.dp))
|
||||
Icon(CloserGlyphs.LockOpen, contentDescription = null, tint = CloserPalette.Evergreen, modifier = Modifier.size(14.dp))
|
||||
Text("Opened ${formatDate(capsule.unlockAt)}", style = MaterialTheme.typography.labelSmall, color = CloserPalette.Evergreen, fontWeight = FontWeight.SemiBold)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@ import androidx.compose.foundation.lazy.itemsIndexed
|
|||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Refresh
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -219,7 +217,7 @@ private fun PendingMediaChip(
|
|||
color = MaterialTheme.colorScheme.error
|
||||
)
|
||||
IconButton(onClick = onRetry, modifier = Modifier.size(48.dp)) {
|
||||
Icon(Icons.Filled.Refresh, contentDescription = "Retry", tint = MaterialTheme.colorScheme.primary)
|
||||
Icon(CloserGlyphs.Refresh, contentDescription = "Retry", tint = MaterialTheme.colorScheme.primary)
|
||||
}
|
||||
IconButton(onClick = onDismiss, modifier = Modifier.size(48.dp)) {
|
||||
Icon(CloserGlyphs.Close, contentDescription = "Dismiss", tint = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
|
|
|
|||
|
|
@ -29,15 +29,6 @@ import androidx.compose.foundation.layout.width
|
|||
import androidx.compose.foundation.layout.widthIn
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.Send
|
||||
import androidx.compose.material.icons.filled.ContentCopy
|
||||
import androidx.compose.material.icons.filled.Delete
|
||||
import androidx.compose.material.icons.filled.Image
|
||||
import androidx.compose.material.icons.filled.Mic
|
||||
import androidx.compose.material.icons.filled.Pause
|
||||
import androidx.compose.material.icons.filled.PhotoCamera
|
||||
import androidx.compose.material.icons.filled.PlayArrow
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.DropdownMenu
|
||||
import androidx.compose.material3.DropdownMenuItem
|
||||
|
|
@ -253,14 +244,14 @@ private fun MessageActionMenu(
|
|||
DropdownMenuItem(
|
||||
text = { Text("Copy") },
|
||||
onClick = onCopy,
|
||||
leadingIcon = { Icon(Icons.Filled.ContentCopy, contentDescription = null) }
|
||||
leadingIcon = { Icon(CloserGlyphs.Copy, contentDescription = null) }
|
||||
)
|
||||
}
|
||||
if (canDelete) {
|
||||
DropdownMenuItem(
|
||||
text = { Text("Delete") },
|
||||
onClick = onDelete,
|
||||
leadingIcon = { Icon(Icons.Filled.Delete, contentDescription = null) }
|
||||
leadingIcon = { Icon(CloserGlyphs.Trash, contentDescription = null) }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -469,7 +460,7 @@ private fun EncryptedVoiceMessage(
|
|||
CircularProgressIndicator(strokeWidth = 2.dp, modifier = Modifier.size(20.dp), color = tint)
|
||||
} else {
|
||||
Icon(
|
||||
imageVector = if (playing) Icons.Filled.Pause else Icons.Filled.PlayArrow,
|
||||
imageVector = if (playing) CloserGlyphs.Pause else CloserGlyphs.Play,
|
||||
contentDescription = if (playing) "Pause" else "Play",
|
||||
tint = tint
|
||||
)
|
||||
|
|
@ -637,7 +628,7 @@ fun ChatComposer(
|
|||
modifier = Modifier.weight(1f)
|
||||
)
|
||||
IconButton(onClick = { finishRecording(send = true) }, modifier = Modifier.size(48.dp)) {
|
||||
Icon(Icons.AutoMirrored.Filled.Send, contentDescription = "Send", tint = MaterialTheme.colorScheme.primary)
|
||||
Icon(CloserGlyphs.Send, contentDescription = "Send", tint = MaterialTheme.colorScheme.primary)
|
||||
}
|
||||
}
|
||||
return
|
||||
|
|
@ -649,14 +640,14 @@ fun ChatComposer(
|
|||
horizontalArrangement = Arrangement.spacedBy(2.dp)
|
||||
) {
|
||||
ComposerMediaButton(
|
||||
icon = Icons.Filled.Image,
|
||||
icon = CloserGlyphs.Photo,
|
||||
description = "Send a photo",
|
||||
locked = !canSendMedia,
|
||||
onClick = { galleryLauncher.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)) },
|
||||
onUpgrade = onUpgrade
|
||||
)
|
||||
ComposerMediaButton(
|
||||
icon = Icons.Filled.PhotoCamera,
|
||||
icon = CloserGlyphs.Camera,
|
||||
description = "Take a photo",
|
||||
locked = !canSendMedia,
|
||||
onClick = {
|
||||
|
|
@ -686,7 +677,7 @@ fun ChatComposer(
|
|||
if (value.isBlank()) {
|
||||
// Mic when there's nothing typed (tap to record a voice note) — gated behind premium.
|
||||
ComposerMediaButton(
|
||||
icon = Icons.Filled.Mic,
|
||||
icon = CloserGlyphs.Mic,
|
||||
description = "Record a voice note",
|
||||
locked = !canSendMedia,
|
||||
size = 48.dp,
|
||||
|
|
@ -698,7 +689,7 @@ fun ChatComposer(
|
|||
)
|
||||
} else {
|
||||
IconButton(onClick = onSend, modifier = Modifier.size(48.dp)) {
|
||||
Icon(Icons.AutoMirrored.Filled.Send, contentDescription = "Send", tint = MaterialTheme.colorScheme.primary)
|
||||
Icon(CloserGlyphs.Send, contentDescription = "Send", tint = MaterialTheme.colorScheme.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,9 +27,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.AddAPhoto
|
||||
import androidx.compose.material.icons.filled.PhotoLibrary
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
|
|
@ -416,7 +413,7 @@ private fun PhotoStep(
|
|||
contentColor = AuthInk
|
||||
)
|
||||
) {
|
||||
Icon(Icons.Filled.PhotoLibrary, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Icon(CloserGlyphs.Photo, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Text("Choose from gallery", style = MaterialTheme.typography.labelLarge)
|
||||
}
|
||||
|
||||
|
|
@ -430,7 +427,7 @@ private fun PhotoStep(
|
|||
contentColor = AuthInk
|
||||
)
|
||||
) {
|
||||
Icon(Icons.Filled.AddAPhoto, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Icon(CloserGlyphs.Camera, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Text("Take a photo", style = MaterialTheme.typography.labelLarge)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.TrendingUp
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
|
|
@ -146,7 +144,7 @@ private fun ProgressHeader(baseline: Outcome?) {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.TrendingUp,
|
||||
imageVector = CloserGlyphs.TrendingUp,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(40.dp),
|
||||
tint = SettingsPrimaryDeep
|
||||
|
|
|
|||
|
|
@ -19,9 +19,6 @@ import androidx.compose.foundation.layout.width
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.ContentCopy
|
||||
import androidx.compose.material.icons.filled.Share
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -190,7 +187,7 @@ fun CreateInviteScreen(
|
|||
horizontalArrangement = Arrangement.Center,
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(Icons.Filled.ContentCopy, contentDescription = null, modifier = Modifier.size(18.dp))
|
||||
Icon(CloserGlyphs.Copy, contentDescription = null, modifier = Modifier.size(18.dp))
|
||||
Spacer(Modifier.width(8.dp))
|
||||
Text("Copy", style = MaterialTheme.typography.labelLarge)
|
||||
}
|
||||
|
|
@ -217,7 +214,7 @@ fun CreateInviteScreen(
|
|||
horizontalArrangement = Arrangement.Center,
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(Icons.Filled.Share, contentDescription = null, modifier = Modifier.size(18.dp))
|
||||
Icon(CloserGlyphs.Share, contentDescription = null, modifier = Modifier.size(18.dp))
|
||||
Spacer(Modifier.width(8.dp))
|
||||
Text("Share", style = MaterialTheme.typography.labelLarge)
|
||||
}
|
||||
|
|
@ -289,7 +286,7 @@ fun CreateInviteScreen(
|
|||
contentColor = SettingsPrimaryDeep
|
||||
)
|
||||
) {
|
||||
Icon(Icons.Filled.ContentCopy, contentDescription = null, modifier = Modifier.size(16.dp))
|
||||
Icon(CloserGlyphs.Copy, contentDescription = null, modifier = Modifier.size(16.dp))
|
||||
Spacer(Modifier.width(6.dp))
|
||||
Text("Copy phrase", style = MaterialTheme.typography.labelMedium)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.FavoriteBorder
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
|
|
@ -112,7 +110,7 @@ fun InviteConfirmScreen(
|
|||
Spacer(Modifier.height(24.dp))
|
||||
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.FavoriteBorder,
|
||||
icon = CloserGlyphs.HeartOutline,
|
||||
tint = SettingsPrimaryDeep,
|
||||
container = SettingsSoft
|
||||
)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.selection.selectable
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -68,8 +67,7 @@ import app.closer.ui.components.ErrorState
|
|||
import app.closer.ui.components.LoadingState
|
||||
import app.closer.ui.theme.CloserPalette
|
||||
import com.revenuecat.purchases.Package
|
||||
import androidx.compose.material.icons.filled.Check
|
||||
import androidx.compose.material.icons.filled.Close
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
private val BENEFITS = listOf(
|
||||
"Unlimited questions every day",
|
||||
|
|
@ -206,7 +204,7 @@ private fun HeaderSection(
|
|||
|
||||
TextButton(onClick = onClose, modifier = Modifier.size(48.dp)) {
|
||||
Icon(
|
||||
imageVector = Icons.Default.Close,
|
||||
imageVector = CloserGlyphs.Close,
|
||||
contentDescription = "Close",
|
||||
tint = Color(0xFF9B8AA6)
|
||||
)
|
||||
|
|
@ -256,7 +254,7 @@ private fun BenefitPill(label: String) {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Default.Check,
|
||||
imageVector = CloserGlyphs.Check,
|
||||
contentDescription = null,
|
||||
tint = CloserPalette.PurpleDeep,
|
||||
modifier = Modifier.size(15.dp)
|
||||
|
|
@ -484,7 +482,7 @@ private fun ThankYouOverlay(onDismiss: () -> Unit) {
|
|||
verticalArrangement = Arrangement.spacedBy(14.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Default.Check,
|
||||
imageVector = CloserGlyphs.Check,
|
||||
contentDescription = null,
|
||||
tint = Color(0xFF56306F),
|
||||
modifier = Modifier.size(48.dp)
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.FilledTonalButton
|
||||
|
|
@ -276,7 +274,7 @@ private fun SubmittedAnswerCard(
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(
|
||||
imageVector = if (state.isRevealed) Icons.Filled.Visibility else CloserGlyphs.Lock,
|
||||
imageVector = if (state.isRevealed) CloserGlyphs.Eye else CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.onPrimaryContainer,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.width
|
|||
import androidx.compose.foundation.layout.widthIn
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
|
|
@ -34,7 +33,7 @@ import androidx.compose.ui.unit.dp
|
|||
import app.closer.domain.model.Question
|
||||
import app.closer.domain.model.QuestionAnswer
|
||||
import app.closer.domain.model.QuestionReaction
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
private val REACTION_EMOJIS = listOf("❤️", "😊", "😂", "😮", "👏", "🥺")
|
||||
|
||||
|
|
@ -138,7 +137,7 @@ private fun AvatarCircle(name: String?) {
|
|||
)
|
||||
} else {
|
||||
Icon(
|
||||
imageVector = Icons.Default.Person,
|
||||
imageVector = CloserGlyphs.Person,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(18.dp),
|
||||
tint = MaterialTheme.colorScheme.onSecondaryContainer
|
||||
|
|
|
|||
|
|
@ -22,10 +22,6 @@ import androidx.compose.foundation.layout.width
|
|||
import androidx.compose.foundation.layout.widthIn
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.Send
|
||||
import androidx.compose.material.icons.filled.Image
|
||||
import androidx.compose.material.icons.filled.PhotoCamera
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.HorizontalDivider
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -327,7 +323,7 @@ private fun DiscussionInputBar(
|
|||
modifier = Modifier.size(40.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Image,
|
||||
imageVector = CloserGlyphs.Photo,
|
||||
contentDescription = "Send a photo",
|
||||
tint = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
|
|
@ -345,7 +341,7 @@ private fun DiscussionInputBar(
|
|||
modifier = Modifier.size(40.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.PhotoCamera,
|
||||
imageVector = CloserGlyphs.Camera,
|
||||
contentDescription = "Take a photo",
|
||||
tint = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
|
|
@ -381,7 +377,7 @@ private fun DiscussionInputBar(
|
|||
modifier = Modifier.size(48.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.Send,
|
||||
imageVector = CloserGlyphs.Send,
|
||||
contentDescription = "Send",
|
||||
tint = if (value.isNotBlank())
|
||||
MaterialTheme.colorScheme.primary
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import androidx.compose.foundation.layout.heightIn
|
|||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
|
|
@ -25,8 +24,7 @@ import androidx.compose.ui.draw.clip
|
|||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import app.closer.domain.model.Question
|
||||
import androidx.compose.material.icons.filled.Add
|
||||
import androidx.compose.material.icons.filled.Close
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun QuestionHelpExpandable(
|
||||
|
|
@ -61,7 +59,7 @@ fun QuestionHelpExpandable(
|
|||
overflow = TextOverflow.Ellipsis
|
||||
)
|
||||
Icon(
|
||||
imageVector = if (expanded) Icons.Default.Close else Icons.Default.Add,
|
||||
imageVector = if (expanded) CloserGlyphs.Close else CloserGlyphs.Add,
|
||||
contentDescription = if (expanded) "Collapse" else "Expand",
|
||||
modifier = Modifier.size(18.dp),
|
||||
tint = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
|
|
|
|||
|
|
@ -16,10 +16,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.ContentCopy
|
||||
import androidx.compose.material.icons.filled.Delete
|
||||
import androidx.compose.material.icons.filled.Key
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
|
|
@ -121,7 +117,7 @@ fun AccountScreen(
|
|||
horizontalArrangement = Arrangement.spacedBy(10.dp)
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.Key,
|
||||
CloserGlyphs.Key,
|
||||
contentDescription = null,
|
||||
tint = SettingsMuted,
|
||||
modifier = Modifier.size(20.dp)
|
||||
|
|
@ -141,7 +137,7 @@ fun AccountScreen(
|
|||
modifier = Modifier.size(36.dp)
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.ContentCopy,
|
||||
CloserGlyphs.Copy,
|
||||
contentDescription = stringResource(R.string.account_recovery_phrase_copy_desc),
|
||||
tint = SettingsMuted,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
@ -176,7 +172,7 @@ fun AccountScreen(
|
|||
colors = CardDefaults.cardColors(containerColor = SettingsCard)
|
||||
) {
|
||||
AccountRow(
|
||||
icon = Icons.Filled.Delete,
|
||||
icon = CloserGlyphs.Trash,
|
||||
label = stringResource(R.string.action_delete_account),
|
||||
tint = SettingsDanger,
|
||||
onClick = { onNavigate(AppRoute.DELETE_ACCOUNT) }
|
||||
|
|
|
|||
|
|
@ -26,9 +26,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.AddAPhoto
|
||||
import androidx.compose.material.icons.filled.PhotoLibrary
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
|
|
@ -237,7 +234,7 @@ fun EditProfileContent(
|
|||
contentColor = SettingsInk
|
||||
)
|
||||
) {
|
||||
Icon(Icons.Filled.PhotoLibrary, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Icon(CloserGlyphs.Photo, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Text("Gallery")
|
||||
}
|
||||
OutlinedButton(
|
||||
|
|
@ -253,7 +250,7 @@ fun EditProfileContent(
|
|||
contentColor = SettingsInk
|
||||
)
|
||||
) {
|
||||
Icon(Icons.Filled.AddAPhoto, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Icon(CloserGlyphs.Camera, contentDescription = null, modifier = Modifier.padding(end = 8.dp))
|
||||
Text("Camera")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.OpenInNew
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Divider
|
||||
|
|
@ -44,9 +42,6 @@ import androidx.compose.ui.unit.dp
|
|||
import app.closer.R
|
||||
import app.closer.core.navigation.ExternalLinks
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
import androidx.compose.material.icons.filled.CheckCircle
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material.icons.filled.VisibilityOff
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -92,7 +87,7 @@ fun PrivacyScreen(
|
|||
|
||||
// ── What your partner can see ─────────────────────────────────────
|
||||
PrivacySectionHeader(
|
||||
icon = Icons.Default.CheckCircle,
|
||||
icon = CloserGlyphs.Check,
|
||||
iconTint = SettingsPrimary,
|
||||
title = stringResource(R.string.privacy_section_partner_visible)
|
||||
)
|
||||
|
|
@ -137,7 +132,7 @@ fun PrivacyScreen(
|
|||
|
||||
// ── What stays private ────────────────────────────────────────────
|
||||
PrivacySectionHeader(
|
||||
icon = Icons.Default.Lock,
|
||||
icon = CloserGlyphs.Lock,
|
||||
iconTint = MaterialTheme.colorScheme.secondary,
|
||||
title = stringResource(R.string.privacy_section_data)
|
||||
)
|
||||
|
|
@ -172,7 +167,7 @@ fun PrivacyScreen(
|
|||
|
||||
// ── Deleting your account ─────────────────────────────────────────
|
||||
PrivacySectionHeader(
|
||||
icon = Icons.Default.VisibilityOff,
|
||||
icon = CloserGlyphs.EyeOff,
|
||||
iconTint = SettingsDanger,
|
||||
title = stringResource(R.string.account_delete_title)
|
||||
)
|
||||
|
|
@ -318,7 +313,7 @@ private fun LegalLinkRow(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.OpenInNew,
|
||||
CloserGlyphs.OpenInNew,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(16.dp),
|
||||
tint = SettingsPrimaryDeep
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ import androidx.compose.foundation.layout.safeDrawingPadding
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Fingerprint
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
|
|
@ -206,7 +204,7 @@ fun SecurityScreen(
|
|||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.spacedBy(12.dp)
|
||||
) {
|
||||
Icon(Icons.Filled.Fingerprint, contentDescription = null, tint = SettingsMuted)
|
||||
Icon(CloserGlyphs.Fingerprint, contentDescription = null, tint = SettingsMuted)
|
||||
Text(
|
||||
text = "Biometric login",
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
|
|
|
|||
|
|
@ -21,12 +21,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.TrendingUp
|
||||
import androidx.compose.material.icons.filled.Favorite
|
||||
import androidx.compose.material.icons.filled.FavoriteBorder
|
||||
import androidx.compose.material.icons.filled.Notifications
|
||||
import androidx.compose.material.icons.filled.Palette
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -407,7 +401,7 @@ fun SettingsScreen(
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.FavoriteBorder,
|
||||
CloserGlyphs.HeartOutline,
|
||||
contentDescription = null,
|
||||
tint = partnerAccent,
|
||||
modifier = Modifier.size(24.dp)
|
||||
|
|
@ -487,7 +481,7 @@ fun SettingsScreen(
|
|||
)
|
||||
SettingsSectionDivider()
|
||||
SettingsRow(
|
||||
icon = Icons.AutoMirrored.Filled.TrendingUp,
|
||||
icon = CloserGlyphs.TrendingUp,
|
||||
label = "Your Progress",
|
||||
subtitle = "See patterns, check-ins, and growth",
|
||||
onClick = { onNavigate(AppRoute.YOUR_PROGRESS) }
|
||||
|
|
@ -496,14 +490,14 @@ fun SettingsScreen(
|
|||
|
||||
SettingsSection(title = "Your rhythm", accent = Color(0xFFD9B8FF)) {
|
||||
SettingsRow(
|
||||
icon = Icons.Filled.Notifications,
|
||||
icon = CloserGlyphs.Bell,
|
||||
label = "Notifications",
|
||||
subtitle = "Set gentle reminders that fit your day",
|
||||
onClick = { onNavigate(AppRoute.NOTIFICATIONS) }
|
||||
)
|
||||
SettingsSectionDivider()
|
||||
SettingsRow(
|
||||
icon = Icons.Filled.Palette,
|
||||
icon = CloserGlyphs.Palette,
|
||||
label = "Appearance",
|
||||
subtitle = "Make Closer feel comfortable to open",
|
||||
onClick = { onNavigate(AppRoute.APPEARANCE) }
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.OpenInNew
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -275,7 +273,7 @@ private fun PremiumContent(
|
|||
)
|
||||
) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.OpenInNew,
|
||||
CloserGlyphs.OpenInNew,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(16.dp)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.PlayArrow
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -212,7 +210,7 @@ private fun WheelPickerHeader(
|
|||
) {
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.PlayArrow,
|
||||
imageVector = CloserGlyphs.Play,
|
||||
contentDescription = null,
|
||||
tint = CloserPalette.PurpleDeep,
|
||||
modifier = Modifier.size(24.dp)
|
||||
|
|
|
|||
Loading…
Reference in New Issue