Commit graph

18 commits

Author SHA1 Message Date
Felipe Borges
294156c0f9 Drop most uses of deprecated gtk_style_context_add/remove_class
GtkStyleContext will be deprecated in gtk 4.10.
https://docs.gtk.org/gtk4/class.StyleContext.html

This preserves code blocks where additional GtkStyleContext operations
were used, such as gtk_style_context_save/restore.
2023-01-05 18:55:51 +00:00
Andy Chi
e0f22a04bb user-account: Return duplicate notification when the finger is exist 2022-10-20 10:09:04 +00:00
Felipe Borges
6b076a7765 user-accounts: Disconnect fingerprint reading devices when closing dialog
Otherwise when users close and reopen the window they will face a
“Failed to claim fingerprint device Synoptics Sensors: the device is
already claimed by another process” error message.

Fixes #1983
2022-09-22 14:32:33 +02:00
Felipe Borges
0019b0869a user-accounts: Reinstate fingerprint dialog
The port of the Fingerprint dialog to gtk4 wasn't completed.
Now the dialog is expected to function again.
2022-02-28 15:47:42 +00:00
Felipe Borges
7f8e90a966 user-accounts: Port to gtk4/libadwaita implementing the new design
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/raw/master/users/users.png
2022-02-08 13:29:56 +00:00
Marco Trevisan (Treviño)
b031bb5758 fingerprint-dialog: Use auto-cleanup to manage removal of dialog states
For sake of simplicity we were just releasing a state once we got a
callback, however during the handling of the callback itself we are
still technically under that scenario, so we should release a state only
after the callback is completed.

This is more relevant now since when converting errors to human readable
strings we check the state we are in, and so we need to ensure that this
state is preserved until this point.
2020-12-11 17:46:38 +00:00
Marco Trevisan (Treviño)
ff7e4d6ebc fingerprint-dialog: Use exact comparision on all the dbus errors 2020-12-11 17:46:38 +00:00
Marco Trevisan (Treviño)
01fdfaccf8 fingerprint-dialog: Use more user friendly errors when showing them to user
Translate dbus errors into something that can be translated to user,
while leave to warnings all the details to help debugging.

Fixes: #1200
2020-12-11 17:46:38 +00:00
Marco Trevisan (Treviño)
d4745fdac1 fingerprint-dialog: Handle the 'enroll-disconnected' error properly
In case the device got disconnected while enrolling we should not try
to stop or unclaim it, but indeed show an error related to the device
not being available.

To get this we only have to remove the enrolling and claimed states now
2020-12-11 17:46:38 +00:00
Marco Trevisan (Treviño)
a0f028671c fingerprint-dialog: Add generic dialog actions state tracking
Use flags to track the dialog actions state so that we can:
 1. Remove multiple flags to track specific states
 2. Prevent starting again an action we're still waiting for completion
 3. Handle global visual elements (such as the busy spinner) correctly

Specifically point 3. allows to ensure that when doing concurrent
actions such as prints listing and device claiming, we will stop the
spinner only once all the operations are over.
2020-12-11 17:46:38 +00:00
Marco Trevisan (Treviño)
ae23cea4d1 fingerprint-dialog: Properly handle claiming errors if we're already claiming
We were a bit too permissive in handling the AlreadyInUse error during
claim, as we assumed it was always us causing it instead of properly
handing the case a device was already claimed by another caller.

So to ensure this is the case we need to avoid multiple calls to claim
until we've finished one.

Unfortunately we can't rely on a cancellable here as we may end up
cancelling the request that succeeded and we'll only get an
AlreadyClaimed error without know if it was us succeeding.

Fixes: #1201
2020-12-11 17:46:38 +00:00
Marco Trevisan (Treviño)
269feb1940 fingerprint-dialog: Always call EnrollStop on enrollment completed
Even if we got an error we need to always call EnrollStop so don't unset
enrolling_finger status until we're really done with it.
2020-12-11 17:46:38 +00:00
Marco Trevisan (Treviño)
5a7b9e09bf fingerprint-dialog: Don't crash when showing an error during release
We unset the local device early when releasing it, so use the one we
get the callback instead of relying in the private instance that has
been already cleared.
2020-12-11 17:46:38 +00:00
Benjamin Berg
64686cfee3 user-accounts: Consistently return translated strings for fprint helper
Always return translated strings from the fprint translation helper
header. This makes things more consistent overall.
2020-10-13 09:31:00 +00:00
Benjamin Berg
e80b4b5f58 user-accounts: Fix free of const string due to incorrect translations
A duplicatend and translated string could be passed to gettext another
time. If that string can be translated, then a static string would be
returned rather than the const one, causing an invalid free.

Fixes: #1149
2020-10-13 09:31:00 +00:00
Yuri Chornoivan
e7050ab6f4 Fix minor typos 2020-07-20 10:38:09 +03:00
Marco Trevisan (Treviño)
29add4ed51 fingerprint-dialog: Wiggle the enroll status label on retry events
When a retry event happens we need to wiggle the label, unfortunately we
can't just use translate operations via CSS so we need to simulate it using
padding.

Also we have to manually reset the retry class once the animation is done
otherwise gtk won't re-animate again once the class is added (in the same
paint cycle).
2020-06-26 01:54:04 +00:00
Marco Trevisan (Treviño)
d517a092aa user-accounts: Implement new designed fingerprint dialog
Implement the new designed interface for fingerprint enrollment, so that the
dialog is now based on a stack of views:
 - A list of devices to choose (shown only if multiple are available)
 - A gallery of enrolled prints available where manage them
 - An enrollment progress view when enrolling a new finger

Move part of the logic into a new FingerprintManager (to manage gdbus proxies
generated via gdbus-codegen) that is created when configuring the current
user and that tracks the devices states, while move most of the UI into a new
CcFingerprintDialog that does all the operations in async way.

Due to fprintd lack of APIs, there are few features missing, compared to
the final design (none is a regression):
 - Identify the finger when the enroll dialog is visible
 - Delete a single fingerprint
 - Highlight the finger when the sensor is touched during enrollment
 - Add customized labels to fingerprints
 - Devices hotpluging

However most of the code has been written considering these, and so they could
be easily implemented in future re-iterations once newer APIs are defined for
such bits.

Closes https://gitlab.gnome.org/Teams/Design/settings-mockups/-/issues/18
2020-06-26 01:54:04 +00:00