[FR] implement mediarouter ui fallback when there's no system dialog fallback
Understanding MediaRouter1:
- lowest level: MediaRouterService in system_server only aware of RemoteDisplayProvider (private API used for Chromecast full-screen mirroring)
- middle level: android.media.MediaRouter combines the above information with default route (wired/speaker audio with information from AudioManager), bluetooth route (based on AudioManager info, too), miracast routes (based on info from DisplayManager, but only for system apps) and user routes (provided by app), manages selection callbacks and grouping routes
- high level: AndroidX MediaRouter talks with MediaRouteProviderService (such as GMS chromecast :D or others) and adds them as user routes has its own selection logic completely hiding wfd / screen mirroring routes (also registers MediaRouteProviderService to MR2 and adds MR2 routes as MR1 user route (i think) and allows choosing MR2 routes if required for output switcher feature)
MR2 currently has:
- way better system route support than MR1 ever had (but since when?)
- provider services and talking to them / selecting them
- global audio routing (bluetooth vs speaker vs wired headphones) lacks:
- remote display by provider service (but maybe soon?)
would also be nice to have multiple wired devices as multiple system routes, but that doesnt exist, all wired devices are one route (but speaker is another)
https://fonts.google.com/icons?selected=Material+Symbols+Outlined:media_output:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=audio&icon.size=24&icon.color=%23e3e3e3&icon.set=Material+Symbols https://fonts.google.com/icons?selected=Material+Symbols+Outlined:media_bluetooth_on:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=audio&icon.size=24&icon.color=%23e3e3e3&icon.set=Material+Symbols https://fonts.google.com/icons?selected=Material+Symbols+Outlined:mobile_speaker:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=audio&icon.size=24&icon.color=%23e3e3e3&icon.set=Material+Symbols https://fonts.google.com/icons?selected=Material+Symbols+Outlined:headphones:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=audio&icon.size=24&icon.color=%23e3e3e3&icon.set=Material+Symbols https://fonts.google.com/icons?selected=Material+Symbols+Outlined:headset_mic:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=audio&icon.size=24&icon.color=%23e3e3e3&icon.set=Material+Symbols https://fonts.google.com/icons?selected=Material+Symbols+Outlined:usb:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=usb&icon.size=24&icon.color=%23e3e3e3&icon.set=Material+Symbols