Commit dc23211
committed
sessions: make the launch display authoritative and finish the foreground policy
startSession re-derived the emulator display from the global roles-swapped
flag with a hardcoded DEFAULT_DISPLAY+1, clobbering the per-game display
target handleDualPlay had already resolved, so cross-display sessions got
tracked as same-display and killed by resume cleanup with their input never
forwarded. The launch path write is now authoritative and startSession only
falls back through assignEmulatorDisplayForSessionStart, which routes via
DisplayAffinityHelper for the real secondary display id.
SecondaryHomeActivity.onResume drops the 15s isPackageInForeground poll for
the display rule mirrored from MainActivity: the companion surfacing on the
display the emulator owned means the game left it and the session is over.
Both activities enforce the same invariant on their own display. The
immediate-end policy is scoped to dual-screen devices; single screen keeps
the 15s grace in cleanupStaleSession so quick hop-out-and-back relaunches
still resume the running emulator.
onForegroundChanged reads in-memory hasLiveSession instead of the session
prefs flag that races the async session-start write and lags save sync.
onTaskRemoved treats a null DSM holder as no live session, a persisted
session across a process restart is an orphan and must not block the
bottom-screen release.1 parent 9b8970a commit dc23211
5 files changed
Lines changed: 30 additions & 24 deletions
File tree
- app/src/main/kotlin/com/nendo/argosy
- data/emulator
- hardware
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2225 | 2225 | | |
2226 | 2226 | | |
2227 | 2227 | | |
| 2228 | + | |
| 2229 | + | |
| 2230 | + | |
| 2231 | + | |
| 2232 | + | |
| 2233 | + | |
2228 | 2234 | | |
2229 | 2235 | | |
2230 | 2236 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| 88 | + | |
88 | 89 | | |
89 | 90 | | |
90 | 91 | | |
| |||
620 | 621 | | |
621 | 622 | | |
622 | 623 | | |
623 | | - | |
624 | | - | |
625 | | - | |
626 | | - | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
627 | 630 | | |
628 | 631 | | |
629 | 632 | | |
| |||
632 | 635 | | |
633 | 636 | | |
634 | 637 | | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
635 | 644 | | |
636 | 645 | | |
637 | 646 | | |
| |||
Lines changed: 1 addition & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
448 | 448 | | |
449 | 449 | | |
450 | 450 | | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
| 451 | + | |
457 | 452 | | |
458 | 453 | | |
459 | 454 | | |
| |||
Lines changed: 1 addition & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
| |||
69 | 68 | | |
70 | 69 | | |
71 | 70 | | |
72 | | - | |
73 | | - | |
| 71 | + | |
74 | 72 | | |
75 | 73 | | |
76 | 74 | | |
| |||
Lines changed: 9 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
300 | 298 | | |
301 | 299 | | |
302 | 300 | | |
| |||
384 | 382 | | |
385 | 383 | | |
386 | 384 | | |
387 | | - | |
| 385 | + | |
388 | 386 | | |
389 | 387 | | |
390 | 388 | | |
| |||
0 commit comments