Skip to content

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 Teams/Design/settings-mockups#18


This MR is based on !727 (merged) as that is supposed to land first in order to be cherry-picked to stable branches, but let me know if you prefer to squash those commits here to make reviewing easier.

Given that having a fingerprint device that is supported by fprintd these days isn't still too common, and to make testing of this easier, I've written a small ugly tool (fprintd-mock-runner) that you can use to simulate fprintd events interactively so that this interface can be tested even with no devices or system daemons.

Here's some screenshots / cast of the result:

image

image

image

gcc-fingerprint-panel

Enrollment process:

gcc-fingerprint-enroll

@snwh how would you do the design review?

Edited by Marco Trevisan

Merge request reports