docs(readme): refresh daily question screenshots
This commit is contained in:
parent
53a821a80d
commit
b47302d6b7
18
README.md
18
README.md
|
|
@ -50,18 +50,22 @@ answer honestly -> reveal together -> keep the conversation going
|
||||||
|
|
||||||
<h2 align="center">Screenshots</h2>
|
<h2 align="center">Screenshots</h2>
|
||||||
|
|
||||||
Fresh Android dark-mode captures from the current emulator build.
|
Fresh Android captures from the current emulator build.
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><strong>Ready</strong></td>
|
<td align="center"><strong>Ready · dark</strong></td>
|
||||||
<td align="center"><strong>Your turn</strong></td>
|
<td align="center"><strong>Ready · light</strong></td>
|
||||||
<td align="center"><strong>Reveal ready</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>
|
||||||
<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-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-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-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-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-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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -183,7 +183,13 @@ class MainActivity : AppCompatActivity() {
|
||||||
onUnlocked = { sessionVerified = true }
|
onUnlocked = { sessionVerified = true }
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
|
val debugStartDestination = if (BuildConfig.DEBUG) {
|
||||||
|
intent.getStringExtra("debug_start_route")?.takeIf { it.isNotBlank() }
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
AppNavigation(
|
AppNavigation(
|
||||||
|
startDestination = debugStartDestination ?: AppRoute.ONBOARDING,
|
||||||
pendingDeepLink = pendingDeepLink.value,
|
pendingDeepLink = pendingDeepLink.value,
|
||||||
onDeepLinkConsumed = { pendingDeepLink.value = null }
|
onDeepLinkConsumed = { pendingDeepLink.value = null }
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,12 @@ fun AppNavigation(
|
||||||
val currentRoute = navBackStackEntry?.destination?.route
|
val currentRoute = navBackStackEntry?.destination?.route
|
||||||
// Debug paired-home preview shows the real bottom nav too, so the menu stays anchored
|
// 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).
|
// 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
|
val shellTitle = currentRoute
|
||||||
?.takeIf { it in shellBackRoutes }
|
?.takeIf { it in shellBackRoutes }
|
||||||
?.let(AppRoute::titleFor)
|
?.let(AppRoute::titleFor)
|
||||||
|
|
@ -609,6 +614,24 @@ fun AppNavigation(
|
||||||
composable(route = AppRoute.PAIRED_HOME_PREVIEW) {
|
composable(route = AppRoute.PAIRED_HOME_PREVIEW) {
|
||||||
app.closer.ui.home.PairedHomePreviewScreen(onNavigate = navigateRoute)
|
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
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,9 @@ object AppRoute {
|
||||||
const val ACTIVITY = "activity"
|
const val ACTIVITY = "activity"
|
||||||
const val ART_PREVIEW = "art_preview"
|
const val ART_PREVIEW = "art_preview"
|
||||||
const val PAIRED_HOME_PREVIEW = "paired_home_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}"
|
const val PAIRING_SUCCESS = "pairing_success/{coupleId}"
|
||||||
|
|
||||||
fun pairingSuccess(coupleId: String) = "pairing_success/$coupleId"
|
fun pairingSuccess(coupleId: String) = "pairing_success/$coupleId"
|
||||||
|
|
|
||||||
|
|
@ -1738,7 +1738,10 @@ fun HomeScreenPreview() {
|
||||||
* Reachable from Settings → "Paired home (debug)" in debug builds only.
|
* Reachable from Settings → "Paired home (debug)" in debug builds only.
|
||||||
*/
|
*/
|
||||||
@Composable
|
@Composable
|
||||||
fun PairedHomePreviewScreen(onNavigate: (String) -> Unit = {}) {
|
fun PairedHomePreviewScreen(
|
||||||
|
dailyQuestionState: DailyQuestionState = DailyQuestionState.PARTNER_ANSWERED_USER_PENDING,
|
||||||
|
onNavigate: (String) -> Unit = {}
|
||||||
|
) {
|
||||||
val demoState = HomeUiState(
|
val demoState = HomeUiState(
|
||||||
isLoading = false,
|
isLoading = false,
|
||||||
isPaired = true,
|
isPaired = true,
|
||||||
|
|
@ -1752,18 +1755,11 @@ fun PairedHomePreviewScreen(onNavigate: (String) -> Unit = {}) {
|
||||||
category = "emotional_intimacy",
|
category = "emotional_intimacy",
|
||||||
depthLevel = 2
|
depthLevel = 2
|
||||||
),
|
),
|
||||||
dailyQuestionState = DailyQuestionState.PARTNER_ANSWERED_USER_PENDING,
|
dailyQuestionState = dailyQuestionState,
|
||||||
hasPartnerAnsweredToday = true,
|
hasPartnerAnsweredToday = dailyQuestionState != DailyQuestionState.UNANSWERED,
|
||||||
partnerAnsweredQuestionId = "demo",
|
partnerAnsweredQuestionId = if (dailyQuestionState == DailyQuestionState.UNANSWERED) null else "demo",
|
||||||
answerStats = HomeAnswerStats(total = 24, revealed = 18, private = 6),
|
answerStats = HomeAnswerStats(total = 24, revealed = 18, private = 6),
|
||||||
primaryAction = HomeAction(
|
primaryAction = previewDailyQuestionAction(dailyQuestionState),
|
||||||
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
|
|
||||||
),
|
|
||||||
secondaryActions = listOf(
|
secondaryActions = listOf(
|
||||||
HomeAction(
|
HomeAction(
|
||||||
eyebrow = "Keep playing",
|
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
|
@Composable
|
||||||
internal fun StreakMilestoneDialog(
|
internal fun StreakMilestoneDialog(
|
||||||
milestone: Int,
|
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 |
Loading…
Reference in New Issue