feat(android): migrate all UI surfaces from Material icons to brand glyphs (CloserGlyphs catalog)
This commit is contained in:
parent
c31ae4b1f7
commit
6cc78209af
|
|
@ -2,8 +2,6 @@ package app.closer.core.navigation
|
|||
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -83,6 +81,7 @@ import app.closer.ui.wheel.WheelCompleteScreen
|
|||
import app.closer.ui.wheel.GameHistoryScreen
|
||||
import app.closer.ui.wheel.WheelSessionScreen
|
||||
import app.closer.ui.games.WaitingForPartnerScreen
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -190,7 +189,7 @@ fun AppNavigation(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = navigateBackOrHome) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
imageVector = CloserGlyphs.Back,
|
||||
contentDescription = "Back"
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ 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.Lock
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
|
|
@ -59,6 +58,7 @@ import app.closer.ui.components.CategoryGlyph
|
|||
import app.closer.ui.components.EmptyState
|
||||
import app.closer.ui.theme.CloserPalette
|
||||
import app.closer.ui.questions.displayCategoryName
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
private enum class AnswerHistoryFilter {
|
||||
ALL, PRIVATE, REVEALED
|
||||
|
|
@ -383,7 +383,7 @@ private fun HistoryStateBadge(isRevealed: Boolean) {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = if (isRevealed) Icons.Filled.Visibility else Icons.Filled.Lock,
|
||||
imageVector = if (isRevealed) Icons.Filled.Visibility else CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = tint,
|
||||
modifier = Modifier.size(14.dp)
|
||||
|
|
|
|||
|
|
@ -15,9 +15,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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Check
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import app.closer.ui.components.BrandMessageRotator
|
||||
|
|
@ -50,6 +47,7 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.core.navigation.AppRoute
|
||||
import app.closer.ui.components.StatusGlyph
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -75,7 +73,7 @@ fun ForgotPasswordScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate(AppRoute.LOGIN) }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = AuthInk
|
||||
)
|
||||
|
|
@ -101,7 +99,7 @@ fun ForgotPasswordScreen(
|
|||
if (state.sent) {
|
||||
Spacer(Modifier.height(48.dp))
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Check,
|
||||
icon = CloserGlyphs.Check,
|
||||
tint = AuthPrimaryDeep,
|
||||
container = AuthPrimary.copy(alpha = 0.16f)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ 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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material.icons.filled.VisibilityOff
|
||||
import androidx.compose.material3.Button
|
||||
|
|
@ -64,6 +63,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.core.navigation.AppRoute
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -97,7 +97,7 @@ fun SignUpScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate(AppRoute.LOGIN) }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = AuthInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -21,10 +21,6 @@ import androidx.compose.foundation.lazy.LazyColumn
|
|||
import androidx.compose.foundation.lazy.items
|
||||
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.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Check
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -84,6 +80,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
// ── ViewModel ─────────────────────────────────────────────────────────────────
|
||||
|
||||
|
|
@ -359,7 +356,7 @@ private fun ChallengesPickScreen(
|
|||
) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = MaterialTheme.colorScheme.onBackground
|
||||
)
|
||||
|
|
@ -458,7 +455,7 @@ private fun ChallengePickCard(
|
|||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.spacedBy(3.dp)
|
||||
) {
|
||||
Icon(Icons.Filled.Lock, contentDescription = null, tint = CloserPalette.Gold, modifier = Modifier.size(10.dp))
|
||||
Icon(CloserGlyphs.Lock, contentDescription = null, tint = CloserPalette.Gold, modifier = Modifier.size(10.dp))
|
||||
Text("Premium", style = MaterialTheme.typography.labelSmall, color = CloserPalette.Gold, fontWeight = FontWeight.SemiBold)
|
||||
}
|
||||
}
|
||||
|
|
@ -558,7 +555,7 @@ private fun ChallengesActiveScreen(
|
|||
) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = MaterialTheme.colorScheme.onBackground
|
||||
)
|
||||
|
|
@ -694,7 +691,7 @@ private fun ChallengesActiveScreen(
|
|||
horizontalArrangement = Arrangement.spacedBy(10.dp)
|
||||
) {
|
||||
val icon = when {
|
||||
isBothDone -> Icons.Filled.Check
|
||||
isBothDone -> CloserGlyphs.Check
|
||||
else -> null
|
||||
}
|
||||
if (icon != null) {
|
||||
|
|
@ -839,7 +836,7 @@ private fun DayTrackerStrip(
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
if (jointDone) {
|
||||
Icon(Icons.Filled.Check, contentDescription = null, tint = Color.White, modifier = Modifier.size(14.dp))
|
||||
Icon(CloserGlyphs.Check, contentDescription = null, tint = Color.White, modifier = Modifier.size(14.dp))
|
||||
} else {
|
||||
Text(
|
||||
text = "$day",
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ 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.Close
|
||||
import androidx.compose.material.icons.filled.PlayArrow
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -192,7 +191,7 @@ private fun GamePromptCard(
|
|||
|
||||
IconButton(onClick = onDismiss) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Close,
|
||||
imageVector = CloserGlyphs.Close,
|
||||
contentDescription = "Dismiss",
|
||||
tint = Color.White.copy(alpha = 0.8f),
|
||||
modifier = Modifier.size(20.dp)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ 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.material.icons.filled.Close
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -101,7 +100,7 @@ fun MessageBubbleOverlay(
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Close,
|
||||
imageVector = CloserGlyphs.Close,
|
||||
contentDescription = "Dismiss",
|
||||
tint = Color.White,
|
||||
modifier = Modifier.size(28.dp)
|
||||
|
|
|
|||
|
|
@ -22,9 +22,6 @@ import androidx.compose.foundation.layout.statusBarsPadding
|
|||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Info
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -56,6 +53,7 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.domain.model.BucketListCategory
|
||||
import app.closer.domain.model.BucketListItem
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun BucketListScreen(
|
||||
|
|
@ -175,7 +173,7 @@ private fun Header(
|
|||
modifier = Modifier.padding(top = 4.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
imageVector = CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
|
|
|
|||
|
|
@ -22,8 +22,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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.DatePicker
|
||||
|
|
@ -60,6 +58,7 @@ import androidx.compose.ui.text.font.FontWeight
|
|||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun DateBuilderScreen(
|
||||
|
|
@ -165,7 +164,7 @@ private fun Header(
|
|||
modifier = Modifier.padding(top = 4.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
imageVector = CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
|
|
|
|||
|
|
@ -27,10 +27,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.Close
|
||||
import androidx.compose.material.icons.filled.Favorite
|
||||
import androidx.compose.material.icons.filled.Star
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -70,6 +66,7 @@ import app.closer.ui.components.EmptyState
|
|||
import app.closer.ui.components.ErrorState
|
||||
import app.closer.ui.components.LoadingState
|
||||
import kotlin.math.roundToInt
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun DateMatchScreen(
|
||||
|
|
@ -243,7 +240,7 @@ private fun DateMatchHeader(
|
|||
) {
|
||||
Box(modifier = Modifier.padding(8.dp)) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Favorite,
|
||||
imageVector = CloserGlyphs.Heart,
|
||||
contentDescription = "View matches",
|
||||
tint = MaterialTheme.colorScheme.onPrimaryContainer
|
||||
)
|
||||
|
|
@ -405,7 +402,7 @@ private fun PremiumBadge() {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Star,
|
||||
imageVector = CloserGlyphs.Star,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(14.dp),
|
||||
tint = MaterialTheme.colorScheme.onSecondaryContainer
|
||||
|
|
@ -467,14 +464,14 @@ private fun ActionButtons(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
CircularActionButton(
|
||||
icon = Icons.Filled.Close,
|
||||
icon = CloserGlyphs.Close,
|
||||
contentDescription = "Skip",
|
||||
color = MaterialTheme.colorScheme.errorContainer,
|
||||
iconColor = Color(0xFF8D2D35),
|
||||
onClick = onSkip
|
||||
)
|
||||
CircularActionButton(
|
||||
icon = Icons.Filled.Star,
|
||||
icon = CloserGlyphs.Star,
|
||||
contentDescription = "Maybe",
|
||||
color = MaterialTheme.colorScheme.tertiaryContainer.copy(alpha = 0.74f),
|
||||
iconColor = Color(0xFF6B5D00),
|
||||
|
|
@ -482,7 +479,7 @@ private fun ActionButtons(
|
|||
size = 72.dp
|
||||
)
|
||||
CircularActionButton(
|
||||
icon = Icons.Filled.Favorite,
|
||||
icon = CloserGlyphs.Heart,
|
||||
contentDescription = "Love",
|
||||
color = closerSoftPinkColor(),
|
||||
iconColor = Color(0xFF9B1B5A),
|
||||
|
|
|
|||
|
|
@ -22,9 +22,6 @@ import androidx.compose.foundation.layout.statusBarsPadding
|
|||
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.Favorite
|
||||
import androidx.compose.material.icons.filled.Star
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -51,6 +48,7 @@ import app.closer.domain.model.SwipeAction
|
|||
import app.closer.ui.components.EmptyState
|
||||
import app.closer.ui.components.ErrorState
|
||||
import app.closer.ui.components.LoadingState
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun DateMatchesScreen(
|
||||
|
|
@ -145,7 +143,7 @@ private fun DateMatchesContent(
|
|||
SectionHeader(
|
||||
title = "Mutual love",
|
||||
count = state.mutualMatches.size,
|
||||
icon = Icons.Filled.Favorite,
|
||||
icon = CloserGlyphs.Heart,
|
||||
iconColor = Color(0xFF9B1B5A),
|
||||
modifier = Modifier.padding(top = 8.dp)
|
||||
)
|
||||
|
|
@ -160,7 +158,7 @@ private fun DateMatchesContent(
|
|||
SectionHeader(
|
||||
title = "Maybe together",
|
||||
count = state.maybeMatches.size,
|
||||
icon = Icons.Filled.Star,
|
||||
icon = CloserGlyphs.Star,
|
||||
iconColor = Color(0xFF6B5D00),
|
||||
modifier = Modifier.padding(top = 8.dp)
|
||||
)
|
||||
|
|
@ -236,7 +234,7 @@ private fun MatchCard(match: DateMatch) {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Favorite,
|
||||
imageVector = CloserGlyphs.Heart,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(14.dp),
|
||||
tint = Color(0xFF9B1B5A)
|
||||
|
|
@ -268,7 +266,7 @@ private fun SuggestionCard(suggestion: DateMatchSuggestion) {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Star,
|
||||
imageVector = CloserGlyphs.Star,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(14.dp),
|
||||
tint = Color(0xFF6B5D00)
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ import kotlinx.coroutines.flow.StateFlow
|
|||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
// ── Domain ────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
|
@ -599,7 +600,7 @@ private fun DSWaitingScreen(partnerName: String, onBack: () -> Unit, onAbandon:
|
|||
) {
|
||||
Spacer(Modifier.weight(1f))
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Favorite,
|
||||
icon = CloserGlyphs.Heart,
|
||||
tint = CloserPalette.Romantic,
|
||||
container = CloserPalette.Romantic.copy(alpha = 0.12f)
|
||||
)
|
||||
|
|
@ -785,7 +786,7 @@ private fun DSRevealScreen(
|
|||
verticalArrangement = Arrangement.spacedBy(10.dp)
|
||||
) {
|
||||
StatusGlyph(
|
||||
icon = if (matches.isEmpty()) Icons.Filled.FavoriteBorder else Icons.Filled.Favorite,
|
||||
icon = if (matches.isEmpty()) Icons.Filled.FavoriteBorder else CloserGlyphs.Heart,
|
||||
tint = CloserPalette.Romantic,
|
||||
container = CloserPalette.Romantic.copy(alpha = 0.12f),
|
||||
size = 82.dp,
|
||||
|
|
@ -994,7 +995,7 @@ private fun DesireMatchCard(match: DesireMatch) {
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Favorite,
|
||||
icon = CloserGlyphs.Heart,
|
||||
tint = CloserPalette.Romantic,
|
||||
container = CloserPalette.Romantic.copy(alpha = 0.12f),
|
||||
size = 34.dp,
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Check
|
||||
import androidx.compose.material.icons.filled.HourglassEmpty
|
||||
import androidx.compose.material.icons.filled.LocalFireDepartment
|
||||
import androidx.compose.material.icons.filled.NotificationsNone
|
||||
|
|
@ -75,6 +73,7 @@ import kotlinx.coroutines.flow.asStateFlow
|
|||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.tasks.await
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
data class PartnerHomeUiState(
|
||||
val isLoading: Boolean = true,
|
||||
|
|
@ -237,7 +236,7 @@ fun PartnerHomeScreen(
|
|||
},
|
||||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
|
||||
Icon(CloserGlyphs.Back, contentDescription = "Back")
|
||||
}
|
||||
},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Transparent)
|
||||
|
|
@ -423,7 +422,7 @@ private fun PartnerActivityCard(
|
|||
) {
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
Icon(
|
||||
imageVector = if (hasAnsweredToday) Icons.Filled.Check else Icons.Filled.HourglassEmpty,
|
||||
imageVector = if (hasAnsweredToday) CloserGlyphs.Check else Icons.Filled.HourglassEmpty,
|
||||
contentDescription = null,
|
||||
tint = if (hasAnsweredToday) CloserPalette.PurpleDeep else MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
modifier = Modifier.size(20.dp)
|
||||
|
|
|
|||
|
|
@ -26,10 +26,8 @@ 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.Person
|
||||
import androidx.compose.material.icons.filled.Psychology
|
||||
import androidx.compose.material.icons.filled.Sync
|
||||
import androidx.compose.material.icons.filled.Timeline
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -91,6 +89,7 @@ import kotlinx.coroutines.flow.StateFlow
|
|||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
// ── Domain ────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
|
@ -610,7 +609,7 @@ private fun PlayerIntroScreen(
|
|||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
StatusGlyph(
|
||||
icon = if (amSubject) Icons.Filled.Person else Icons.Filled.Psychology,
|
||||
icon = if (amSubject) CloserGlyphs.Person else Icons.Filled.Psychology,
|
||||
tint = CloserPalette.PurpleDeep,
|
||||
container = CloserPalette.PurpleMist
|
||||
)
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Add
|
||||
import androidx.compose.material.icons.filled.Delete
|
||||
import androidx.compose.material.icons.filled.Edit
|
||||
|
|
@ -91,6 +90,7 @@ import kotlinx.coroutines.flow.StateFlow
|
|||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
// ── Unlock presets ─────────────────────────────────────────────────────────────
|
||||
|
||||
|
|
@ -462,7 +462,7 @@ private fun MemoryLaneLockedScreen(onBack: () -> Unit, onUnlock: () -> Unit) {
|
|||
) {
|
||||
Surface(shape = RoundedCornerShape(50.dp), color = CloserPalette.Romantic.copy(alpha = 0.12f)) {
|
||||
Icon(
|
||||
Icons.Filled.Lock,
|
||||
CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.padding(20.dp).size(32.dp),
|
||||
tint = CloserPalette.Romantic
|
||||
|
|
@ -527,7 +527,7 @@ private fun CapsuleListScreen(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back", tint = MaterialTheme.colorScheme.onBackground)
|
||||
Icon(CloserGlyphs.Back, contentDescription = "Back", tint = MaterialTheme.colorScheme.onBackground)
|
||||
}
|
||||
Spacer(Modifier.width(4.dp))
|
||||
Column(modifier = Modifier.weight(1f)) {
|
||||
|
|
@ -605,7 +605,7 @@ private fun CapsuleCard(capsule: TimeCapsule, onClick: () -> Unit) {
|
|||
) {
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
Icon(
|
||||
imageVector = if (unlocked) Icons.Filled.LockOpen else Icons.Filled.Lock,
|
||||
imageVector = if (unlocked) Icons.Filled.LockOpen else CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = if (unlocked) CloserPalette.Evergreen else CloserPalette.PurpleDeep,
|
||||
modifier = Modifier.size(22.dp)
|
||||
|
|
@ -671,7 +671,7 @@ private fun CapsuleCreateScreen(
|
|||
// Header
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back", tint = MaterialTheme.colorScheme.onBackground)
|
||||
Icon(CloserGlyphs.Back, contentDescription = "Back", tint = MaterialTheme.colorScheme.onBackground)
|
||||
}
|
||||
Spacer(Modifier.width(4.dp))
|
||||
Text(if (isEditing) "Edit Capsule" else "New Capsule", style = MaterialTheme.typography.headlineSmall.copy(fontWeight = FontWeight.SemiBold), color = MaterialTheme.colorScheme.onBackground)
|
||||
|
|
@ -830,7 +830,7 @@ private fun CapsuleDetailScreen(
|
|||
item {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back", tint = MaterialTheme.colorScheme.onBackground)
|
||||
Icon(CloserGlyphs.Back, contentDescription = "Back", tint = MaterialTheme.colorScheme.onBackground)
|
||||
}
|
||||
Spacer(Modifier.width(4.dp))
|
||||
Column(modifier = Modifier.weight(1f)) {
|
||||
|
|
@ -899,7 +899,7 @@ private fun CapsuleDetailScreen(
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.spacedBy(12.dp)
|
||||
) {
|
||||
Icon(Icons.Filled.Lock, contentDescription = null, tint = CloserPalette.PurpleDeep.copy(alpha = 0.5f), modifier = Modifier.size(40.dp))
|
||||
Icon(CloserGlyphs.Lock, contentDescription = null, tint = CloserPalette.PurpleDeep.copy(alpha = 0.5f), modifier = Modifier.size(40.dp))
|
||||
Text("Still sealed", style = MaterialTheme.typography.titleMedium.copy(fontWeight = FontWeight.SemiBold), color = MaterialTheme.colorScheme.onSurface, textAlign = TextAlign.Center)
|
||||
Text(
|
||||
text = "Opens ${countdown(capsule.unlockAt)} — ${formatDate(capsule.unlockAt)}",
|
||||
|
|
|
|||
|
|
@ -17,9 +17,6 @@ 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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Close
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material.icons.filled.Refresh
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
|
|
@ -57,6 +54,7 @@ import app.closer.ui.messages.components.ChatMessageRow
|
|||
import app.closer.ui.messages.components.isSameChatDay
|
||||
import app.closer.ui.theme.closerBackgroundBrush
|
||||
import coil.compose.AsyncImage
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -119,7 +117,7 @@ fun ConversationScreen(
|
|||
},
|
||||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
|
||||
Icon(CloserGlyphs.Back, contentDescription = "Back")
|
||||
}
|
||||
},
|
||||
colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Transparent)
|
||||
|
|
@ -224,7 +222,7 @@ private fun PendingMediaChip(
|
|||
Icon(Icons.Filled.Refresh, contentDescription = "Retry", tint = MaterialTheme.colorScheme.primary)
|
||||
}
|
||||
IconButton(onClick = onDismiss, modifier = Modifier.size(48.dp)) {
|
||||
Icon(Icons.Filled.Close, contentDescription = "Dismiss", tint = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
Icon(CloserGlyphs.Close, contentDescription = "Dismiss", tint = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
}
|
||||
} else {
|
||||
CircularProgressIndicator(
|
||||
|
|
@ -254,7 +252,7 @@ private fun ConversationAvatar(url: String?) {
|
|||
)
|
||||
} else {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Person,
|
||||
imageVector = CloserGlyphs.Person,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
modifier = Modifier.size(size).clip(CircleShape)
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
|
|
@ -37,6 +35,7 @@ import app.closer.ui.components.EmptyState
|
|||
import app.closer.ui.theme.CloserPalette
|
||||
import coil.compose.AsyncImage
|
||||
import java.util.concurrent.TimeUnit
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun MessagesInboxScreen(
|
||||
|
|
@ -132,7 +131,7 @@ private fun ConversationRow(
|
|||
modifier = Modifier.size(52.dp).clip(CircleShape).background(MaterialTheme.colorScheme.surfaceVariant),
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(Icons.Filled.Person, contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
Icon(CloserGlyphs.Person, contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,14 +31,11 @@ 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.Close
|
||||
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.Lock
|
||||
import androidx.compose.material.icons.filled.Mic
|
||||
import androidx.compose.material.icons.filled.Pause
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material.icons.filled.PhotoCamera
|
||||
import androidx.compose.material.icons.filled.PlayArrow
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
|
|
@ -87,6 +84,7 @@ import kotlinx.coroutines.launch
|
|||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
import java.nio.ByteBuffer
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
/**
|
||||
* One chat row — Messenger style: only the partner's avatar shows (on the left); our own messages
|
||||
|
|
@ -391,7 +389,7 @@ private fun FullScreenImageViewer(
|
|||
onClick = onDismiss,
|
||||
modifier = Modifier.align(Alignment.TopEnd).padding(12.dp)
|
||||
) {
|
||||
Icon(Icons.Filled.Close, contentDescription = "Close", tint = Color.White)
|
||||
Icon(CloserGlyphs.Close, contentDescription = "Close", tint = Color.White)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -511,7 +509,7 @@ private fun ChatAvatar(url: String?, visible: Boolean) {
|
|||
modifier = Modifier.size(size).clip(CircleShape).background(MaterialTheme.colorScheme.surfaceVariant),
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(Icons.Filled.Person, contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(16.dp))
|
||||
Icon(CloserGlyphs.Person, contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(16.dp))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -629,7 +627,7 @@ fun ChatComposer(
|
|||
horizontalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
IconButton(onClick = { finishRecording(send = false) }, modifier = Modifier.size(48.dp)) {
|
||||
Icon(Icons.Filled.Close, contentDescription = "Cancel", tint = MaterialTheme.colorScheme.error)
|
||||
Icon(CloserGlyphs.Close, contentDescription = "Cancel", tint = MaterialTheme.colorScheme.error)
|
||||
}
|
||||
Box(modifier = Modifier.size(10.dp).clip(CircleShape).background(MaterialTheme.colorScheme.error))
|
||||
Text(
|
||||
|
|
@ -730,7 +728,7 @@ private fun ComposerMediaButton(
|
|||
}
|
||||
if (locked) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Lock,
|
||||
imageVector = CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
modifier = Modifier.size(12.dp).align(Alignment.BottomEnd)
|
||||
|
|
|
|||
|
|
@ -28,9 +28,7 @@ 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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.AddAPhoto
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material.icons.filled.PhotoLibrary
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -80,6 +78,7 @@ import app.closer.ui.auth.AuthPrimaryDeep
|
|||
import app.closer.ui.auth.authTextFieldColors
|
||||
import coil.compose.AsyncImage
|
||||
import java.io.File
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -139,7 +138,7 @@ fun CreateProfileScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = viewModel::goBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = AuthInk
|
||||
)
|
||||
|
|
@ -394,12 +393,12 @@ private fun PhotoStep(
|
|||
contentDescription = "Profile photo",
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentScale = ContentScale.Crop,
|
||||
placeholder = rememberVectorPainter(Icons.Filled.Person),
|
||||
error = rememberVectorPainter(Icons.Filled.Person)
|
||||
placeholder = rememberVectorPainter(CloserGlyphs.Person),
|
||||
error = rememberVectorPainter(CloserGlyphs.Person)
|
||||
)
|
||||
} else {
|
||||
Icon(
|
||||
Icons.Filled.Person,
|
||||
CloserGlyphs.Person,
|
||||
contentDescription = "Profile photo",
|
||||
modifier = Modifier.size(64.dp),
|
||||
tint = AuthMuted
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.automirrored.filled.TrendingUp
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
|
|
@ -49,6 +48,7 @@ import app.closer.ui.settings.SettingsInk
|
|||
import app.closer.ui.settings.SettingsMuted
|
||||
import app.closer.ui.settings.SettingsPrimaryDeep
|
||||
import app.closer.ui.settings.SettingsSoft
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -69,7 +69,7 @@ fun YourProgressScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@ import androidx.compose.foundation.text.BasicTextField
|
|||
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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -68,6 +66,7 @@ import app.closer.ui.settings.SettingsOnPrimary
|
|||
import app.closer.ui.settings.SettingsPrimary
|
||||
import app.closer.ui.settings.SettingsPrimaryDeep
|
||||
import app.closer.ui.settings.SettingsSoft
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -94,7 +93,7 @@ fun AcceptInviteScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -20,11 +20,9 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.filled.ContentCopy
|
||||
import androidx.compose.material.icons.filled.Share
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -66,6 +64,7 @@ import app.closer.ui.settings.SettingsPrimary
|
|||
import app.closer.ui.settings.SettingsPrimaryDeep
|
||||
import app.closer.ui.settings.SettingsSoft
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -102,7 +101,7 @@ fun CreateInviteScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
@ -255,7 +254,7 @@ fun CreateInviteScreen(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.Lock,
|
||||
CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = SettingsPrimaryDeep,
|
||||
modifier = Modifier.size(16.dp)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.filled.FavoriteBorder
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -53,6 +52,7 @@ import app.closer.ui.settings.SettingsOnPrimary
|
|||
import app.closer.ui.settings.SettingsPrimary
|
||||
import app.closer.ui.settings.SettingsPrimaryDeep
|
||||
import app.closer.ui.settings.SettingsSoft
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -84,7 +84,7 @@ fun InviteConfirmScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -16,8 +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.Check
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -44,6 +42,7 @@ import app.closer.ui.auth.AuthOnPrimary
|
|||
import app.closer.ui.auth.AuthPrimary
|
||||
import app.closer.ui.auth.AuthPrimaryDeep
|
||||
import app.closer.ui.theme.CloserPalette
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
private val WHY_ITEMS = listOf(
|
||||
"Daily questions reveal together — both answer privately, then see each other's response at the same time.",
|
||||
|
|
@ -165,7 +164,7 @@ private fun WhyRow(text: String) {
|
|||
modifier = Modifier.size(22.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Check,
|
||||
imageVector = CloserGlyphs.Check,
|
||||
contentDescription = null,
|
||||
tint = AuthOnPrimary,
|
||||
modifier = Modifier
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -78,6 +76,7 @@ import app.closer.ui.settings.SettingsMuted
|
|||
import app.closer.ui.settings.SettingsOnPrimary
|
||||
import app.closer.ui.settings.SettingsPrimary
|
||||
import app.closer.ui.settings.SettingsSoft
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
// ── ViewModel ────────────────────────────────────────────────────────────────
|
||||
|
||||
|
|
@ -278,8 +277,8 @@ private fun PairAvatar(url: String, modifier: Modifier = Modifier) {
|
|||
model = cleanUrl,
|
||||
contentDescription = null,
|
||||
contentScale = ContentScale.Crop,
|
||||
placeholder = rememberVectorPainter(Icons.Filled.Person),
|
||||
error = rememberVectorPainter(Icons.Filled.Person),
|
||||
placeholder = rememberVectorPainter(CloserGlyphs.Person),
|
||||
error = rememberVectorPainter(CloserGlyphs.Person),
|
||||
modifier = modifier
|
||||
.clip(CircleShape)
|
||||
.border(4.dp, Color.White, CircleShape)
|
||||
|
|
@ -295,7 +294,7 @@ private fun PairAvatar(url: String, modifier: Modifier = Modifier) {
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.Person,
|
||||
CloserGlyphs.Person,
|
||||
contentDescription = null,
|
||||
tint = SettingsPrimary,
|
||||
modifier = Modifier.fillMaxSize(0.5f)
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
|
|
@ -48,6 +46,7 @@ import app.closer.ui.settings.SettingsMuted
|
|||
import app.closer.ui.settings.SettingsOnPrimary
|
||||
import app.closer.ui.settings.SettingsPrimary
|
||||
import app.closer.ui.settings.SettingsPrimaryDeep
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun RecoveryScreen(
|
||||
|
|
@ -83,7 +82,7 @@ fun RecoveryScreen(
|
|||
Spacer(Modifier.height(48.dp))
|
||||
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Lock,
|
||||
icon = CloserGlyphs.Lock,
|
||||
tint = SettingsPrimaryDeep,
|
||||
container = SettingsPrimary.copy(alpha = 0.12f)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@ 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.material.icons.filled.Check
|
||||
import androidx.compose.material.icons.filled.Close
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -70,6 +68,8 @@ 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
|
||||
|
||||
private val BENEFITS = listOf(
|
||||
"Unlimited questions every day",
|
||||
|
|
|
|||
|
|
@ -16,13 +16,6 @@ import androidx.compose.foundation.layout.safeDrawingPadding
|
|||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowForward
|
||||
import androidx.compose.material.icons.filled.Done
|
||||
import androidx.compose.material.icons.filled.Favorite
|
||||
import androidx.compose.material.icons.filled.Home
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material.icons.filled.Star
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
|
|
@ -53,6 +46,7 @@ import app.closer.ui.components.CloserPill
|
|||
import app.closer.ui.components.CloserRadii
|
||||
import app.closer.ui.theme.closerBackgroundBrush
|
||||
import app.closer.ui.theme.closerPlayCardBrush
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun PlayHubScreen(
|
||||
|
|
@ -280,7 +274,7 @@ private fun ThisOrThatCard(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
@ -351,7 +345,7 @@ private fun DesireSyncCard(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Lock,
|
||||
imageVector = CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier.size(13.dp)
|
||||
|
|
@ -375,7 +369,7 @@ private fun DesireSyncCard(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
@ -448,7 +442,7 @@ private fun HowWellCard(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
@ -522,7 +516,7 @@ private fun ConnectionChallengesCard(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
@ -592,7 +586,7 @@ private fun MemoryLaneCard(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Lock,
|
||||
imageVector = CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier.size(13.dp)
|
||||
|
|
@ -616,7 +610,7 @@ private fun MemoryLaneCard(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
@ -759,7 +753,7 @@ private fun CompactPlayCard(
|
|||
) {
|
||||
if (locked) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Lock,
|
||||
imageVector = CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.tertiary,
|
||||
modifier = Modifier.size(11.dp)
|
||||
|
|
@ -774,7 +768,7 @@ private fun CompactPlayCard(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
tint = tint,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
|
|||
|
|
@ -26,8 +26,6 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -59,6 +57,7 @@ import app.closer.ui.components.ErrorState
|
|||
import app.closer.ui.components.LoadingState
|
||||
import app.closer.ui.questions.components.QuestionAnswerInput
|
||||
import app.closer.ui.questions.components.QuestionHeader
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun LocalQuestionContent(
|
||||
|
|
@ -97,7 +96,7 @@ fun LocalQuestionContent(
|
|||
if (onBack != null) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
imageVector = CloserGlyphs.Back,
|
||||
contentDescription = "Back"
|
||||
)
|
||||
}
|
||||
|
|
@ -277,7 +276,7 @@ private fun SubmittedAnswerCard(
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(
|
||||
imageVector = if (state.isRevealed) Icons.Filled.Visibility else Icons.Filled.Lock,
|
||||
imageVector = if (state.isRevealed) Icons.Filled.Visibility else CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.onPrimaryContainer,
|
||||
modifier = Modifier.size(18.dp)
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -55,6 +53,7 @@ import app.closer.core.navigation.AppRoute
|
|||
import app.closer.domain.model.Question
|
||||
import app.closer.domain.model.QuestionCategory
|
||||
import app.closer.ui.components.CategoryGlyph
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun QuestionCategoryScreen(
|
||||
|
|
@ -113,7 +112,7 @@ private fun QuestionCategoryContent(
|
|||
) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = MaterialTheme.colorScheme.onBackground
|
||||
)
|
||||
|
|
|
|||
|
|
@ -20,8 +20,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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -48,6 +46,7 @@ import app.closer.ui.questions.components.AnswerBubble
|
|||
import app.closer.ui.questions.components.QuestionAnswerInput
|
||||
import app.closer.ui.questions.components.QuestionHeader
|
||||
import app.closer.ui.theme.closerBackgroundBrush
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun QuestionThreadScreen(
|
||||
|
|
@ -77,7 +76,7 @@ fun QuestionThreadScreen(
|
|||
) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
imageVector = CloserGlyphs.Back,
|
||||
contentDescription = "Back"
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ 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.filled.Person
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
|
|
@ -35,6 +34,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
|
||||
|
||||
private val REACTION_EMOJIS = listOf("❤️", "😊", "😂", "😮", "👏", "🥺")
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ 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.Person
|
||||
import androidx.compose.material.icons.filled.PhotoCamera
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.HorizontalDivider
|
||||
|
|
@ -61,6 +60,7 @@ import kotlinx.coroutines.Dispatchers
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun QuestionDiscussionThread(
|
||||
|
|
@ -261,7 +261,7 @@ private fun MessageAvatar(url: String?, visible: Boolean) {
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Person,
|
||||
imageVector = CloserGlyphs.Person,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
modifier = Modifier.size(16.dp)
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ 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.Add
|
||||
import androidx.compose.material.icons.filled.Close
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
|
|
@ -27,6 +25,8 @@ 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
|
||||
|
||||
@Composable
|
||||
fun QuestionHelpExpandable(
|
||||
|
|
|
|||
|
|
@ -6,9 +6,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowForward
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.FilledTonalButton
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -19,6 +16,7 @@ import androidx.compose.ui.Alignment
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun QuestionNavigationBar(
|
||||
|
|
@ -46,7 +44,7 @@ fun QuestionNavigationBar(
|
|||
)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
imageVector = CloserGlyphs.Back,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.padding(end = 4.dp)
|
||||
)
|
||||
|
|
@ -75,7 +73,7 @@ fun QuestionNavigationBar(
|
|||
fontWeight = FontWeight.Medium
|
||||
)
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.padding(start = 4.dp)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowForwardIos
|
||||
import androidx.compose.material.icons.filled.ContentCopy
|
||||
import androidx.compose.material.icons.filled.Delete
|
||||
import androidx.compose.material.icons.filled.Key
|
||||
|
|
@ -54,6 +52,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
|
|||
import app.closer.R
|
||||
import app.closer.core.navigation.AppRoute
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -77,7 +76,7 @@ fun AccountScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = stringResource(R.string.action_back),
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
@ -221,7 +220,7 @@ private fun AccountRow(
|
|||
)
|
||||
if (enabled) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowForwardIos,
|
||||
CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(14.dp),
|
||||
tint = SettingsMuted
|
||||
|
|
|
|||
|
|
@ -15,8 +15,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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Divider
|
||||
|
|
@ -40,6 +38,7 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.R
|
||||
import app.closer.domain.repository.ThemeMode
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -58,7 +57,7 @@ fun AppearanceScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = stringResource(R.string.action_back),
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -31,8 +31,6 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.material3.Checkbox
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -62,6 +60,7 @@ import androidx.compose.foundation.text.KeyboardOptions
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
data class DeleteAccountUiState(
|
||||
val showConfirm: Boolean = false,
|
||||
|
|
@ -278,7 +277,7 @@ fun DeleteAccountScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -27,10 +27,7 @@ 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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.AddAPhoto
|
||||
import androidx.compose.material.icons.filled.Check
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material.icons.filled.PhotoLibrary
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -79,6 +76,7 @@ import app.closer.ui.settings.SettingsMuted
|
|||
import app.closer.ui.settings.SettingsOnPrimary
|
||||
import app.closer.ui.settings.SettingsPrimary
|
||||
import app.closer.ui.settings.SettingsPrimaryDeep
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -98,7 +96,7 @@ fun EditProfileScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
@ -197,12 +195,12 @@ fun EditProfileContent(
|
|||
contentDescription = "Profile photo",
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentScale = ContentScale.Crop,
|
||||
placeholder = rememberVectorPainter(Icons.Filled.Person),
|
||||
error = rememberVectorPainter(Icons.Filled.Person)
|
||||
placeholder = rememberVectorPainter(CloserGlyphs.Person),
|
||||
error = rememberVectorPainter(CloserGlyphs.Person)
|
||||
)
|
||||
} else {
|
||||
Icon(
|
||||
Icons.Filled.Person,
|
||||
CloserGlyphs.Person,
|
||||
contentDescription = "Profile photo",
|
||||
modifier = Modifier.size(56.dp),
|
||||
tint = SettingsMuted
|
||||
|
|
@ -407,7 +405,7 @@ private fun SexEditOption(
|
|||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
if (selected) {
|
||||
Icon(
|
||||
Icons.Filled.Check,
|
||||
CloserGlyphs.Check,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(18.dp).padding(end = 6.dp),
|
||||
tint = contentColor
|
||||
|
|
|
|||
|
|
@ -29,8 +29,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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Divider
|
||||
|
|
@ -55,6 +53,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.R
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
data class NotificationSettingsUiState(
|
||||
val dailyReminderEnabled: Boolean = true,
|
||||
|
|
@ -155,7 +154,7 @@ fun NotificationSettingsScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = stringResource(R.string.action_back),
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,11 +19,7 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.automirrored.filled.OpenInNew
|
||||
import androidx.compose.material.icons.filled.CheckCircle
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material.icons.filled.VisibilityOff
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Divider
|
||||
|
|
@ -47,6 +43,10 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||
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
|
||||
|
|
@ -64,7 +64,7 @@ fun PrivacyScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = stringResource(R.string.action_back),
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@ import androidx.compose.foundation.layout.safeDrawingPadding
|
|||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
|
|
@ -53,6 +51,7 @@ import androidx.compose.ui.text.style.TextOverflow
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
data class RelationshipSettingsUiState(
|
||||
val showLeaveConfirm: Boolean = false,
|
||||
|
|
@ -136,7 +135,7 @@ fun RelationshipSettingsScreen(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ 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.material.icons.filled.Lock
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
|
|
@ -60,6 +59,7 @@ import kotlinx.coroutines.flow.stateIn
|
|||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
data class SecurityUiState(
|
||||
val biometricLoginEnabled: Boolean = false,
|
||||
|
|
@ -235,7 +235,7 @@ fun SecurityScreen(
|
|||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.spacedBy(12.dp)
|
||||
) {
|
||||
Icon(Icons.Filled.Lock, contentDescription = null, tint = SettingsMuted)
|
||||
Icon(CloserGlyphs.Lock, contentDescription = null, tint = SettingsMuted)
|
||||
Text(
|
||||
text = "Recovery phrase",
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
|
|
|
|||
|
|
@ -22,17 +22,11 @@ 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.ArrowBack
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowForwardIos
|
||||
import androidx.compose.material.icons.automirrored.filled.TrendingUp
|
||||
import androidx.compose.material.icons.filled.Done
|
||||
import androidx.compose.material.icons.filled.Favorite
|
||||
import androidx.compose.material.icons.filled.FavoriteBorder
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material.icons.filled.Notifications
|
||||
import androidx.compose.material.icons.filled.Palette
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material.icons.filled.Warning
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -80,6 +74,7 @@ import app.closer.ui.settings.SettingsMuted
|
|||
import app.closer.ui.settings.SettingsPrimaryDeep
|
||||
import app.closer.ui.settings.SettingsSoft
|
||||
import coil.compose.AsyncImage
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
// ====================
|
||||
// Settings Subpages
|
||||
|
|
@ -104,7 +99,7 @@ fun SettingsSubpage(
|
|||
navigationIcon = {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowBack,
|
||||
CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = SettingsInk
|
||||
)
|
||||
|
|
@ -334,7 +329,7 @@ fun SettingsScreen(
|
|||
) {
|
||||
ProfileAvatar(
|
||||
imageUrl = state.photoUrl,
|
||||
fallbackIcon = Icons.Filled.Person,
|
||||
fallbackIcon = CloserGlyphs.Person,
|
||||
fallbackTint = SettingsPrimaryDeep
|
||||
)
|
||||
Column(
|
||||
|
|
@ -358,7 +353,7 @@ fun SettingsScreen(
|
|||
)
|
||||
}
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowForwardIos,
|
||||
CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(16.dp),
|
||||
tint = SettingsPrimaryDeep
|
||||
|
|
@ -400,7 +395,7 @@ fun SettingsScreen(
|
|||
if (state.isPaired) {
|
||||
ProfileAvatar(
|
||||
imageUrl = state.partnerPhotoUrl,
|
||||
fallbackIcon = Icons.Filled.Favorite,
|
||||
fallbackIcon = CloserGlyphs.Heart,
|
||||
fallbackTint = SettingsPrimaryDeep
|
||||
)
|
||||
} else {
|
||||
|
|
@ -451,7 +446,7 @@ fun SettingsScreen(
|
|||
}
|
||||
}
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowForwardIos,
|
||||
CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(16.dp),
|
||||
tint = partnerAccent
|
||||
|
|
@ -461,7 +456,7 @@ fun SettingsScreen(
|
|||
|
||||
SettingsSection(title = "For the two of you", accent = Color(0xFFF7C8E4)) {
|
||||
SettingsRow(
|
||||
icon = Icons.Filled.Favorite,
|
||||
icon = CloserGlyphs.Heart,
|
||||
label = "Together",
|
||||
subtitle = "Your shared activity, answers, and milestones",
|
||||
onClick = { onNavigate(AppRoute.ACTIVITY) },
|
||||
|
|
@ -470,14 +465,14 @@ fun SettingsScreen(
|
|||
SettingsSectionDivider()
|
||||
if (app.closer.BuildConfig.DEBUG) {
|
||||
SettingsRow(
|
||||
icon = Icons.Filled.Favorite,
|
||||
icon = CloserGlyphs.Heart,
|
||||
label = "Art preview (debug)",
|
||||
subtitle = "Preview celebration art without pairing",
|
||||
onClick = { onNavigate(AppRoute.ART_PREVIEW) }
|
||||
)
|
||||
SettingsSectionDivider()
|
||||
SettingsRow(
|
||||
icon = Icons.Filled.Favorite,
|
||||
icon = CloserGlyphs.Heart,
|
||||
label = "Paired home (debug)",
|
||||
subtitle = "Preview the paired Home without pairing",
|
||||
onClick = { onNavigate(AppRoute.PAIRED_HOME_PREVIEW) }
|
||||
|
|
@ -485,7 +480,7 @@ fun SettingsScreen(
|
|||
SettingsSectionDivider()
|
||||
}
|
||||
SettingsRow(
|
||||
icon = Icons.Filled.Done,
|
||||
icon = CloserGlyphs.Check,
|
||||
label = "Answer History",
|
||||
subtitle = "Revisit the moments you have shared",
|
||||
onClick = { onNavigate(AppRoute.ANSWER_HISTORY) }
|
||||
|
|
@ -670,7 +665,7 @@ private fun SettingsRow(
|
|||
}
|
||||
}
|
||||
Icon(
|
||||
Icons.AutoMirrored.Filled.ArrowForwardIos,
|
||||
CloserGlyphs.Forward,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(14.dp),
|
||||
tint = SettingsMuted
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ 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.material.icons.filled.Check
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
|
|
@ -70,6 +69,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
private val BENEFITS = listOf(
|
||||
"Unlimited questions every day",
|
||||
|
|
@ -250,7 +250,7 @@ private fun PremiumContent(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Check,
|
||||
imageVector = CloserGlyphs.Check,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
modifier = Modifier.size(16.dp)
|
||||
|
|
@ -351,7 +351,7 @@ private fun FreeContent(
|
|||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Check,
|
||||
imageVector = CloserGlyphs.Check,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
modifier = Modifier.size(16.dp)
|
||||
|
|
|
|||
|
|
@ -15,7 +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.automirrored.filled.ArrowForward
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.PlayArrow
|
||||
import androidx.compose.material3.Button
|
||||
|
|
@ -44,6 +43,7 @@ import app.closer.ui.components.CategoryGlyph
|
|||
import app.closer.ui.questions.displayCategoryName
|
||||
import app.closer.ui.theme.CloserPalette
|
||||
import app.closer.ui.theme.closerBackgroundBrush
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun CategoryPickerScreen(
|
||||
|
|
@ -291,7 +291,7 @@ private fun CategoryCard(
|
|||
}
|
||||
}
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowForward,
|
||||
imageVector = CloserGlyphs.Forward,
|
||||
contentDescription = if (item.isLocked) "Unlock" else "Spin",
|
||||
tint = if (item.isLocked) MaterialTheme.colorScheme.outline else CloserPalette.PurpleDeep,
|
||||
modifier = Modifier.size(20.dp)
|
||||
|
|
|
|||
|
|
@ -27,9 +27,6 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.layout.width
|
||||
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.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
|
|
@ -65,6 +62,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
|
|||
import app.closer.R
|
||||
import app.closer.ui.theme.CloserPalette
|
||||
import app.closer.ui.theme.closerBackgroundBrush
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@Composable
|
||||
fun SpinWheelScreen(
|
||||
|
|
@ -126,7 +124,7 @@ private fun SpinWheelContent(
|
|||
) {
|
||||
IconButton(onClick = onBack) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
imageVector = CloserGlyphs.Back,
|
||||
contentDescription = "Back",
|
||||
tint = MaterialTheme.colorScheme.onBackground
|
||||
)
|
||||
|
|
@ -240,7 +238,7 @@ private fun SpinWheelContent(
|
|||
) {
|
||||
if (!state.hasPremium) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Lock,
|
||||
imageVector = CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(14.dp)
|
||||
)
|
||||
|
|
@ -309,7 +307,7 @@ private fun ChooseCategoryButton(hasPremium: Boolean, onClick: () -> Unit) {
|
|||
) {
|
||||
if (!hasPremium) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Lock,
|
||||
imageVector = CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(14.dp)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@ import androidx.compose.foundation.layout.width
|
|||
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.Check
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -67,6 +65,7 @@ import kotlinx.coroutines.flow.StateFlow
|
|||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
// ── ViewModel ──────────────────────────────────────────────────────────────────
|
||||
|
||||
|
|
@ -277,7 +276,7 @@ private fun WheelWaitingContent(
|
|||
Spacer(Modifier.weight(1f))
|
||||
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Check,
|
||||
icon = CloserGlyphs.Check,
|
||||
tint = CloserPalette.PurpleDeep,
|
||||
container = CloserPalette.PurpleMist,
|
||||
size = 82.dp,
|
||||
|
|
@ -342,7 +341,7 @@ private fun WheelRevealContent(
|
|||
verticalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
StatusGlyph(
|
||||
icon = Icons.Filled.Check,
|
||||
icon = CloserGlyphs.Check,
|
||||
tint = CloserPalette.PurpleDeep,
|
||||
container = CloserPalette.PurpleMist,
|
||||
size = 72.dp,
|
||||
|
|
|
|||
|
|
@ -18,9 +18,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.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
|
|
@ -57,6 +54,7 @@ import app.closer.ui.questions.displayCategoryName
|
|||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
import app.closer.ui.components.CloserGlyphs
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
|
@ -72,7 +70,7 @@ fun GameHistoryScreen(
|
|||
title = { Text("Past Games") },
|
||||
navigationIcon = {
|
||||
IconButton(onClick = { onNavigate("back") }) {
|
||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
|
||||
Icon(CloserGlyphs.Back, contentDescription = "Back")
|
||||
}
|
||||
}
|
||||
)
|
||||
|
|
@ -358,7 +356,7 @@ private fun GameHistoryLockedCard(onUnlock: () -> Unit) {
|
|||
color = MaterialTheme.colorScheme.surfaceVariant
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.Lock,
|
||||
CloserGlyphs.Lock,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.padding(16.dp).size(28.dp),
|
||||
tint = MaterialTheme.colorScheme.primary
|
||||
|
|
|
|||
Loading…
Reference in New Issue