Commit 25debb8
authored
fix(contacts): resolve seed-login race conditions in contacts and payment linking (#831)
* fix(contacts): prevent contacts gate re-appearing after seed login
Three issues caused the contacts permission gate to re-appear in the
send flow after granting permission during seed restore onboarding:
1. performSync() empty-contacts early return did not set hasEverSynced,
so the send flow gate condition still evaluated true.
2. The onboarding ContactPermissionStepContent only granted the OS
permission and proceeded -- it never triggered contactCoordinator.sync().
The send flow then saw no synced contacts and showed the gate again.
3. The Flipcash contacts discovery modal used an imperative currentStep
check inside a filter on contactCoordinator.state, which only evaluated
when contact state changed. If the state was already settled from the
onboarding sync, the modal never fired. Replaced with combine() so
changes to either source trigger re-evaluation.
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
* fix(auth): prevent premature linkForPayment during onboarding
Interactive logins (seed input, deep link, credential picker) set
AuthState.Ready too early because hasCompletedOnboarding() defaults to
true for backward compat on new devices. This triggered onAppInForeground
-- and linkForPaymentIfNeeded -- while permission screens were still up.
Fix: for non-soft logins, always force completedOnboarding to false so
auth routes through Onboarding(PostAccessKey). The permissions flow sets
Ready on completion at the right time. Soft logins (app restart) still
trust the persisted flag.
Additionally, guard linkForPaymentIfNeeded with a Mutex so overlapping
calls from the auth-state observer and ON_RESUME lifecycle cannot race
into duplicate RPCs.
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
---------
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>1 parent 1584e14 commit 25debb8
5 files changed
Lines changed: 46 additions & 25 deletions
File tree
- apps/flipcash
- features/login
- src/main/kotlin/com/flipcash/app/login
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
| 43 | + | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
| |||
64 | 66 | | |
65 | 67 | | |
66 | 68 | | |
| 69 | + | |
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
| |||
446 | 449 | | |
447 | 450 | | |
448 | 451 | | |
| 452 | + | |
| 453 | + | |
449 | 454 | | |
450 | 455 | | |
451 | 456 | | |
452 | 457 | | |
453 | 458 | | |
| 459 | + | |
454 | 460 | | |
455 | 461 | | |
456 | 462 | | |
| |||
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
199 | | - | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
200 | 207 | | |
201 | 208 | | |
202 | 209 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
246 | | - | |
| 246 | + | |
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
| |||
281 | 281 | | |
282 | 282 | | |
283 | 283 | | |
284 | | - | |
| 284 | + | |
285 | 285 | | |
286 | 286 | | |
287 | 287 | | |
| |||
Lines changed: 29 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
211 | 211 | | |
212 | 212 | | |
213 | 213 | | |
| 214 | + | |
| 215 | + | |
214 | 216 | | |
215 | 217 | | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
237 | 244 | | |
238 | 245 | | |
239 | 246 | | |
| |||
343 | 350 | | |
344 | 351 | | |
345 | 352 | | |
346 | | - | |
| 353 | + | |
347 | 354 | | |
348 | 355 | | |
349 | 356 | | |
| |||
0 commit comments