Repository navigation
Commit 1ba8a03
authored
feat(you): build out the You tab's tip card (#618)
* feat(you): build out the You tab's tip card
The tab shipped as a card and two settings rows. This fills in the rest of the
page (node 9276:4634): the copyable public link, Share and Download, and a card
that expands in place — everything below it slides out, the tab bar goes with it,
and the card grows about its own centre into the middle of the screen. Expansion
lives on the page rather than the app-root bill overlay, so the card never leaves
the tab; `Session.presentOwnTipcard` and its test go with the overlay route.
Download exports the code as a real file. Both formats draw the same figure at
1024pt on the app's background: the SVG comes from the shared Kotlin renderer in
`SharedCoreKit` (`KikCode.svg`), the PNG from the `CodeView` the app already
draws, so exporting one and then the other gives you the same code twice. The
file goes to the share sheet, which is where iOS keeps "Save to Files".
Settings picked up the loose ends: Beta Features absorbed the developer-only
Beta Flags screen (one screen, two sections, gated on the version easter egg)
rather than keeping a second entry point that opened an empty list.
* fix(you): present the export share sheet after the picker closes
The download sheet handed the file to `ShareSheet` from its own tap
handler, while the picker was still on screen. `ShareSheet` presents on
the top-most view controller, which at that moment is the picker being
dismissed — so the share sheet had a fair chance of never appearing.
Holds the tapped format and exports on the sheet's `onDismiss` instead,
when there is a settled controller to present on.
* fix(settings): always offer the Beta Features row
The row was hidden when no flag was visible, on the reasoning that it
would open an empty screen. The screen has an empty state for exactly
that case, so the row stays put and `hasVisibleOptions` now only decides
which of the two the screen draws.
* test(you): add Maestro flows for the tip card export and Beta Features
Drives what the unit tests can't reach: the download picker's hand-off to
the system share sheet, which is a UIKit presentation the export path
gets wrong easily, and the Beta Features row's presence in Advanced.
Run one with:
maestro --device <udid> test .maestro/you-tab-download.yaml
* test(settings): add a Maestro flow for the Beta Features empty state
* feat(you): add Change Display Name to My Account (#621)
Node 9277:121893 opens My Account with a Change Display Name row. It lands
straight on the profile-setup name step, which now takes what a saved name
leads to: setup carries on to the tip card, a lone edit returns to the
settings list. The step reads its text from an environment-held state that
setup owns at its sheet root so the photo step can read the name back; a lone
edit has no following step, so it owns that state itself, seeded with the name
already on the profile.
Mirrors the Android row (code-android-app#1299).
* refactor(bill): draw codes from the shared geometry
CodeView carried its own copy of the ring layout, the bit packing, and the
badge, all of which already exist in shared-core and now come back as
CGPaths through SharedCoreKit. Deleting the copy is what keeps a code on
screen, an exported PNG, an exported SVG, and Android drawing one figure
rather than four that happen to agree today.1 parent 8d0cd69 commit 1ba8a03
45 files changed
Lines changed: 1365 additions & 597 deletions
File tree
- .maestro
- Code.xcodeproj
- FlipcashTests
- FlipcashUI
- Sources/FlipcashUI
- Assets/UI.xcassets/icons
- IconBezierCurve.imageset
- IconChainLink.imageset
- IconFileBend.imageset
- IconFileDownload.imageset
- IconSquareBehindSquare.imageset
- Theme
- Views/Bill
- Flipcash
- Core
- Controllers
- Screens
- Main
- Home
- Profile
- You
- Settings
- Session
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
175 | 176 | | |
176 | 177 | | |
177 | 178 | | |
| 179 | + | |
178 | 180 | | |
179 | 181 | | |
180 | 182 | | |
| |||
378 | 380 | | |
379 | 381 | | |
380 | 382 | | |
| 383 | + | |
381 | 384 | | |
382 | 385 | | |
383 | 386 | | |
| |||
506 | 509 | | |
507 | 510 | | |
508 | 511 | | |
| 512 | + | |
509 | 513 | | |
510 | 514 | | |
511 | 515 | | |
| |||
1759 | 1763 | | |
1760 | 1764 | | |
1761 | 1765 | | |
| 1766 | + | |
| 1767 | + | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
1762 | 1774 | | |
1763 | 1775 | | |
1764 | 1776 | | |
| |||
1816 | 1828 | | |
1817 | 1829 | | |
1818 | 1830 | | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
1819 | 1836 | | |
1820 | 1837 | | |
1821 | 1838 | | |
| |||
Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
57 | 64 | | |
58 | 65 | | |
59 | 66 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
53 | 57 | | |
54 | 58 | | |
55 | 59 | | |
56 | | - | |
57 | 60 | | |
58 | 61 | | |
59 | 62 | | |
| |||
86 | 89 | | |
87 | 90 | | |
88 | 91 | | |
89 | | - | |
90 | | - | |
| 92 | + | |
| 93 | + | |
91 | 94 | | |
92 | 95 | | |
93 | 96 | | |
| |||
117 | 120 | | |
118 | 121 | | |
119 | 122 | | |
| 123 | + | |
120 | 124 | | |
121 | 125 | | |
122 | 126 | | |
123 | | - | |
124 | 127 | | |
125 | 128 | | |
126 | 129 | | |
| |||
157 | 160 | | |
158 | 161 | | |
159 | 162 | | |
160 | | - | |
161 | | - | |
| 163 | + | |
| 164 | + | |
162 | 165 | | |
163 | 166 | | |
164 | 167 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
73 | 76 | | |
74 | 77 | | |
75 | 78 | | |
| |||
79 | 82 | | |
80 | 83 | | |
81 | 84 | | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | | - | |
63 | | - | |
| 62 | + | |
| 63 | + | |
64 | 64 | | |
| 65 | + | |
65 | 66 | | |
66 | 67 | | |
67 | 68 | | |
| 69 | + | |
68 | 70 | | |
69 | 71 | | |
70 | 72 | | |
| |||
96 | 98 | | |
97 | 99 | | |
98 | 100 | | |
99 | | - | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
100 | 106 | | |
101 | 107 | | |
102 | 108 | | |
| |||
182 | 188 | | |
183 | 189 | | |
184 | 190 | | |
| 191 | + | |
185 | 192 | | |
186 | 193 | | |
187 | 194 | | |
| |||
0 commit comments