fix(pickers): open the calendar manager in front of the picker, not behind it
All checks were successful
Translations / check (pull_request) Successful in 7s
CI / ci (pull_request) Successful in 11m7s

The event form's calendar picker is a FullScreenPicker — a Compose Dialog,
so it owns its own window and sits above the activity's content whatever the
overlay stack does. Tapping "Missing a calendar?" set the host's flag and
the manager duly slid in underneath the dialog, out of sight: the row looked
dead.

The picker now closes as it hands off. The form stays where it was, one tap
from a picker that re-queries when it opens, so a calendar switched on in
the manager is there on the way back.

The .ics import picker is plain content in the host's overlay stack, where
the ordering fix from the previous commit already puts the manager on top —
that path was never affected.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-26 18:13:16 +02:00
parent 6ccc9f9131
commit b3b2ec9d05

View File

@@ -1125,10 +1125,17 @@ private fun EventEditContent(
viewModel.setCalendar(it)
showCalendarPicker = false
},
// Leaves the form and its picker standing underneath: the manager
// slides over, and a calendar switched on there is in the list on
// the way back (the provider notifies, the flow re-queries).
onManageCalendars = onManageCalendars,
// Close the picker on the way out. It is a Compose Dialog — its own
// window, always above the activity's content — so the manager would
// otherwise open behind it and the tap would look dead. The form
// stays standing underneath, its calendar row one tap from a picker
// that re-queries on open.
onManageCalendars = onManageCalendars?.let { openManager ->
{
showCalendarPicker = false
openManager()
}
},
onDismiss = { showCalendarPicker = false },
)
}