`queryCalendarEvents` forwarded the `MutableStateFlow` it accumulates
the provider results in, so the initial empty value was the first thing
collectors saw - before any provider had reported. Callers in the
launcher take that first result (`CalendarPartProvider` uses `.first()`)
and cannot tell it apart from "no events", so the agenda stayed empty
and its part never showed up.
`CalendarRepository.findMany`'s 500 ms debounce used to hide this: the
placeholder was superseded by the real list within the debounce window,
which is exactly why the agenda only ever appeared half a second late.
Keep the accumulator null until the first provider reports, and let
`findMany` - a one-shot query for the clock and calendar widgets - wait
for all providers (`awaitAllProviders`) so it never hands out a partial
list. The search path keeps streaming results as providers report, now
without an empty flash.
`CalendarRepository.findMany` holds every result back by 500 ms, which
was added for the calendar widget to collapse bursts of plugin and
permission changes. `debounce` delays the first result too, so the
agenda part - whose ranking stays 0 until the first result arrives -
only appeared half a second after the clock and the other parts.
The agenda is re-queried on a calendar change or every 15 minutes, so
it does not need the debounce. Make the delay a parameter (still 500 ms
by default) and pass 0 from `CalendarPartProvider`.
* Hide private profile space apps from search when hide private space option is enabled, and add a search action for locking and unlocking the private space.
* Filter private space apps from favorites while hidden
* Initial approach
* Add a new setting so users can choose the amount of widgets screens
* Extract indexed string
* Remove unnecessary Migration6
* Make HomeComponent use the Default widget id
* Add defaultParentId to initial widgets for fresh launch
* Fix migration path
* single tag for favorites
* fixing
* don't need this one
* cleanup
* new features - select for favorites/tags customization
* bug fix for tags
* bug fix to show pinned tags
* make sure pinned tag works on load
* better way to work with viewmodel (learning as i go)
* back to working state.. can be improved
* adding some comments
* cleanup
---------
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>