Instead of having support for a handful of SSO providers on our end,
the user is always redirected to the default SSO URL where they will be
presented with all the providers supported by the homeserver.
This matches the UX of OAuth 2.0 where we can only redirect the user to
the homeserver's UI, and allows us to remove a bunch of code and files.
It seems like the previous checks script didn't report the required
changes due to the conversion of UI files to Blueprint. The new script
complains about this however.
The strings for the choices are too long, they could be ellipsized in
a popover. So we use a new subpage instead, where the strings can be as
long as they need to be.
This removes ComboLoadingRow since it is now unused.
Blueprint files to compile must be added to src/blp-resources.in.
To avoid having to maintain both a list of Blueprint files and the
corresponding list of UI files in the gresource.xml file, we populate
the resource file with meson.
Allows to reuse the same list filtered by membership in several places.
We also use an enum that is a subset of Membership for identifying the
lists, allowing to do exhaustive matches, which will catch when new
variants are added.
It is now basically the new EventRow, since only events have a context
menu.
All the widgets that can be direct children of GtkListItem use the
`room-history-row` class for CSS styling.
The main goal here is to move safety-related settings to a new tab so
we can add more in the future.
Since we do not want more tabs, we have to:
- Move the sessions to a subpage accessible with a button in the
"General" tab. While we are here, we reorder most of this tab.
- Move the settings that were in the "Privacy" section of the "Security"
tab to a new "Safety" tab.
- Rename the "Security" tab to "Encryption", to avoid confusion between
"Security" and "Safety".
This is now an AdwDialog that look like an AlertDialog, but with a
GtkStack to switch between the different stages.
It also supports the OAuth 2.0 cross-signing reset stage provided by the
SDK.
That way we can benefit from improvements upstream.
This also simplifies the camera API in the process by using a trait
instead of a subclassable GObject.
Moving away from the SSO term allows us to transition seemlessly towards
OIDC.
Adding a "Continue" button avoids to surprise the user by opening a URL
without warning.
Fixes SSO identity provider login in the process.