Use new strings 1

This commit is contained in:
Andrew 2024-03-15 12:37:49 +10:30
parent 4279c4b456
commit a67b5f51b9
11 changed files with 45 additions and 305 deletions

View File

@ -66,27 +66,27 @@ class LandingActivity : BaseActionBarActivity() {
AppTheme { AppTheme {
Column(modifier = Modifier.padding(horizontal = 36.dp)) { Column(modifier = Modifier.padding(horizontal = 36.dp)) {
Spacer(modifier = Modifier.weight(1f)) Spacer(modifier = Modifier.weight(1f))
Text(stringResource(R.string.onboarding_privacy_in_your_pocket), modifier = Modifier.align(Alignment.CenterHorizontally), style = MaterialTheme.typography.h4, textAlign = TextAlign.Center) Text(stringResource(R.string.onboardingBubblePrivacyInYourPocket), modifier = Modifier.align(Alignment.CenterHorizontally), style = MaterialTheme.typography.h4, textAlign = TextAlign.Center)
Spacer(modifier = Modifier.height(24.dp)) Spacer(modifier = Modifier.height(24.dp))
IncomingText(stringResource(R.string.onboarding_welcome_to_session)) IncomingText(stringResource(R.string.onboardingBubbleWelcomeToSession))
Spacer(modifier = Modifier.height(14.dp)) Spacer(modifier = Modifier.height(14.dp))
OutgoingText(stringResource(R.string.onboarding_session_is_engineered_to_protect_your_privacy)) OutgoingText(stringResource(R.string.onboardingBubbleSessionIsEngineered))
Spacer(modifier = Modifier.height(14.dp)) Spacer(modifier = Modifier.height(14.dp))
IncomingText(stringResource(R.string.onboarding_you_don_t_even_need_a_phone_number_to_sign_up)) IncomingText(stringResource(R.string.onboardingBubbleNoPhoneNumber))
Spacer(modifier = Modifier.height(14.dp)) Spacer(modifier = Modifier.height(14.dp))
OutgoingText(stringResource(R.string.onboarding_creating_an_account_is_instant_free_and_anonymous)) OutgoingText(stringResource(R.string.onboardingBubbleCreatingAnAccountIsEasy))
Spacer(modifier = Modifier.weight(1f)) Spacer(modifier = Modifier.weight(1f))
OutlineButton(text = stringResource(R.string.onboarding_create_account), modifier = Modifier OutlineButton(text = stringResource(R.string.onboardingAccountCreate), modifier = Modifier
.width(262.dp) .width(262.dp)
.align(Alignment.CenterHorizontally)) { startPickDisplayNameActivity() } .align(Alignment.CenterHorizontally)) { startPickDisplayNameActivity() }
Spacer(modifier = Modifier.height(14.dp)) Spacer(modifier = Modifier.height(14.dp))
FilledButton(text = stringResource(R.string.onboarding_i_have_an_account), modifier = Modifier FilledButton(text = stringResource(R.string.onboardingAccountExists), modifier = Modifier
.width(262.dp) .width(262.dp)
.align(Alignment.CenterHorizontally)) { startLinkDeviceActivity() } .align(Alignment.CenterHorizontally)) { startLinkDeviceActivity() }
Spacer(modifier = Modifier.height(8.dp)) Spacer(modifier = Modifier.height(8.dp))
BorderlessButton( BorderlessButton(
text = stringResource(R.string.onboarding_by_using_this_service_you_agree_to_our_terms_of_service_and_privacy_policy), text = stringResource(R.string.onboardingTosPrivacy),
modifier = Modifier modifier = Modifier
.width(262.dp) .width(262.dp)
.align(Alignment.CenterHorizontally), .align(Alignment.CenterHorizontally),

View File

@ -29,17 +29,13 @@ import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Icon import androidx.compose.material.Icon
import androidx.compose.material.LocalContentAlpha
import androidx.compose.material.LocalContentColor
import androidx.compose.material.MaterialTheme import androidx.compose.material.MaterialTheme
import androidx.compose.material.OutlinedTextField import androidx.compose.material.OutlinedTextField
import androidx.compose.material.Scaffold import androidx.compose.material.Scaffold
import androidx.compose.material.Snackbar import androidx.compose.material.Snackbar
import androidx.compose.material.SnackbarHost import androidx.compose.material.SnackbarHost
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.material.TextFieldDefaults
import androidx.compose.material.rememberScaffoldState import androidx.compose.material.rememberScaffoldState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
@ -80,8 +76,6 @@ import org.thoughtcrime.securesms.BaseActionBarActivity
import org.thoughtcrime.securesms.ui.AppTheme import org.thoughtcrime.securesms.ui.AppTheme
import org.thoughtcrime.securesms.ui.OutlineButton import org.thoughtcrime.securesms.ui.OutlineButton
import org.thoughtcrime.securesms.ui.baseBold import org.thoughtcrime.securesms.ui.baseBold
import org.thoughtcrime.securesms.ui.classicDark3
import org.thoughtcrime.securesms.ui.colorDestructive
import org.thoughtcrime.securesms.ui.components.SessionTabRow import org.thoughtcrime.securesms.ui.components.SessionTabRow
import org.thoughtcrime.securesms.ui.outlinedTextFieldColors import org.thoughtcrime.securesms.ui.outlinedTextFieldColors
import java.util.concurrent.Executors import java.util.concurrent.Executors
@ -89,7 +83,7 @@ import javax.inject.Inject
private const val TAG = "LinkDeviceActivity" private const val TAG = "LinkDeviceActivity"
private val TITLES = listOf(R.string.activity_recovery_password, R.string.activity_link_device_scan_qr_code) private val TITLES = listOf(R.string.sessionRecoveryPassword, R.string.qrScan)
@AndroidEntryPoint @AndroidEntryPoint
@androidx.annotation.OptIn(ExperimentalGetImage::class) @androidx.annotation.OptIn(ExperimentalGetImage::class)
@ -154,7 +148,7 @@ class LinkDeviceActivity : BaseActionBarActivity() {
runCatching { runCatching {
cameraProvider.get().unbindAll() cameraProvider.get().unbindAll()
if (title == R.string.activity_link_device_scan_qr_code) { if (title == R.string.qrScan) {
LocalSoftwareKeyboardController.current?.hide() LocalSoftwareKeyboardController.current?.hide()
cameraProvider.get().bindToLifecycle( cameraProvider.get().bindToLifecycle(
LocalLifecycleOwner.current, LocalLifecycleOwner.current,
@ -165,8 +159,8 @@ class LinkDeviceActivity : BaseActionBarActivity() {
} }
}.onFailure { Log.e(TAG, "error binding camera", it) } }.onFailure { Log.e(TAG, "error binding camera", it) }
when (title) { when (title) {
R.string.activity_recovery_password -> RecoveryPassword(state, onChange, onContinue) R.string.sessionRecoveryPassword -> RecoveryPassword(state, onChange, onContinue)
R.string.activity_link_device_scan_qr_code -> MaybeScanQrCode() R.string.qrScan -> MaybeScanQrCode()
} }
} }
} }
@ -193,7 +187,7 @@ class LinkDeviceActivity : BaseActionBarActivity() {
) )
Spacer(modifier = Modifier.size(20.dp)) Spacer(modifier = Modifier.size(20.dp))
OutlineButton( OutlineButton(
text = stringResource(R.string.activity_link_settings), text = stringResource(R.string.sessionSettings),
modifier = Modifier.align(Alignment.CenterHorizontally) modifier = Modifier.align(Alignment.CenterHorizontally)
) { ) {
Intent(ACTION_APPLICATION_DETAILS_SETTINGS).apply { Intent(ACTION_APPLICATION_DETAILS_SETTINGS).apply {
@ -203,7 +197,7 @@ class LinkDeviceActivity : BaseActionBarActivity() {
} }
} else { } else {
OutlineButton( OutlineButton(
text = stringResource(R.string.activity_link_grant_camera_permission), text = stringResource(R.string.cameraGrantAccess),
modifier = Modifier.align(Alignment.Center) modifier = Modifier.align(Alignment.Center)
) { ) {
cameraPermissionState.run { launchPermissionRequest() } cameraPermissionState.run { launchPermissionRequest() }
@ -270,7 +264,7 @@ fun RecoveryPassword(state: LinkDeviceState, onChange: (String) -> Unit = {}, on
) { ) {
Spacer(Modifier.weight(1f)) Spacer(Modifier.weight(1f))
Row { Row {
Text(stringResource(R.string.activity_link_recovery_password), style = MaterialTheme.typography.h4) Text(stringResource(R.string.sessionRecoveryPassword), style = MaterialTheme.typography.h4)
Spacer(Modifier.width(6.dp)) Spacer(Modifier.width(6.dp))
Icon( Icon(
painter = painterResource(id = R.drawable.ic_shield_outline), painter = painterResource(id = R.drawable.ic_shield_outline),
@ -283,7 +277,7 @@ fun RecoveryPassword(state: LinkDeviceState, onChange: (String) -> Unit = {}, on
OutlinedTextField( OutlinedTextField(
value = state.recoveryPhrase, value = state.recoveryPhrase,
onValueChange = { onChange(it) }, onValueChange = { onChange(it) },
placeholder = { Text(stringResource(R.string.activity_link_enter_your_recovery_password)) }, placeholder = { Text(stringResource(R.string.recoveryPasswordEnter)) },
colors = outlinedTextFieldColors(state.error != null), colors = outlinedTextFieldColors(state.error != null),
singleLine = true, singleLine = true,
keyboardActions = KeyboardActions( keyboardActions = KeyboardActions(

View File

@ -42,7 +42,7 @@ class LinkDeviceViewModel @Inject constructor(
val qrErrorsFlow = qrErrors.receiveAsFlow() val qrErrorsFlow = qrErrors.receiveAsFlow()
.debounce(QR_ERROR_TIME) .debounce(QR_ERROR_TIME)
.takeWhile { event.isEmpty } .takeWhile { event.isEmpty }
.mapNotNull { application.getString(R.string.activity_link_this_qr_code_does_not_contain_a_recovery_password) } .mapNotNull { application.getString(R.string.qrNotRecoveryPassword) }
private val codec by lazy { MnemonicCodec { MnemonicUtilities.loadFileContents(getApplication(), it) } } private val codec by lazy { MnemonicCodec { MnemonicUtilities.loadFileContents(getApplication(), it) } }
@ -73,9 +73,9 @@ class LinkDeviceViewModel @Inject constructor(
state.update { state.update {
it.copy( it.copy(
error = when (error) { error = when (error) {
is InputTooShort -> R.string.activity_link_the_recovery_password_you_entered_is_not_long_enough_please_check_and_try_again is InputTooShort -> R.string.recoveryPasswordErrorMessageShort
is InvalidWord -> R.string.activity_link_some_of_the_words_in_your_recovery_password_are_incorrect_please_check_and_try_again is InvalidWord -> R.string.recoveryPasswordErrorMessageIncorrect
else -> R.string.activity_link_please_check_your_recovery_password_and_try_again else -> R.string.recoveryPasswordErrorMessageGeneric
}.let(application::getString) }.let(application::getString)
) )
} }

View File

@ -62,7 +62,7 @@ class RecoveryPasswordActivity : BaseActionBarActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
supportActionBar!!.title = resources.getString(R.string.activity_recovery_password) supportActionBar!!.title = resources.getString(R.string.sessionRecoveryPassword)
ComposeView(this).apply { ComposeView(this).apply {
setContent { setContent {

View File

@ -55,6 +55,7 @@ import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import network.loki.messenger.R
import org.session.libsession.utilities.recipients.Recipient import org.session.libsession.utilities.recipients.Recipient
import org.session.libsession.utilities.runIf import org.session.libsession.utilities.runIf
import org.thoughtcrime.securesms.components.ProfilePictureView import org.thoughtcrime.securesms.components.ProfilePictureView

View File

@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.ui.LocalExtraColors
import org.thoughtcrime.securesms.ui.PreviewTheme import org.thoughtcrime.securesms.ui.PreviewTheme
import org.thoughtcrime.securesms.ui.ThemeResPreviewParameterProvider import org.thoughtcrime.securesms.ui.ThemeResPreviewParameterProvider
private val TITLES = listOf(R.string.activity_recovery_password, R.string.activity_link_device_scan_qr_code) private val TITLES = listOf(R.string.sessionRecoveryPassword, R.string.qrScan)
@OptIn(ExperimentalFoundationApi::class) @OptIn(ExperimentalFoundationApi::class)
@Composable @Composable

View File

@ -1,64 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/very_large_font_size"
android:textStyle="bold"
android:textColor="?android:textColorPrimary"
android:text="@string/activity_display_name_title_2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="7dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/medium_font_size"
android:textColor="?android:textColorPrimary"
android:text="@string/activity_display_name_explanation" />
<EditText
style="@style/SessionEditText"
android:id="@+id/displayNameEditText"
android:contentDescription="@string/AccessibilityId_enter_display_name"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="12dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:gravity="center_vertical"
android:inputType="textCapWords"
android:hint="@string/activity_display_name_edit_text_hint" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/registerButton"
android:contentDescription="@string/AccessibilityId_continue"
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/medium_spacing"
android:text="@string/continue_2" />
</LinearLayout>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/very_large_font_size"
android:textStyle="bold"
android:textColor="?android:textColorPrimary"
android:text="@string/fragment_recovery_phrase_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="7dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/medium_font_size"
android:textColor="?android:textColorPrimary"
android:text="@string/activity_restore_explanation" />
<EditText
style="@style/SessionEditText"
android:id="@+id/mnemonicEditText"
android:contentDescription="@string/AccessibilityId_enter_your_recovery_phrase"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="12dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:gravity="center_vertical"
android:inputType="textMultiLine"
android:maxLines="3"
android:hint="@string/activity_restore_seed_edit_text_hint" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/continueButton"
android:contentDescription="@string/AccessibilityId_continue"
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/medium_spacing"
android:text="@string/continue_2" />
</LinearLayout>

View File

@ -1,64 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="?android:textColorPrimary"
android:text="@string/activity_display_name_title_2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="4dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/small_font_size"
android:textColor="?android:textColorPrimary"
android:text="@string/activity_display_name_explanation" />
<EditText
style="@style/SmallSessionEditText"
android:contentDescription="@string/AccessibilityId_enter_display_name"
android:id="@+id/displayNameEditText"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="10dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:gravity="center_vertical"
android:inputType="textCapWords"
android:hint="@string/activity_display_name_edit_text_hint" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
style="@style/Widget.Session.Button.Common.ProminentFilled"
android:contentDescription="@string/AccessibilityId_continue"
android:id="@+id/registerButton"
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/small_spacing"
android:text="@string/continue_2" />
</LinearLayout>

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/large_font_size"
android:textStyle="bold"
android:textColor="?android:textColorPrimary"
android:text="@string/fragment_recovery_phrase_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="4dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/small_font_size"
android:textColor="?android:textColorPrimary"
android:text="@string/activity_restore_explanation" />
<EditText
style="@style/SmallSessionEditText"
android:id="@+id/mnemonicEditText"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_marginHorizontal="@dimen/very_large_spacing"
android:layout_marginTop="10dp"
android:contentDescription="@string/AccessibilityId_enter_your_recovery_phrase"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:gravity="center_vertical"
android:inputType="textMultiLine"
android:maxLines="3"
android:hint="@string/activity_restore_seed_edit_text_hint" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/continueButton"
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginHorizontal="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/medium_spacing"
android:contentDescription="@string/AccessibilityId_link_device"
android:text="@string/continue_2" />
</LinearLayout>

View File

@ -17,7 +17,6 @@
<!-- Landing Page --> <!-- Landing Page -->
<string name="AccessibilityId_create_session_id">Create session ID</string> <string name="AccessibilityId_create_session_id">Create session ID</string>
<string name="AccessibilityId_restore_your_session">Restore Your Session</string> <string name="AccessibilityId_restore_your_session">Restore Your Session</string>
<string name="AccessibilityId_link_a_device">Link a device</string>
<string name="AccessibilityId_link_device">Link Device</string> <string name="AccessibilityId_link_device">Link Device</string>
<!-- Session ID Page--> <!-- Session ID Page-->
<string name="AccessibilityId_session_id">Session ID</string> <string name="AccessibilityId_session_id">Session ID</string>
@ -880,9 +879,7 @@
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string> <string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string> <string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string> <string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string> <string name="qrScan">Scan QR Code</string>
<string name="activity_link_device_recovery_phrase">Recovery Phrase</string>
<string name="activity_link_device_scan_qr_code">Scan QR Code</string>
<string name="activity_link_device_qr_message">Navigate to Settings → Recovery Phrase on your other device to show your QR code.</string> <string name="activity_link_device_qr_message">Navigate to Settings → Recovery Phrase on your other device to show your QR code.</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these…</string> <string name="activity_join_public_chat_join_rooms">Or join one of these…</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string> <string name="activity_pn_mode_message_notifications">Message Notifications</string>
@ -1076,26 +1073,30 @@
<string name="unread_marker">Unread Messages</string> <string name="unread_marker">Unread Messages</string>
<string name="auto_deletes_in">Auto-deletes in %1$s</string> <string name="auto_deletes_in">Auto-deletes in %1$s</string>
<string name="activity_recovery_password">Recovery Password</string> <string name="onboardingBubblePrivacyInYourPocket">Privacy in your pocket.</string>
<string name="onboardingBubbleWelcomeToSession">Welcome to Session 👋</string>
<string name="onboardingBubbleSessionIsEngineered">Session is engineered to protect your privacy.</string>
<string name="onboardingBubbleNoPhoneNumber">"You dont even need a phone number to sign up. "</string>
<string name="onboardingBubbleCreatingAnAccountIsEasy">Creating an account is \ninstant, free, and \nanonymous 👇</string>
<string name="onboardingAccountCreate">Create account</string>
<string name="onboardingAccountExists">I have an account</string>
<string name="onboardingTosPrivacy">By using this service, you agree to our Terms of Service and Privacy Policy</string>
<string name="qrNotRecoveryPassword">This QR code does not contain a Recovery Password.</string>
<string name="recoveryPasswordErrorMessageShort">The Recovery Password you entered is not long enough. Please check and try again.</string>
<string name="recoveryPasswordErrorMessageIncorrect">Some of the words in your Recovery Password are incorrect. Please check and try again.</string>
<string name="recoveryPasswordErrorMessageGeneric">Please check your Recovery Password and try again.</string>
<string name="cameraGrantAccess">Grant Camera Access</string>
<string name="sessionRecoveryPassword">Recovery Password</string>
<string name="recoveryPasswordEnter">Enter your recovery password</string>
<string name="sessionSettings">Settings</string>
<string name="onboarding_privacy_in_your_pocket">Privacy in your pocket.</string>
<string name="onboarding_welcome_to_session">Welcome to Session 👋</string>
<string name="onboarding_session_is_engineered_to_protect_your_privacy">Session is engineered\nto protect your privacy.</string>
<string name="onboarding_you_don_t_even_need_a_phone_number_to_sign_up">"You dont even need a phone number to sign up. "</string>
<string name="onboarding_creating_an_account_is_instant_free_and_anonymous">Creating an account is \ninstant, free, and \nanonymous 👇</string>
<string name="onboarding_create_account">Create account</string>
<string name="onboarding_i_have_an_account">I have an account</string>
<string name="onboarding_by_using_this_service_you_agree_to_our_terms_of_service_and_privacy_policy">By using this service, you agree to our Terms of Service and Privacy Policy</string>
<string name="activity_link_this_qr_code_does_not_contain_a_recovery_password">This QR code does not contain a Recovery Password.</string>
<string name="activity_link_the_recovery_password_you_entered_is_not_long_enough_please_check_and_try_again">The Recovery Password you entered is not long enough. Please check and try again.</string>
<string name="activity_link_some_of_the_words_in_your_recovery_password_are_incorrect_please_check_and_try_again">Some of the words in your Recovery Password are incorrect. Please check and try again.</string>
<string name="activity_link_please_check_your_recovery_password_and_try_again">Please check your Recovery Password and try again.</string>
<string name="activity_link_load_account">Load Account</string> <string name="activity_link_load_account">Load Account</string>
<string name="activity_link_camera_permission_permanently_denied_configure_in_settings">Camera Permission permanently denied. Configure in settings.</string> <string name="activity_link_camera_permission_permanently_denied_configure_in_settings">Camera Permission permanently denied. Configure in settings.</string>
<string name="activity_link_settings">Settings</string>
<string name="activity_link_grant_camera_permission">Grant Camera Permission</string>
<string name="activity_link_recovery_password">Recovery Password</string>
<string name="activity_link_enter_your_recovery_password_to_load_your_account_if_you_haven_t_saved_it_you_can_find_it_in_your_app_settings">Enter your recovery password to load your account. If you haven\'t saved it, you can find it in your app settings.</string> <string name="activity_link_enter_your_recovery_password_to_load_your_account_if_you_haven_t_saved_it_you_can_find_it_in_your_app_settings">Enter your recovery password to load your account. If you haven\'t saved it, you can find it in your app settings.</string>
<string name="activity_link_enter_your_recovery_password">Enter your recovery password</string>
</resources> </resources>