brand(art): wire Date Match A5 (empty + it's-a-match) + Memory Lane A4; add all new art to debug gallery
DateMatches empty -> illustration_date_match_empty; the "It is a match!" modal replaces
the heart-icon circle with illustration_date_match_success (celebration). Memory Lane
empty replaces the 📦 emoji with illustration_memory_lane_capsule. ArtPreviewScreen
(debug) now shows all 12 new illustrations via BrandIllustration so they're verifiable on
both themes without needing empty/match data. Verified live (gallery, dark): A10/A11/A12
tiles render crisp + on-brand; 0 FATAL. (Empty/match states need data not present on the
baseline couple; render path proven via the shared tile.)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
5d74858679
commit
fb4620559b
|
|
@ -63,6 +63,8 @@ import app.closer.domain.model.DateCostLevel
|
|||
import app.closer.domain.model.DateIdea
|
||||
import app.closer.domain.model.DateMatch
|
||||
import app.closer.domain.model.SwipeAction
|
||||
import app.closer.R
|
||||
import app.closer.ui.components.BrandIllustration
|
||||
import app.closer.ui.components.EmptyState
|
||||
import app.closer.ui.components.ErrorState
|
||||
import app.closer.ui.components.LoadingState
|
||||
|
|
@ -539,20 +541,11 @@ private fun MatchOverlay(
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.spacedBy(16.dp)
|
||||
) {
|
||||
Surface(
|
||||
shape = CircleShape,
|
||||
color = closerSoftPinkColor(),
|
||||
modifier = Modifier.size(72.dp)
|
||||
) {
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Favorite,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(36.dp),
|
||||
tint = Color(0xFF9B1B5A)
|
||||
)
|
||||
}
|
||||
}
|
||||
BrandIllustration(
|
||||
res = R.drawable.illustration_date_match_success,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(168.dp)
|
||||
)
|
||||
|
||||
Text(
|
||||
text = "It is a match!",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package app.closer.ui.dates
|
||||
|
||||
import app.closer.R
|
||||
import app.closer.ui.theme.closerCardColor
|
||||
import app.closer.ui.theme.closerBackgroundBrush
|
||||
import app.closer.ui.theme.closerSoftPinkColor
|
||||
|
|
@ -133,6 +134,7 @@ private fun DateMatchesContent(
|
|||
append(state.partnerName ?: "your partner")
|
||||
append(" both love the same one, it shows up here as a match.")
|
||||
},
|
||||
illustrationResId = R.drawable.illustration_date_match_empty,
|
||||
modifier = Modifier.padding(top = 80.dp)
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package app.closer.ui.debug
|
|||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.aspectRatio
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
|
|
@ -24,6 +25,7 @@ import androidx.compose.ui.text.font.FontWeight
|
|||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import app.closer.R
|
||||
import app.closer.ui.components.BrandIllustration
|
||||
import app.closer.ui.components.CelebrationOverlay
|
||||
import app.closer.ui.components.CloserActionButton
|
||||
import app.closer.ui.components.CloserMarkLoader
|
||||
|
|
@ -96,6 +98,33 @@ fun ArtPreviewScreen(onNavigate: (String) -> Unit = {}) {
|
|||
}
|
||||
}
|
||||
|
||||
Text(
|
||||
text = "New brand illustrations",
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
color = MaterialTheme.colorScheme.onSurface,
|
||||
modifier = Modifier.fillMaxWidth().padding(top = 8.dp)
|
||||
)
|
||||
ArtCard("Pairing success (A1)") {
|
||||
BrandIllustration(R.drawable.illustration_pairing_success, null, Modifier.size(200.dp), tile = false)
|
||||
}
|
||||
ArtCard("Connection Challenges header (A3)") {
|
||||
BrandIllustration(
|
||||
R.drawable.illustration_connection_challenges_header, null,
|
||||
Modifier.fillMaxWidth().aspectRatio(16f / 9f)
|
||||
)
|
||||
}
|
||||
ArtCard("Answer history empty (A2)") { BrandIllustration(R.drawable.illustration_answer_history_empty, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Memory Lane capsule (A4)") { BrandIllustration(R.drawable.illustration_memory_lane_capsule, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Date match — empty (A5)") { BrandIllustration(R.drawable.illustration_date_match_empty, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Date match — it's a match (A5)") { BrandIllustration(R.drawable.illustration_date_match_success, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Bucket list empty (A6)") { BrandIllustration(R.drawable.illustration_bucket_list_empty, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Messages empty (A8)") { BrandIllustration(R.drawable.illustration_messages_empty, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Quiet hours (A9)") { BrandIllustration(R.drawable.illustration_quiet_hours, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Past games empty (A10)") { BrandIllustration(R.drawable.illustration_past_games_empty, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Privacy / recovery (A11)") { BrandIllustration(R.drawable.illustration_privacy_recovery, null, Modifier.size(160.dp)) }
|
||||
ArtCard("Account deletion (A12)") { BrandIllustration(R.drawable.illustration_account_deletion_goodbye, null, Modifier.size(160.dp)) }
|
||||
|
||||
CloserActionButton(
|
||||
label = "Play the celebration",
|
||||
onClick = { celebrate = true },
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ import androidx.compose.material3.Button
|
|||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import app.closer.R
|
||||
import app.closer.ui.components.BrandIllustration
|
||||
import app.closer.ui.components.CloserHeartLoader
|
||||
import androidx.compose.material3.DatePicker
|
||||
import androidx.compose.material3.DatePickerDialog
|
||||
|
|
@ -549,7 +551,11 @@ private fun CapsuleListScreen(
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.spacedBy(12.dp)
|
||||
) {
|
||||
Text("📦", style = MaterialTheme.typography.displayMedium)
|
||||
BrandIllustration(
|
||||
res = R.drawable.illustration_memory_lane_capsule,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(150.dp)
|
||||
)
|
||||
Text("No capsules yet", style = MaterialTheme.typography.titleMedium.copy(fontWeight = FontWeight.SemiBold), color = MaterialTheme.colorScheme.onSurface)
|
||||
Text("Write a note to your future selves — it'll stay sealed until the date you choose.", style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, textAlign = TextAlign.Center)
|
||||
Spacer(Modifier.height(8.dp))
|
||||
|
|
|
|||
Loading…
Reference in New Issue