imp: updated recovery password screen

pull/891/head
ryanzhao 2 years ago
parent 4c95154485
commit 0632514d45

@ -162,7 +162,6 @@
7BD687D12A5D0D1200D8E455 /* MessageInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD687D02A5D0D1200D8E455 /* MessageInfoView.swift */; };
7BD976972A776C76001B466F /* SessionCarouselView+SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BE2701D2A64C11500CEB71A /* SessionCarouselView+SwiftUI.swift */; };
7BDCFC08242186E700641C39 /* NotificationServiceExtensionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDCFC07242186E700641C39 /* NotificationServiceExtensionContext.swift */; };
7BDCFC0B2421EB7600641C39 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B6F509951AA53F760068F56A /* Localizable.strings */; };
7BDE2A982A8B122900AE4393 /* LandingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDE2A972A8B122900AE4393 /* LandingView.swift */; };
7BDE2A9A2A8C59CF00AE4393 /* AttributedText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDE2A992A8C59CF00AE4393 /* AttributedText.swift */; };
7BF570D32A9C1F9300DB013E /* Toast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF570D22A9C1F9300DB013E /* Toast.swift */; };
@ -814,13 +813,12 @@
FDC438C927BB706500C60D73 /* SendDirectMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC438C827BB706500C60D73 /* SendDirectMessageRequest.swift */; };
FDC438CB27BB7DB100C60D73 /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC438CA27BB7DB100C60D73 /* UpdateMessageRequest.swift */; };
FDC438CD27BC641200C60D73 /* Set+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC438CC27BC641200C60D73 /* Set+Utilities.swift */; };
FDC6D6F32860607300B04575 /* SessionEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF0B7542807C4BB004C14C5 /* SessionEnvironment.swift */; };
FDC498B72AC15F7D00EDD897 /* AppNotificationCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC498B62AC15F7D00EDD897 /* AppNotificationCategory.swift */; };
FDC498B92AC15FE300EDD897 /* AppNotificationAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC498B82AC15FE300EDD897 /* AppNotificationAction.swift */; };
FDC498BB2AC1606C00EDD897 /* AppNotificationUserInfoKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC498BA2AC1606C00EDD897 /* AppNotificationUserInfoKey.swift */; };
FDC498BE2AC1732E00EDD897 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = FD9401A32ABD04AC003A4834 /* Localizable.strings */; };
FDC498C22AC17BFC00EDD897 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = FD9401A32ABD04AC003A4834 /* Localizable.strings */; };
FDC6D6F32860607300B04575 /* Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF0B7542807C4BB004C14C5 /* Environment.swift */; };
FDC6D6F32860607300B04575 /* SessionEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF0B7542807C4BB004C14C5 /* SessionEnvironment.swift */; };
FDC6D7602862B3F600B04575 /* Dependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC6D75F2862B3F600B04575 /* Dependencies.swift */; };
FDCD2E032A41294E00964D6A /* LegacyGroupOnlyRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDCD2E022A41294E00964D6A /* LegacyGroupOnlyRequest.swift */; };
FDCDB8DE2810F73B00352A0C /* Differentiable+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDCDB8DD2810F73B00352A0C /* Differentiable+Utilities.swift */; };
@ -1233,9 +1231,6 @@
7B1D74A927BCC16E0030B423 /* NSENotificationPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSENotificationPresenter.swift; sourceTree = "<group>"; };
7B1D74AF27C365960030B423 /* Timer+MainThread.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Timer+MainThread.swift"; sourceTree = "<group>"; };
7B2561C329874851005C086C /* SessionCarouselView+Info.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionCarouselView+Info.swift"; sourceTree = "<group>"; };
7B2DB2AD26F1B0FF0035B509 /* si */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = si; path = si.lproj/Localizable.strings; sourceTree = "<group>"; };
7B3A392D2977791E002FE4AC /* MediaInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInfoVC.swift; sourceTree = "<group>"; };
7B3A392F297A3919002FE4AC /* MediaInfoVC+MediaPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MediaInfoVC+MediaPreviewView.swift"; sourceTree = "<group>"; };
7B3A39312980D02B002FE4AC /* SessionCarouselView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCarouselView.swift; sourceTree = "<group>"; };
7B3A3933298882D6002FE4AC /* SessionCarouselViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCarouselViewDelegate.swift; sourceTree = "<group>"; };
7B46AAAE28766DF4001AF2DC /* AllMediaViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllMediaViewController.swift; sourceTree = "<group>"; };
@ -3047,7 +3042,6 @@
7BDE2A972A8B122900AE4393 /* LandingView.swift */,
7B87EF412A8D9840002A0E8F /* DisplayNameView.swift */,
7B87EF452A8DDA8E002A0E8F /* PNModeView.swift */,
7B87EF472A8DFBBF002A0E8F /* RecoveryPasswordView.swift */,
7B87EF492A92DFB4002A0E8F /* LoadAccountView.swift */,
7B87EF4B2A933355002A0E8F /* LoadingView.swift */,
);
@ -3069,6 +3063,7 @@
C360969125AD1765008B62B2 /* Settings */ = {
isa = PBXGroup;
children = (
7B87EF472A8DFBBF002A0E8F /* RecoveryPasswordView.swift */,
FD37E9CD28A1E682003AE748 /* Views */,
FD71162D28E168C700B47552 /* SettingsViewModel.swift */,
B886B4A62398B23E00211ABE /* QRCodeVC.swift */,

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,13 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -850,3 +850,15 @@ The point that a message will disappear in a disappearing message update message
"modal_open_url_title_2" = "Open URL";
"modal_open_url_explanation_2" = "This will open in your browser.";
"onboarding_notification_mode_explanation" = "There are two ways Session can notify you of new messages.";
"recovery_password_title" = "Recovery Password";
"recovery_password_explanation_1" = "Use your recovery password to load your account on new devices.";
"recovery_password_explanation_2" = "Your account cannot be recovered without your recovery password. Make sure it's stored somewhere safe and secure — and don't share it with anyone.";
"hide_recovery_password_title" = "Hide Recovery Password";
"hide_recovery_password_explanation" = "Permanently hide your recovery password on this device.";
"hide_button_title" = "Hide";
"hide_recovery_password_modal_title" = "Hide Recovery Password Permanently";
"hide_recovery_password_modal_warning_1" = "Without your recovery password, you cannot load your account on new devices.";
"hide_recovery_password_modal_warning_2" = "We strongly recommend you save your recovery password in a safe and secure place before continuing.";
"hide_recovery_password_modal_confirmation" = "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.";
"view_qr_code_button_title" = "View QR";
"view_mnemonic_button_title" = "View Password";

@ -1,139 +0,0 @@
// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
import SwiftUI
import SessionUIKit
import SignalUtilitiesKit
import SessionUtilitiesKit
struct RecoveryPasswordView: View {
@EnvironmentObject var host: HostWrapper
@State private var copied: Bool = false
private let mnemonic: String
private let flow: Onboarding.Flow
static let cornerRadius: CGFloat = 13
public init(flow: Onboarding.Flow) throws {
self.mnemonic = try Identity.mnemonic()
self.flow = flow
}
public init(hardcode: String, flow: Onboarding.Flow) {
self.mnemonic = hardcode
self.flow = flow
}
var body: some View {
ZStack(alignment: .center) {
if #available(iOS 14.0, *) {
ThemeManager.currentTheme.colorSwiftUI(for: .backgroundPrimary).ignoresSafeArea()
} else {
ThemeManager.currentTheme.colorSwiftUI(for: .backgroundPrimary)
}
VStack(
alignment: .leading,
spacing: Values.mediumSpacing
) {
Spacer()
HStack(
alignment: .bottom,
spacing: Values.smallSpacing
) {
Text("onboarding_recovery_password_title".localized())
.bold()
.font(.system(size: Values.veryLargeFontSize))
.foregroundColor(themeColor: .textPrimary)
Image("SessionShield")
.resizable()
.renderingMode(.template)
.foregroundColor(themeColor: .textPrimary)
.scaledToFit()
.frame(
maxWidth: Values.largeFontSize,
maxHeight: Values.largeFontSize
)
.padding(.bottom, Values.verySmallSpacing)
}
Text("onboarding_recovery_password_explanation".localized())
.font(.system(size: Values.smallFontSize))
.foregroundColor(themeColor: .textPrimary)
Text(mnemonic)
.font(.spaceMono(size: Values.verySmallFontSize))
.multilineTextAlignment(.center)
.foregroundColor(themeColor: .primary)
.frame(maxWidth: .infinity)
.padding(.all, Values.largeSpacing)
.overlay(
RoundedRectangle(
cornerSize: CGSize(
width: Self.cornerRadius,
height: Self.cornerRadius
)
)
.stroke(themeColor: .borderSeparator)
)
Button {
copyRecoveryPassword()
} label: {
let buttonTitle: String = self.copied ? "copied".localized() : "tap_to_copy".localized()
Text(buttonTitle)
.font(.system(size: Values.verySmallFontSize))
.foregroundColor(themeColor: .textSecondary)
}
.frame(maxWidth: .infinity)
Spacer()
}
.padding(.horizontal, Values.veryLargeSpacing)
.padding(.bottom, Values.massiveSpacing + Values.largeButtonHeight)
VStack() {
Spacer()
Button {
finishRegister()
} label: {
Text("continue_2".localized())
.bold()
.font(.system(size: Values.smallFontSize))
.foregroundColor(themeColor: .sessionButton_text)
.frame(
maxWidth: .infinity,
maxHeight: Values.largeButtonHeight,
alignment: .center
)
.overlay(
Capsule()
.stroke(themeColor: .sessionButton_border)
)
}
.padding(.horizontal, Values.massiveSpacing)
}
.padding(.vertical, Values.mediumSpacing)
}
}
private func copyRecoveryPassword() {
UIPasteboard.general.string = self.mnemonic
self.copied = true
}
private func finishRegister() {
let homeVC: HomeVC = HomeVC(flow: self.flow)
self.host.controller?.navigationController?.setViewControllers([ homeVC ], animated: true)
return
}
}
struct RecoveryPasswordView_Previews: PreviewProvider {
static var previews: some View {
RecoveryPasswordView(hardcode: "Voyage urban toyed maverick peculiar tuxedo penguin tree grass building listen speak", flow: .register)
}
}

@ -0,0 +1,243 @@
// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
import SwiftUI
import SessionUIKit
import SignalUtilitiesKit
import SessionUtilitiesKit
struct RecoveryPasswordView: View {
@EnvironmentObject var host: HostWrapper
@State private var copied: Bool = false
@State private var showQRCode: Bool = true
private let mnemonic: String
private let flow: Onboarding.Flow
static let cornerRadius: CGFloat = 13
static private let backgroundCornerRadius: CGFloat = 17
public init(flow: Onboarding.Flow) throws {
self.mnemonic = try Identity.mnemonic()
self.flow = flow
}
public init(hardcode: String, flow: Onboarding.Flow) {
self.mnemonic = hardcode
self.flow = flow
}
var body: some View {
ZStack(alignment: .center) {
if #available(iOS 14.0, *) {
ThemeManager.currentTheme.colorSwiftUI(for: .backgroundPrimary).ignoresSafeArea()
} else {
ThemeManager.currentTheme.colorSwiftUI(for: .backgroundPrimary)
}
ScrollView(.vertical, showsIndicators: false) {
VStack(
alignment: .leading,
spacing: Values.mediumSpacing
) {
ZStack {
RoundedRectangle(cornerRadius: Self.backgroundCornerRadius)
.fill(themeColor: .backgroundSecondary)
VStack(
alignment: .leading,
spacing: 0
) {
HStack(
alignment: .center,
spacing: Values.smallSpacing
) {
Text("recovery_password_title".localized())
.bold()
.font(.system(size: Values.mediumFontSize))
.foregroundColor(themeColor: .textPrimary)
Image("SessionShieldFilled")
.resizable()
.renderingMode(.template)
.foregroundColor(themeColor: .textPrimary)
.scaledToFit()
.frame(
maxWidth: Values.mediumFontSize,
maxHeight: Values.mediumFontSize
)
}
Text("recovery_password_explanation_1".localized())
.font(.system(size: Values.smallFontSize))
.foregroundColor(themeColor: .textPrimary)
.padding(.bottom, Values.mediumSpacing)
Text("recovery_password_explanation_2".localized())
.font(.system(size: Values.smallFontSize))
.foregroundColor(themeColor: .textPrimary)
.padding(.bottom, Values.mediumSpacing)
if self.showQRCode {
QRCodeView(
string: mnemonic,
hasBackground: false,
hasLogo: true,
themeStyle: ThemeManager.currentTheme.interfaceStyle
)
.padding(.all, Values.smallSpacing)
ZStack(alignment: .center) {
Button {
self.showQRCode.toggle()
} label: {
Text("view_mnemonic_button_title".localized())
.bold()
.font(.system(size: Values.verySmallFontSize))
.foregroundColor(themeColor: .textPrimary)
.frame(
maxWidth: 120,
maxHeight: Values.mediumSmallButtonHeight,
alignment: .center
)
.overlay(
Capsule()
.stroke(themeColor: .textPrimary)
)
}
}
.frame(maxWidth: .infinity)
.padding(.top, Values.mediumSpacing)
} else {
Text(mnemonic)
.font(.spaceMono(size: Values.verySmallFontSize))
.multilineTextAlignment(.center)
.foregroundColor(themeColor: .primary)
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
.fixedSize(horizontal: false, vertical: true)
.padding(.all, Values.largeSpacing)
.overlay(
RoundedRectangle(
cornerSize: CGSize(
width: Self.cornerRadius,
height: Self.cornerRadius
)
)
.stroke(themeColor: .borderSeparator)
)
.padding(.bottom, Values.mediumSpacing)
HStack(
alignment: .center,
spacing: 0
) {
Button {
copyRecoveryPassword()
} label: {
let buttonTitle: String = self.copied ? "copied".localized() : "copy".localized()
Text(buttonTitle)
.bold()
.font(.system(size: Values.verySmallFontSize))
.foregroundColor(themeColor: .textPrimary)
.frame(
maxWidth: .infinity,
maxHeight: Values.mediumSmallButtonHeight,
alignment: .center
)
.overlay(
Capsule()
.stroke(themeColor: .textPrimary)
)
}
.frame(maxWidth: .infinity)
Spacer(minLength: Values.veryLargeSpacing)
Button {
self.showQRCode.toggle()
} label: {
Text("view_qr_code_button_title".localized())
.bold()
.font(.system(size: Values.verySmallFontSize))
.foregroundColor(themeColor: .textPrimary)
.frame(
maxWidth: .infinity,
maxHeight: Values.mediumSmallButtonHeight,
alignment: .center
)
.overlay(
Capsule()
.stroke(themeColor: .textPrimary)
)
}
.frame(maxWidth: .infinity)
}
}
}
.padding(.all, Values.mediumSpacing)
}
ZStack {
RoundedRectangle(cornerRadius: Self.backgroundCornerRadius)
.fill(themeColor: .backgroundSecondary)
HStack(
alignment: .center,
spacing: Values.mediumSpacing
) {
VStack(
alignment: .leading,
spacing: 0
) {
Text("hide_recovery_password_title".localized())
.bold()
.font(.system(size: Values.mediumFontSize))
.foregroundColor(themeColor: .textPrimary)
Text("hide_recovery_password_explanation".localized())
.font(.system(size: Values.smallFontSize))
.foregroundColor(themeColor: .textPrimary)
}
.frame(
maxWidth: .infinity,
alignment: .leading
)
Button {
} label: {
Text("hide_button_title".localized())
.bold()
.font(.system(size: Values.verySmallFontSize))
.foregroundColor(themeColor: .danger)
.frame(
width: 55,
height: Values.mediumSmallButtonHeight
)
.overlay(
Capsule()
.stroke(themeColor: .danger)
)
}
}
.padding(.all, Values.mediumSpacing)
}
}
.padding(.horizontal, Values.largeSpacing)
}
}
}
private func copyRecoveryPassword() {
UIPasteboard.general.string = self.mnemonic
self.copied = true
}
}
struct RecoveryPasswordView_Previews: PreviewProvider {
static var previews: some View {
RecoveryPasswordView(hardcode: "Voyage urban toyed maverick peculiar tuxedo penguin tree grass building listen speak withdraw terminal plane ", flow: .register)
}
}

@ -42,3 +42,55 @@ enum QRCode {
return UIImage(data: imageData)!
}
}
import SwiftUI
import SessionUIKit
struct QRCodeView: View {
let string: String
let hasBackground: Bool
let hasLogo: Bool
let themeStyle: UIUserInterfaceStyle
static private var cornerRadius: CGFloat = 10
var body: some View {
ZStack(alignment: .center) {
RoundedRectangle(cornerRadius: Self.cornerRadius)
.fill(themeColor: .textPrimary)
Image(uiImage: QRCode.generate(for: string, hasBackground: hasBackground))
.resizable()
.renderingMode(.template)
.foregroundColor(themeColor: .backgroundPrimary)
.scaledToFit()
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
.padding(.vertical, Values.smallSpacing)
if hasLogo {
ZStack(alignment: .center) {
Rectangle()
.fill(themeColor: .textPrimary)
Image("SessionShieldFilled")
.resizable()
.renderingMode(.template)
.foregroundColor(themeColor: .backgroundPrimary)
.scaledToFit()
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
.padding(.all, 4)
}
.frame(
width: 66,
height: 66
)
}
}
}
}

@ -21,6 +21,7 @@ public final class Values : NSObject {
// MARK: - Element Sizes
@objc public static let smallButtonHeight = isIPhone5OrSmaller ? CGFloat(24) : CGFloat(28)
@objc public static let mediumSmallButtonHeight = isIPhone5OrSmaller ? CGFloat(28) : CGFloat(30)
@objc public static let mediumButtonHeight = isIPhone5OrSmaller ? CGFloat(30) : CGFloat(34)
@objc public static let largeButtonHeight = isIPhone5OrSmaller ? CGFloat(40) : CGFloat(45)
@objc public static let alertButtonHeight: CGFloat = 51 // 19px tall font with 16px margins

Loading…
Cancel
Save