Commit bc7f507
committed
fix(android): Fix keyboard hiding "done" button
Major changes:
- Add Done FAB to AppBottomBar when editing (shows checkmark button)
- Lift editing state from FileViewScreen to MainActivity via callback
- FileViewScreen notifies parent of editing state changes
- Wrap entire UI in Box with imePadding() so bottom bar moves with keyboard
- Add adjustResize to manifest for keyboard handling
- Remove nested Scaffold from FileViewScreen (use parent's bottom bar)
- Add inline formatting support (bold, italic, code, strikethrough, links)
- Fix content corruption when switching between editable blocks
Architecture:
- AppBottomBar accepts isEditing and onDoneClick parameters
- FileViewScreen exposes onEditingChanged callback with save function
- MainActivity tracks editing state and passes save callback to bottom bar
- Enter key now inserts newlines; use Done button to finish editing
Prompts:
- "the 'done' button gets hidden by the keyboard because it's bottom
right, how do other apps have these floating buttons without ending
up covering the thing being worked on or being covered up by the
keyboard"
- "top-right: yuck. smaller - not really a fix. inline, maybe. or what
a toolbar at the bottom stuck to the top of the keyboard. we are
likely to add more stuff like bold, italic etc"
- "@shutter_20264-13_08.png - missed!"
- "still way off. is it because it's on top of the home bar in the app?"
- "so what is our current bar with the home button and hamburger? that
should move with the keyboard too and probably include the done button"
- "toolbar looks tidy and works, but still hidden by keyboard (doesn't
move up at all)"
- "Two things, 1, this has way too much padding above the keyboard, and
2 this can cover up the textbox the user is editing. ideas?"
- "fab when the edited block is near top, if I pick a block near the
bottom it scrolls the content up (which is good, though not quite far
enough), but the bottombar goes way over"
- "that's worse i've reverted that. it is supposed to move up with the
keyboard, but not fly off the top of it"
- "nope" (with screenshot showing gap still present)
- "that's the wrong answer, the tick should still be there, keyboard or
no, and you haven't fixed it. i'm convinced you are using the wrong
pattern here entirely. think about the proper kotlin/android UI design
pattern for things that stick to the bottom keyboard or not. research
if needed"
- (provided link to Android BottomAppBar docs)
- "aaaaaaaaaand now we are back to it being stuck at the bottom, do you
know what you are doing? do you need to think harder?"
- "no change, keyboard still covers it. will @run-apk-adb-emulator.sh
definitely get the updated manifest?"
- "omg you are so bad at following your instructions. read the current
commit message, and add in all the prompts you couldn't be arsed to add"
- "include what I just said, stop leaving gaps"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
https://developer.android.com/develop/ui/compose/components/app-bars#bottom
This patch moves the Done button into the existing bottom nav bar (with
the hamburger & home button), and makes the bar move up to stay visible
when the keyboard slides up.1 parent ea71fa2 commit bc7f507
4 files changed
Lines changed: 99 additions & 76 deletions
File tree
- android/app/src/main
- java/co/rustworkshop/markdownneuraxis
- ui
- components
- screens
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
Lines changed: 30 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
| |||
59 | 62 | | |
60 | 63 | | |
61 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
62 | 69 | | |
63 | 70 | | |
64 | 71 | | |
| |||
67 | 74 | | |
68 | 75 | | |
69 | 76 | | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
84 | 92 | | |
85 | 93 | | |
86 | 94 | | |
| |||
110 | 118 | | |
111 | 119 | | |
112 | 120 | | |
113 | | - | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
114 | 124 | | |
115 | 125 | | |
116 | 126 | | |
| |||
159 | 169 | | |
160 | 170 | | |
161 | 171 | | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
162 | 176 | | |
163 | 177 | | |
164 | 178 | | |
| |||
177 | 191 | | |
178 | 192 | | |
179 | 193 | | |
| 194 | + | |
180 | 195 | | |
181 | 196 | | |
Lines changed: 25 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
13 | 16 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
22 | 38 | | |
Lines changed: 43 additions & 52 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | 9 | | |
12 | 10 | | |
13 | 11 | | |
| |||
76 | 74 | | |
77 | 75 | | |
78 | 76 | | |
| 77 | + | |
79 | 78 | | |
80 | 79 | | |
81 | 80 | | |
| |||
137 | 136 | | |
138 | 137 | | |
139 | 138 | | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
140 | 144 | | |
141 | 145 | | |
142 | 146 | | |
| |||
179 | 183 | | |
180 | 184 | | |
181 | 185 | | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
232 | 223 | | |
233 | 224 | | |
234 | 225 | | |
| |||
0 commit comments