docs(readme): refresh daily question screenshots

This commit is contained in:
null 2026-07-08 14:53:12 -05:00
parent 53a821a80d
commit b47302d6b7
9 changed files with 96 additions and 20 deletions

View File

@ -50,18 +50,22 @@ answer honestly -> reveal together -> keep the conversation going
<h2 align="center">Screenshots</h2>
Fresh Android dark-mode captures from the current emulator build.
Fresh Android captures from the current emulator build.
<table>
<tr>
<td align="center"><strong>Ready</strong></td>
<td align="center"><strong>Your turn</strong></td>
<td align="center"><strong>Reveal ready</strong></td>
<td align="center"><strong>Ready · dark</strong></td>
<td align="center"><strong>Ready · light</strong></td>
<td align="center"><strong>Your turn · dark</strong></td>
<td align="center"><strong>Reveal · dark</strong></td>
<td align="center"><strong>Reveal · light</strong></td>
</tr>
<tr>
<td><img src="docs/screenshots/readme/home-daily-ready-dark.png" alt="Home screen with the daily question ready to answer in dark mode" width="220" /></td>
<td><img src="docs/screenshots/readme/home-daily-your-turn-dark.png" alt="Home screen after the partner answered and it is your turn in dark mode" width="220" /></td>
<td><img src="docs/screenshots/readme/home-daily-reveal-dark.png" alt="Home screen with the daily question reveal ready in dark mode" width="220" /></td>
<td><img src="docs/screenshots/readme/home-daily-ready-dark.png" alt="Home screen with the daily question ready to answer in dark mode" width="160" /></td>
<td><img src="docs/screenshots/readme/home-daily-ready-light.png" alt="Home screen with the daily question ready to answer in light mode" width="160" /></td>
<td><img src="docs/screenshots/readme/home-daily-your-turn-dark.png" alt="Home screen after the partner answered and it is your turn in dark mode" width="160" /></td>
<td><img src="docs/screenshots/readme/home-daily-reveal-dark.png" alt="Home screen with the daily question reveal ready in dark mode" width="160" /></td>
<td><img src="docs/screenshots/readme/home-daily-reveal-light.png" alt="Home screen with the daily question reveal ready in light mode" width="160" /></td>
</tr>
</table>

View File

@ -183,7 +183,13 @@ class MainActivity : AppCompatActivity() {
onUnlocked = { sessionVerified = true }
)
} else {
val debugStartDestination = if (BuildConfig.DEBUG) {
intent.getStringExtra("debug_start_route")?.takeIf { it.isNotBlank() }
} else {
null
}
AppNavigation(
startDestination = debugStartDestination ?: AppRoute.ONBOARDING,
pendingDeepLink = pendingDeepLink.value,
onDeepLinkConsumed = { pendingDeepLink.value = null }
)

View File

@ -101,7 +101,12 @@ fun AppNavigation(
val currentRoute = navBackStackEntry?.destination?.route
// Debug paired-home preview shows the real bottom nav too, so the menu stays anchored
// exactly as it does on the live paired Home (which is the HOME tab route).
val bottomRoutes = AppRoute.topLevelRoutes + AppRoute.PAIRED_HOME_PREVIEW
val bottomRoutes = AppRoute.topLevelRoutes + listOf(
AppRoute.PAIRED_HOME_PREVIEW,
AppRoute.PAIRED_HOME_READY_PREVIEW,
AppRoute.PAIRED_HOME_YOUR_TURN_PREVIEW,
AppRoute.PAIRED_HOME_REVEAL_PREVIEW
)
val shellTitle = currentRoute
?.takeIf { it in shellBackRoutes }
?.let(AppRoute::titleFor)
@ -609,6 +614,24 @@ fun AppNavigation(
composable(route = AppRoute.PAIRED_HOME_PREVIEW) {
app.closer.ui.home.PairedHomePreviewScreen(onNavigate = navigateRoute)
}
composable(route = AppRoute.PAIRED_HOME_READY_PREVIEW) {
app.closer.ui.home.PairedHomePreviewScreen(
dailyQuestionState = app.closer.ui.home.DailyQuestionState.UNANSWERED,
onNavigate = navigateRoute
)
}
composable(route = AppRoute.PAIRED_HOME_YOUR_TURN_PREVIEW) {
app.closer.ui.home.PairedHomePreviewScreen(
dailyQuestionState = app.closer.ui.home.DailyQuestionState.PARTNER_ANSWERED_USER_PENDING,
onNavigate = navigateRoute
)
}
composable(route = AppRoute.PAIRED_HOME_REVEAL_PREVIEW) {
app.closer.ui.home.PairedHomePreviewScreen(
dailyQuestionState = app.closer.ui.home.DailyQuestionState.BOTH_ANSWERED,
onNavigate = navigateRoute
)
}
}
}
}

View File

@ -68,6 +68,9 @@ object AppRoute {
const val ACTIVITY = "activity"
const val ART_PREVIEW = "art_preview"
const val PAIRED_HOME_PREVIEW = "paired_home_preview"
const val PAIRED_HOME_READY_PREVIEW = "paired_home_preview_ready"
const val PAIRED_HOME_YOUR_TURN_PREVIEW = "paired_home_preview_your_turn"
const val PAIRED_HOME_REVEAL_PREVIEW = "paired_home_preview_reveal"
const val PAIRING_SUCCESS = "pairing_success/{coupleId}"
fun pairingSuccess(coupleId: String) = "pairing_success/$coupleId"

View File

@ -1738,7 +1738,10 @@ fun HomeScreenPreview() {
* Reachable from Settings "Paired home (debug)" in debug builds only.
*/
@Composable
fun PairedHomePreviewScreen(onNavigate: (String) -> Unit = {}) {
fun PairedHomePreviewScreen(
dailyQuestionState: DailyQuestionState = DailyQuestionState.PARTNER_ANSWERED_USER_PENDING,
onNavigate: (String) -> Unit = {}
) {
val demoState = HomeUiState(
isLoading = false,
isPaired = true,
@ -1752,18 +1755,11 @@ fun PairedHomePreviewScreen(onNavigate: (String) -> Unit = {}) {
category = "emotional_intimacy",
depthLevel = 2
),
dailyQuestionState = DailyQuestionState.PARTNER_ANSWERED_USER_PENDING,
hasPartnerAnsweredToday = true,
partnerAnsweredQuestionId = "demo",
dailyQuestionState = dailyQuestionState,
hasPartnerAnsweredToday = dailyQuestionState != DailyQuestionState.UNANSWERED,
partnerAnsweredQuestionId = if (dailyQuestionState == DailyQuestionState.UNANSWERED) null else "demo",
answerStats = HomeAnswerStats(total = 24, revealed = 18, private = 6),
primaryAction = HomeAction(
eyebrow = "Tonight",
title = "Sofia answered. Your turn.",
body = "She shared what's on her heart tonight — open the question and answer back.",
cta = "Answer now",
target = HomeActionTarget.DailyQuestion,
tone = HomeActionTone.Daily
),
primaryAction = previewDailyQuestionAction(dailyQuestionState),
secondaryActions = listOf(
HomeAction(
eyebrow = "Keep playing",
@ -1826,6 +1822,50 @@ fun PairedHomePreviewScreen(onNavigate: (String) -> Unit = {}) {
}
}
private fun previewDailyQuestionAction(state: DailyQuestionState): HomeAction =
when (state) {
DailyQuestionState.UNANSWERED -> HomeAction(
eyebrow = "Tonight",
title = "Tonight's question is ready.",
body = "What's something I did recently that made you feel loved?",
cta = "Answer now",
target = HomeActionTarget.DailyQuestion,
tone = HomeActionTone.Daily
)
DailyQuestionState.PARTNER_ANSWERED_USER_PENDING -> HomeAction(
eyebrow = "Tonight",
title = "Sofia answered. Your turn.",
body = "She shared what's on her heart tonight — open the question and answer back.",
cta = "Answer now",
target = HomeActionTarget.DailyQuestion,
tone = HomeActionTone.Daily
)
DailyQuestionState.USER_ANSWERED_PARTNER_PENDING -> HomeAction(
eyebrow = "Tonight",
title = "Your answer is tucked away.",
body = "Sofia will be able to reveal it once she answers too.",
cta = "Send a nudge",
target = HomeActionTarget.DailyQuestion,
tone = HomeActionTone.Daily
)
DailyQuestionState.BOTH_ANSWERED -> HomeAction(
eyebrow = "Reveal ready",
title = "You're both ready.",
body = "Open tonight's answer together and keep the conversation going.",
cta = "Reveal together",
target = HomeActionTarget.DailyQuestion,
tone = HomeActionTone.Daily
)
DailyQuestionState.REVEALED -> HomeAction(
eyebrow = "Revealed",
title = "Tonight's answer is open.",
body = "Revisit what you both shared, then keep the thread alive.",
cta = "Continue",
target = HomeActionTarget.DailyQuestion,
tone = HomeActionTone.Daily
)
}
@Composable
internal fun StreakMilestoneDialog(
milestone: Int,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 KiB

After

Width:  |  Height:  |  Size: 900 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 807 KiB

After

Width:  |  Height:  |  Size: 896 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 KiB