feat(app): an authenticator's key copied, marked sensitive, and its code six digits
A phone without a camera whose authenticator doesn't open otpauth: had no way but typing the key. It is copied again, the key alone (ADR 0017 amended, the developer's decision of 3 Nov 2026): on Android through each app's SensitiveClipboard.kt, marked EXTRA_IS_SENSITIVE, so Gboard and the system show no preview and keep it out of their histories; elsewhere through Flutter's clipboard. Emptied 60 seconds later if the clipboard still holds it. The recovery phrase and codes stay never copied. The code's field counted "/7", taking an optional space for a seventh character: it now takes six digits alone, a pasted space dropped, and counts nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
55fc245859
commit
8c70ad98a1
5 changed files with 470 additions and 36 deletions
|
|
@ -126,6 +126,7 @@
|
|||
"passwordAuthenticatorTitle": "Authenticator einrichten",
|
||||
"passwordAuthenticatorIntro": "Jede Anmeldung braucht einen Code aus einer Authenticator-App wie Aegis, 2FAS oder Proton Authenticator. Scanne diesen Code damit oder tippe den Schlüssel ein.",
|
||||
"passwordAuthenticatorKey": "Schlüssel",
|
||||
"passwordAuthenticatorKeyCopied": "Schlüssel kopiert. In einer Minute wird er aus der Zwischenablage entfernt.",
|
||||
"passwordAuthenticatorOpen": "In deiner Authenticator-App öffnen",
|
||||
"passwordAuthenticatorNoApp": "Keine App auf diesem Gerät öffnet ihn. Scanne den Code oder tippe den Schlüssel ein.",
|
||||
"passwordAuthenticatorCodeIntro": "Gib dann den Code ein, den sie zeigt.",
|
||||
|
|
|
|||
|
|
@ -413,6 +413,10 @@
|
|||
"passwordAuthenticatorTitle": "Set up an authenticator",
|
||||
"passwordAuthenticatorIntro": "Every sign-in takes a code from an authenticator app, such as Aegis, 2FAS or Proton Authenticator. Scan this code with it, or type in the key.",
|
||||
"passwordAuthenticatorKey": "Key",
|
||||
"passwordAuthenticatorKeyCopied": "Key copied. It's taken off the clipboard again in a minute.",
|
||||
"@passwordAuthenticatorKeyCopied": {
|
||||
"description": "After the authenticator's key was copied during its setup; the app empties the clipboard 60 seconds later."
|
||||
},
|
||||
"passwordAuthenticatorOpen": "Open in your authenticator app",
|
||||
"passwordAuthenticatorNoApp": "No app on this device opens it. Scan the code or type in the key.",
|
||||
"passwordAuthenticatorCodeIntro": "Then enter the code it shows.",
|
||||
|
|
|
|||
|
|
@ -859,6 +859,12 @@ abstract class HalkyonAppLocalizations {
|
|||
/// **'Key'**
|
||||
String get passwordAuthenticatorKey;
|
||||
|
||||
/// After the authenticator's key was copied during its setup; the app empties the clipboard 60 seconds later.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Key copied. It\'s taken off the clipboard again in a minute.'**
|
||||
String get passwordAuthenticatorKeyCopied;
|
||||
|
||||
/// No description provided for @passwordAuthenticatorOpen.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
|
|
@ -485,6 +485,10 @@ class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
|
|||
@override
|
||||
String get passwordAuthenticatorKey => 'Schlüssel';
|
||||
|
||||
@override
|
||||
String get passwordAuthenticatorKeyCopied =>
|
||||
'Schlüssel kopiert. In einer Minute wird er aus der Zwischenablage entfernt.';
|
||||
|
||||
@override
|
||||
String get passwordAuthenticatorOpen => 'In deiner Authenticator-App öffnen';
|
||||
|
||||
|
|
|
|||
|
|
@ -475,6 +475,10 @@ class HalkyonAppLocalizationsEn extends HalkyonAppLocalizations {
|
|||
@override
|
||||
String get passwordAuthenticatorKey => 'Key';
|
||||
|
||||
@override
|
||||
String get passwordAuthenticatorKeyCopied =>
|
||||
'Key copied. It\'s taken off the clipboard again in a minute.';
|
||||
|
||||
@override
|
||||
String get passwordAuthenticatorOpen => 'Open in your authenticator app';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue