Improve onboarding and location UX - #81
Merged
Merged
Conversation
…s tracker Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ts, drop dead field Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…s/BrandGradients Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e, stronger token tests Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ull scale Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…iption Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… present, no edit needed) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…le AppTextStyle mapping - SectionCard passes onClick through to AppCard so the whole card is the tap target; the edit pencil is now a decorative Icon hint, not a second tap target (explicit trailing still wins) - Add IconSize tokens (sm/md/lg); use them for AppButton spinner+leading icon, TextWithLeadingIcon, and SectionCard icons; spinner stroke uses Spacing.xxs - Extract pure textStyleFor(style, typography); toTextStyle delegates to it; AppTextStyleTest asserts the real M3 role mapping against Typography() Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…with centered viewport Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…edium (no crossfade token in Plan 01) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nstalls Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…UiContainer) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rid dp Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace PrimaryText/SecondaryText*/SupportText/BigText/SubtitleText/ SecondaryTextColored with AppText; DefaultButton*/DefaultIconButton with AppButton/AppIconButton (drops all-caps .uppercase()); DefaultCardClickable with AppCard(contentPadding=0). secondaryTextColor -> onSurfaceVariant; tokenize touched off-grid dp. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Text.kt/Buttons.kt/Cards.kt fully unreferenced after the migration -> deleted. NoContentView rebuilt on AppText + onSurfaceVariant (no customColors). Fence guards the 14 removed wrapper symbols. Adds the Plan 13 mapping reference. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Google Maps SDK (MapsDynamite) threw NoClassDefFoundError org.apache.http.ProtocolVersion on startup, crashing the app at the map start destination. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lift FirstSpotPromptCard above the bottom-end FAB via Spacing.fabClearance. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Restore contentWindowInsets=WindowInsets(0) on the app shell Scaffold so the status-bar/nav-bar inset is owned once by each screen's own TopAppBar/nav bar, not counted twice. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
AppCard defaulted to grey surfaceContainer with 1dp elevation (stock-material flat grey). Restore the premium look: surface container color, raisedCard elevation, large corner radius — de-greys every card app-wide. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bring back the loved Jetsnack-style bar (width-lerp selection, sliding outlined-pill indicator, fade/scale uppercase labels) replacing the stock M3 NavigationBar. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
WeatherMetric now inherits LocalContentColor (white on the blue hero, dark on neutral cards); hero Surface sets contentColor=onPrimary. weather_percent_value %% -> % (CMP does not unescape %%). Top bar title is static so the location is shown once via the picker chip. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collapsed/close and mini-FABs now all use the brand gradient (BrandFab gains a size-overridable modifier) instead of mismatched tonal/solid/grey fills. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a controlled FishingTheme object (colorScheme/typography/shapes/customColors + spacing/iconSize/emphasis/elevation) as the single bridge to Material3, and migrate every feature-code MaterialTheme.* accessor (~440 sites across 72 files) to FishingTheme.*. Raw MaterialTheme now lives only in the theme setup and the FishingTheme bridge, so the design system is owned and controllable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lead each catch with a 64dp rounded photo thumbnail (downloadPhotoLinks, coil3 SubcomposeAsyncImage) with a tinted fish-silhouette fallback and a +N count badge; weight becomes a prominent primary-colored metric; amount demoted to an inline caption; date separator pill de-greyed (surfaceContainerHigh, no more deprecated cardColor). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
EmptyStateNoCatches/NoPlaces now show an action button (the onAddCatch/onAddPlace callbacks were defined but unused), so new users get a clear next step. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the flat Surface(primary) with BrandGradients.primaryDiagonal and heightIn(min) so the most-viewed surface carries brand identity and survives large font scales. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pressure/temperature lines plotted near-flat because Vico anchored the Y axis near 0; set CartesianLayerRangeProvider.fixed(minY,maxY) from the data min/max with 15% padding so real variation is visible. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Render the computed-but-hidden CatchStatistics.averageWeight and mostCaughtSpecies as a third StatTile row. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…gh/low Add a transparent Bite Forecast card (pure WeatherUtils heuristic over pressure trend, cloud cover, wind, dawn/dusk) with rating + factor chips; a pressure-trend headline (arrow + delta + Rising/Falling/Steady); a Wind metric making the hero a balanced 2x2 grid (centered cells); named moon phase instead of a percent; and High/Low on daily rows. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bottom bar: Role.Tab + selectableGroup + tab-position stateDescription + real icon contentDescription. FABs: state-aware contentDescription + Role.Button + merged mini-FAB rows. Charts: chartSemantics() summary for TalkBack. Photos: non-null contentDescription. Add AppHaptics (LocalHapticFeedback) wired into the FAB speed-dial. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Catch & Place detail now lead with a hero photo (scrim + overlaid title/weight/ date) when a photo exists, falling back to a branded gradient header instead of the tiny icon. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…layer pass Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Search: per-VM searchQuery StateFlow combined into the paged flow, filtering PagingData client-side (fishType/placeTitle/description for catches; title/ description for places); compact SearchField at the top of each list. Swipe-to-delete: PagedListScaffold gains key + onDelete -> SwipeToDismissBox (left-swipe reveals an error-tinted delete background only while swiping); VMs delete via repo and show an Undo snackbar that re-adds (addNewCatch/addNewMarker). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification