Add setting to protect a user profile with a PIN (#356)

Allows for setting a per-user profile PIN that must be entered to switch
to the user. The PIN is a sequence of directional buttons, ie D-Pad
left/right/up/down.

This PIN is per device per user per server. The PIN is stored locally
and not sent nor shared with the server. If you forget your PIN, can
still access the app using server credentials which also removes the
PIN.

Additionally, there is another setting to disable automatically sign in.
When enabled (default) the last user is automatically restored, even if
there is a PIN. If disabled, a server & user must always be selected
when opening the app.

Closes #268
Closes #321
This commit is contained in:
damontecres 2025-12-04 14:37:27 -05:00 committed by GitHub
parent a294661520
commit 8ea84b3efe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 845 additions and 30 deletions

View file

@ -331,6 +331,15 @@
<string name="discard_change">Discard changes?</string>
<string name="subtitle_margin">Margin</string>
<string name="verbose_logging">Verbose logging</string>
<string name="enter_pin">Enter PIN</string>
<string name="sign_in_auto">Sign in automatically</string>
<string name="use_server_credentials">Login via server</string>
<string name="press_enter_to_confirm">Press center to confirm</string>
<string name="require_pin_code">Require PIN for profile</string>
<string name="confirm_pin">Confirm PIN</string>
<string name="incorrect">Incorrect</string>
<string name="pin_too_short">PIN must be 4 keys or longer</string>
<string name="will_remove_pin">Will remove PIN</string>
<string name="image_cache_size">Image disk cache size (MB)</string>
<string name="view_options">View options</string>
<string name="columns">Columns</string>
@ -339,6 +348,7 @@
<string name="show_details">Show details</string>
<string name="image_type">Image type</string>
<string-array name="theme_song_volume">
<item>Disabled</item>
<item>Lowest</item>