default-apps: Add SMS and Calls handlers conditional to modem being present

This add a small new feature, so that devices with a modem (and thus able to handle x-scheme-handler/tel and x-scheme-handler/sms) can choose their default app.

Why is this needed?

This feature originated from downstream issues at pmOS and mobian, where apps that could handle calls would replace GNOME Calls as the default handler (reports mostly mention KDE connect, but there is an user also reporting problems with libphone-desktop). Although not explicit, the same issue exists for handling SMS. This MR should fix these issues by allowing users to choose their default app in such cases. As a consequence of those, a MR to a downstream fork of Settings was sent. It was suggested to bring it upstream, but that was never completed and I am doing it now.

Does this affect other use-cases?

The approach here is to have the new Calls and SMS rows hidden by default, and only enable them when a modem device is detected. Hopefully, this will avoid annoying those users which do not have a modem available. I would be happy to implement any other approach if it would fit best.

On a device with a modem default-phone
On a device without a modem. It basically looks the same as without this patch 😄 defaults-desktop
Open questions
  • I have split the MR in very small commits and included an additional cleanup commit. I am not sure if the feature commits should be squashed, so that the description can fit the same information as here.
  • I am not sure whether to consider update_modem_apps_visibility a callback or an auxiliary function. I went for the former one, but could change naming and location in file if it should be considered a callback.


Merge request reports