From 0632514d45876793e43caa31c8aec9a6cceee414 Mon Sep 17 00:00:00 2001
From: ryanzhao <ryanzhaors@qq.com>
Date: Wed, 18 Oct 2023 16:56:18 +1100
Subject: [PATCH] imp: updated recovery password screen

---
 Session.xcodeproj/project.pbxproj             |   9 +-
 .../Translations/ar.lproj/Localizable.strings |  12 +
 .../Translations/be.lproj/Localizable.strings |  12 +
 .../Translations/bg.lproj/Localizable.strings |  12 +
 .../Translations/bn.lproj/Localizable.strings |  12 +
 .../Translations/cs.lproj/Localizable.strings |  12 +
 .../Translations/da.lproj/Localizable.strings |  12 +
 .../Translations/de.lproj/Localizable.strings |  12 +
 .../Translations/el.lproj/Localizable.strings |  12 +
 .../Translations/en.lproj/Localizable.strings |  12 +
 .../Translations/eo.lproj/Localizable.strings |  12 +
 .../es-ES.lproj/Localizable.strings           |  12 +
 .../Translations/fa.lproj/Localizable.strings |  12 +
 .../Translations/fi.lproj/Localizable.strings |  12 +
 .../fil.lproj/Localizable.strings             |  12 +
 .../Translations/fr.lproj/Localizable.strings |  12 +
 .../Translations/hi.lproj/Localizable.strings |  12 +
 .../Translations/hr.lproj/Localizable.strings |  12 +
 .../Translations/hu.lproj/Localizable.strings |  12 +
 .../Translations/id.lproj/Localizable.strings |  12 +
 .../Translations/it.lproj/Localizable.strings |  12 +
 .../Translations/ja.lproj/Localizable.strings |  12 +
 .../Translations/ko.lproj/Localizable.strings |  12 +
 .../Translations/ku.lproj/Localizable.strings |  12 +
 .../Translations/lt.lproj/Localizable.strings |  12 +
 .../Translations/lv.lproj/Localizable.strings |  12 +
 .../ne-NP.lproj/Localizable.strings           |  12 +
 .../Translations/nl.lproj/Localizable.strings |  12 +
 .../Translations/no.lproj/Localizable.strings |  12 +
 .../Translations/pl.lproj/Localizable.strings |  12 +
 .../pt-BR.lproj/Localizable.strings           |  12 +
 .../pt-PT.lproj/Localizable.strings           |  12 +
 .../Translations/ro.lproj/Localizable.strings |  12 +
 .../Translations/ru.lproj/Localizable.strings |  12 +
 .../si-LK.lproj/Localizable.strings           |  12 +
 .../Translations/sk.lproj/Localizable.strings |  12 +
 .../Translations/sl.lproj/Localizable.strings |  12 +
 .../sv-SE.lproj/Localizable.strings           |  12 +
 .../Translations/th.lproj/Localizable.strings |  12 +
 .../Translations/tr.lproj/Localizable.strings |  12 +
 .../Translations/uk.lproj/Localizable.strings |  10 +
 .../Translations/vi.lproj/Localizable.strings |  12 +
 .../zh-CN.lproj/Localizable.strings           |  12 +
 .../zh-TW.lproj/Localizable.strings           |  12 +
 Session/Onboarding/RecoveryPasswordView.swift | 139 ----------
 Session/Settings/RecoveryPasswordView.swift   | 243 ++++++++++++++++++
 Session/Utilities/QRCode.swift                |  52 ++++
 SessionUIKit/Style Guide/Values.swift         |   1 +
 48 files changed, 812 insertions(+), 146 deletions(-)
 delete mode 100644 Session/Onboarding/RecoveryPasswordView.swift
 create mode 100644 Session/Settings/RecoveryPasswordView.swift

diff --git a/Session.xcodeproj/project.pbxproj b/Session.xcodeproj/project.pbxproj
index 83ffe26a9..f23894af0 100644
--- a/Session.xcodeproj/project.pbxproj
+++ b/Session.xcodeproj/project.pbxproj
@@ -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 */,
diff --git a/Session/Meta/Translations/ar.lproj/Localizable.strings b/Session/Meta/Translations/ar.lproj/Localizable.strings
index 71c10babf..740a3882a 100644
--- a/Session/Meta/Translations/ar.lproj/Localizable.strings
+++ b/Session/Meta/Translations/ar.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/be.lproj/Localizable.strings b/Session/Meta/Translations/be.lproj/Localizable.strings
index cf1ab2876..695c54b6a 100644
--- a/Session/Meta/Translations/be.lproj/Localizable.strings
+++ b/Session/Meta/Translations/be.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/bg.lproj/Localizable.strings b/Session/Meta/Translations/bg.lproj/Localizable.strings
index bc7181fb1..3f325356f 100644
--- a/Session/Meta/Translations/bg.lproj/Localizable.strings
+++ b/Session/Meta/Translations/bg.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/bn.lproj/Localizable.strings b/Session/Meta/Translations/bn.lproj/Localizable.strings
index cef902883..0779456f4 100644
--- a/Session/Meta/Translations/bn.lproj/Localizable.strings
+++ b/Session/Meta/Translations/bn.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/cs.lproj/Localizable.strings b/Session/Meta/Translations/cs.lproj/Localizable.strings
index 5f1218169..79d0cb998 100644
--- a/Session/Meta/Translations/cs.lproj/Localizable.strings
+++ b/Session/Meta/Translations/cs.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/da.lproj/Localizable.strings b/Session/Meta/Translations/da.lproj/Localizable.strings
index da6779ff3..01e6301b0 100644
--- a/Session/Meta/Translations/da.lproj/Localizable.strings
+++ b/Session/Meta/Translations/da.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/de.lproj/Localizable.strings b/Session/Meta/Translations/de.lproj/Localizable.strings
index f8e6ee25d..4c7f024c7 100644
--- a/Session/Meta/Translations/de.lproj/Localizable.strings
+++ b/Session/Meta/Translations/de.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/el.lproj/Localizable.strings b/Session/Meta/Translations/el.lproj/Localizable.strings
index c38c29bc5..8f8d1239c 100644
--- a/Session/Meta/Translations/el.lproj/Localizable.strings
+++ b/Session/Meta/Translations/el.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/en.lproj/Localizable.strings b/Session/Meta/Translations/en.lproj/Localizable.strings
index e60d68db1..ae2bc6029 100644
--- a/Session/Meta/Translations/en.lproj/Localizable.strings
+++ b/Session/Meta/Translations/en.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/eo.lproj/Localizable.strings b/Session/Meta/Translations/eo.lproj/Localizable.strings
index 6c7b62904..c1d1d0076 100644
--- a/Session/Meta/Translations/eo.lproj/Localizable.strings
+++ b/Session/Meta/Translations/eo.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/es-ES.lproj/Localizable.strings b/Session/Meta/Translations/es-ES.lproj/Localizable.strings
index 7b524eb8b..9545a7191 100644
--- a/Session/Meta/Translations/es-ES.lproj/Localizable.strings
+++ b/Session/Meta/Translations/es-ES.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/fa.lproj/Localizable.strings b/Session/Meta/Translations/fa.lproj/Localizable.strings
index ea1c51fb0..b1741a64a 100644
--- a/Session/Meta/Translations/fa.lproj/Localizable.strings
+++ b/Session/Meta/Translations/fa.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/fi.lproj/Localizable.strings b/Session/Meta/Translations/fi.lproj/Localizable.strings
index ac2fcbffa..fd45be1d6 100644
--- a/Session/Meta/Translations/fi.lproj/Localizable.strings
+++ b/Session/Meta/Translations/fi.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/fil.lproj/Localizable.strings b/Session/Meta/Translations/fil.lproj/Localizable.strings
index 6f9006b22..6aa370130 100644
--- a/Session/Meta/Translations/fil.lproj/Localizable.strings
+++ b/Session/Meta/Translations/fil.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/fr.lproj/Localizable.strings b/Session/Meta/Translations/fr.lproj/Localizable.strings
index f6c6d893c..d4e8ada3c 100644
--- a/Session/Meta/Translations/fr.lproj/Localizable.strings
+++ b/Session/Meta/Translations/fr.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/hi.lproj/Localizable.strings b/Session/Meta/Translations/hi.lproj/Localizable.strings
index 65bbd0a1f..c28ca8403 100644
--- a/Session/Meta/Translations/hi.lproj/Localizable.strings
+++ b/Session/Meta/Translations/hi.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/hr.lproj/Localizable.strings b/Session/Meta/Translations/hr.lproj/Localizable.strings
index f42bb806f..6e34d0b06 100644
--- a/Session/Meta/Translations/hr.lproj/Localizable.strings
+++ b/Session/Meta/Translations/hr.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/hu.lproj/Localizable.strings b/Session/Meta/Translations/hu.lproj/Localizable.strings
index 0d65dc9c3..9cde9e046 100644
--- a/Session/Meta/Translations/hu.lproj/Localizable.strings
+++ b/Session/Meta/Translations/hu.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/id.lproj/Localizable.strings b/Session/Meta/Translations/id.lproj/Localizable.strings
index 7c1d0dfab..69cfcc3fd 100644
--- a/Session/Meta/Translations/id.lproj/Localizable.strings
+++ b/Session/Meta/Translations/id.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/it.lproj/Localizable.strings b/Session/Meta/Translations/it.lproj/Localizable.strings
index b163b3685..cb4d5a035 100644
--- a/Session/Meta/Translations/it.lproj/Localizable.strings
+++ b/Session/Meta/Translations/it.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/ja.lproj/Localizable.strings b/Session/Meta/Translations/ja.lproj/Localizable.strings
index f76674a7c..c6baa90a1 100644
--- a/Session/Meta/Translations/ja.lproj/Localizable.strings
+++ b/Session/Meta/Translations/ja.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/ko.lproj/Localizable.strings b/Session/Meta/Translations/ko.lproj/Localizable.strings
index 88109d34d..4b103dc57 100644
--- a/Session/Meta/Translations/ko.lproj/Localizable.strings
+++ b/Session/Meta/Translations/ko.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/ku.lproj/Localizable.strings b/Session/Meta/Translations/ku.lproj/Localizable.strings
index bdf8f134c..035478681 100644
--- a/Session/Meta/Translations/ku.lproj/Localizable.strings
+++ b/Session/Meta/Translations/ku.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/lt.lproj/Localizable.strings b/Session/Meta/Translations/lt.lproj/Localizable.strings
index 119a1bd4d..e0f55d404 100644
--- a/Session/Meta/Translations/lt.lproj/Localizable.strings
+++ b/Session/Meta/Translations/lt.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/lv.lproj/Localizable.strings b/Session/Meta/Translations/lv.lproj/Localizable.strings
index 50eb54cf1..b197284fc 100644
--- a/Session/Meta/Translations/lv.lproj/Localizable.strings
+++ b/Session/Meta/Translations/lv.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/ne-NP.lproj/Localizable.strings b/Session/Meta/Translations/ne-NP.lproj/Localizable.strings
index e34d903e1..d6303ee4c 100644
--- a/Session/Meta/Translations/ne-NP.lproj/Localizable.strings
+++ b/Session/Meta/Translations/ne-NP.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/nl.lproj/Localizable.strings b/Session/Meta/Translations/nl.lproj/Localizable.strings
index 26c9a3fd5..9e8d30d63 100644
--- a/Session/Meta/Translations/nl.lproj/Localizable.strings
+++ b/Session/Meta/Translations/nl.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/no.lproj/Localizable.strings b/Session/Meta/Translations/no.lproj/Localizable.strings
index 1e8d5f32e..26145488c 100644
--- a/Session/Meta/Translations/no.lproj/Localizable.strings
+++ b/Session/Meta/Translations/no.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/pl.lproj/Localizable.strings b/Session/Meta/Translations/pl.lproj/Localizable.strings
index 504f885ab..ecf438d84 100644
--- a/Session/Meta/Translations/pl.lproj/Localizable.strings
+++ b/Session/Meta/Translations/pl.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/pt-BR.lproj/Localizable.strings b/Session/Meta/Translations/pt-BR.lproj/Localizable.strings
index 50d6b6376..066c0f6f5 100644
--- a/Session/Meta/Translations/pt-BR.lproj/Localizable.strings
+++ b/Session/Meta/Translations/pt-BR.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/pt-PT.lproj/Localizable.strings b/Session/Meta/Translations/pt-PT.lproj/Localizable.strings
index 7a8147bf2..c64e5b9b7 100644
--- a/Session/Meta/Translations/pt-PT.lproj/Localizable.strings
+++ b/Session/Meta/Translations/pt-PT.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/ro.lproj/Localizable.strings b/Session/Meta/Translations/ro.lproj/Localizable.strings
index 3c03ce0b9..54ca9ec1f 100644
--- a/Session/Meta/Translations/ro.lproj/Localizable.strings
+++ b/Session/Meta/Translations/ro.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/ru.lproj/Localizable.strings b/Session/Meta/Translations/ru.lproj/Localizable.strings
index c449145df..c49dd03c1 100644
--- a/Session/Meta/Translations/ru.lproj/Localizable.strings
+++ b/Session/Meta/Translations/ru.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/si-LK.lproj/Localizable.strings b/Session/Meta/Translations/si-LK.lproj/Localizable.strings
index 32b227de1..856d7f0ff 100644
--- a/Session/Meta/Translations/si-LK.lproj/Localizable.strings
+++ b/Session/Meta/Translations/si-LK.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/sk.lproj/Localizable.strings b/Session/Meta/Translations/sk.lproj/Localizable.strings
index f85b06cbe..948cb77de 100644
--- a/Session/Meta/Translations/sk.lproj/Localizable.strings
+++ b/Session/Meta/Translations/sk.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/sl.lproj/Localizable.strings b/Session/Meta/Translations/sl.lproj/Localizable.strings
index 65e625d71..9df8e113c 100644
--- a/Session/Meta/Translations/sl.lproj/Localizable.strings
+++ b/Session/Meta/Translations/sl.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/sv-SE.lproj/Localizable.strings b/Session/Meta/Translations/sv-SE.lproj/Localizable.strings
index 555b9c61f..7d60ca997 100644
--- a/Session/Meta/Translations/sv-SE.lproj/Localizable.strings
+++ b/Session/Meta/Translations/sv-SE.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/th.lproj/Localizable.strings b/Session/Meta/Translations/th.lproj/Localizable.strings
index 00b0cc100..544232b3a 100644
--- a/Session/Meta/Translations/th.lproj/Localizable.strings
+++ b/Session/Meta/Translations/th.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/tr.lproj/Localizable.strings b/Session/Meta/Translations/tr.lproj/Localizable.strings
index 093cc819f..65456bf16 100644
--- a/Session/Meta/Translations/tr.lproj/Localizable.strings
+++ b/Session/Meta/Translations/tr.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/uk.lproj/Localizable.strings b/Session/Meta/Translations/uk.lproj/Localizable.strings
index 519db25a3..88f2bdb5f 100644
--- a/Session/Meta/Translations/uk.lproj/Localizable.strings
+++ b/Session/Meta/Translations/uk.lproj/Localizable.strings
@@ -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.";
diff --git a/Session/Meta/Translations/vi.lproj/Localizable.strings b/Session/Meta/Translations/vi.lproj/Localizable.strings
index 82c46527e..2ecbb54f0 100644
--- a/Session/Meta/Translations/vi.lproj/Localizable.strings
+++ b/Session/Meta/Translations/vi.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/zh-CN.lproj/Localizable.strings b/Session/Meta/Translations/zh-CN.lproj/Localizable.strings
index 16ebf2331..b82e6a9bd 100644
--- a/Session/Meta/Translations/zh-CN.lproj/Localizable.strings
+++ b/Session/Meta/Translations/zh-CN.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Meta/Translations/zh-TW.lproj/Localizable.strings b/Session/Meta/Translations/zh-TW.lproj/Localizable.strings
index 9650cf0ae..057e7c4d6 100644
--- a/Session/Meta/Translations/zh-TW.lproj/Localizable.strings
+++ b/Session/Meta/Translations/zh-TW.lproj/Localizable.strings
@@ -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";
diff --git a/Session/Onboarding/RecoveryPasswordView.swift b/Session/Onboarding/RecoveryPasswordView.swift
deleted file mode 100644
index 9a9826fb4..000000000
--- a/Session/Onboarding/RecoveryPasswordView.swift
+++ /dev/null
@@ -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)
-    }
-}
diff --git a/Session/Settings/RecoveryPasswordView.swift b/Session/Settings/RecoveryPasswordView.swift
new file mode 100644
index 000000000..d6cb05f1f
--- /dev/null
+++ b/Session/Settings/RecoveryPasswordView.swift
@@ -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)
+    }
+}
diff --git a/Session/Utilities/QRCode.swift b/Session/Utilities/QRCode.swift
index e9bebd201..5086f3baa 100644
--- a/Session/Utilities/QRCode.swift
+++ b/Session/Utilities/QRCode.swift
@@ -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
+                )
+            }
+        }
+    }
+}
diff --git a/SessionUIKit/Style Guide/Values.swift b/SessionUIKit/Style Guide/Values.swift
index 5997d869e..6f5221970 100644
--- a/SessionUIKit/Style Guide/Values.swift	
+++ b/SessionUIKit/Style Guide/Values.swift	
@@ -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