Shortcut Helper - Only start Activity after shortcuts have been fetched

+ Only starts activity when we have fetched all shortcuts. This is
  because for the "current app" shortcuts, WindowManager returns
  the shortcuts for the currently focused app. We want the shortcuts
  of the focused app, before shortcut helper started. If we fetch
  shortcuts after shortcut helper started, WindowManager will return
  shortcuts of the shortcut helper instead of the app.
+ Changes repository to return a list of all shortcut categories instead
  of returning each category individually. This ensures we can ensure
  processing only continues when all have been fetched
+ Change categories flow to be a StateFlow, to make sure an existing
  value is replayed to new subscribers. This ensures we don't fetch
  new shortcuts after the helper has been shown

Flag: com.android.systemui.keyboard_shortcut_helper_rewrite
Test: Unit tests in this CL
Test: Manually
Fixes: 352500619
Change-Id: Id32a4248a732c26399539fd9c9dd66717d0acec4
9 files changed