feat(learn): search ranks titles first; privacy changes show progress

- The Library's search lists titles starting with what is typed first,
  then titles holding it as a word, then secondary titles, rather than
  by the shelves' recency.
- The offer to make every studyset private is gone: each studyset's
  lock already says and changes it, and new ones are private.
- Making a studyset private or not from its sheet flips the switch as
  soon as the person agrees and says that everything in it is being
  written anew, rather than standing still for a minute.
- Jellyfin's password can be shown while typed.

Whats-New: Searching the library lists title matches first; changing a studyset's privacy shows its progress; Jellyfin's password can be shown.
Whats-New-De: Die Suche in der Bibliothek zeigt Treffer im Titel zuerst; das Ändern der Privatsphäre eines Lernsets zeigt den Fortschritt; das Jellyfin-Passwort lässt sich anzeigen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-10 22:39:10 +01:00
commit 1cc27ef0d6
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -12242,30 +12242,6 @@ abstract class AppLocalizations {
/// **'Sign in with your password on this device: what you add or change here would be private.'**
String get privacyKeysMissing;
/// No description provided for @libraryOfferPrivateTitle.
///
/// In en, this message translates to:
/// **'Make your studysets private?'**
String get libraryOfferPrivateTitle;
/// No description provided for @libraryOfferPrivateBody.
///
/// In en, this message translates to:
/// **'New studysets are private: end-to-end encrypted, so only your devices can read them. Those you made before stay readable by the instance until you make them private too. Copies in the instance\'s backups stay readable until those expire.'**
String get libraryOfferPrivateBody;
/// No description provided for @libraryOfferPrivateAction.
///
/// In en, this message translates to:
/// **'Make all private'**
String get libraryOfferPrivateAction;
/// No description provided for @libraryOfferPrivateLater.
///
/// In en, this message translates to:
/// **'Not now'**
String get libraryOfferPrivateLater;
/// No description provided for @exportReadableNote.
///
/// In en, this message translates to:
@ -12997,6 +12973,18 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Show it formatted'**
String get readerShowFormatted;
/// Below the Private switch of a studyset's sheet while it is being made private
///
/// In en, this message translates to:
/// **'Encrypting everything in it… This can take a minute; you can close this meanwhile.'**
String get studysetSheetMakingPrivate;
/// Below the Private switch of a studyset's sheet while it is being made readable by the instance
///
/// In en, this message translates to:
/// **'Making everything in it readable… This can take a minute; you can close this meanwhile.'**
String get studysetSheetMakingReadable;
}
class _AppLocalizationsDelegate