Improve strings so that they are reused only as reference

This commit is contained in:
Julian Raufelder 2021-07-09 19:21:31 +02:00
parent bed3f3ac04
commit fc057003bf
No known key found for this signature in database
GPG Key ID: 17EE71F6634E381D
38 changed files with 155 additions and 122 deletions

View File

@ -174,7 +174,7 @@ public class FileOperationsTest {
device.waitForWindowUpdate(packageName, 500);
onView(withText(R.string.dialog_button_cancel)) //
onView(withText(R.string.dialog_upload_file_cancel_button)) //
.perform(click());
awaitCompleted();
@ -630,10 +630,10 @@ public class FileOperationsTest {
openShareFile();
try {
device //
.findObject(new UiSelector().text(context.getString(R.string.share_with_label))) //
.findObject(new UiSelector().text(context.getString(R.string.screen_share_label))) //
.waitForExists(30000L);
device //
.findObject(new UiSelector().text(context.getString(R.string.share_with_label))) //
.findObject(new UiSelector().text(context.getString(R.string.screen_share_label))) //
.click();
} catch (UiObjectNotFoundException e) {
throw new AssertionError("Share with Cryptomator not available");

View File

@ -267,7 +267,7 @@ public class FolderOperationsTest {
onView(allOf( //
withId(android.R.id.button1), //
withText(R.string.screen_enter_vault_name_button_text))) //
withText(R.string.screen_enter_vault_name_button))) //
.perform(click());
awaitCompleted();

View File

@ -139,7 +139,7 @@ class AuthenticateCloudPresenter @Inject constructor( //
private fun failAuthentication(cloudName: Int) {
activity().runOnUiThread {
view?.showMessage(String.format(getString(R.string.screen_authenticate_auth_authentication_failed), getString(cloudName)))
view?.showMessage(String.format(getString(R.string.screen_authenticate_authentication_failed), getString(cloudName)))
}
finish()
}

View File

@ -70,7 +70,7 @@
android:excludeFromRecents="true"
android:taskAffinity=".share"
android:windowSoftInputMode="stateHidden|adjustPan">
<intent-filter android:label="@string/share_with_label">
<intent-filter android:label="@string/screen_share_label">
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />

View File

@ -145,9 +145,9 @@ class AutoUploadChooseVaultPresenter @Inject constructor( //
.withTitle(vaultModel.name) //
.withChooseCloudNodeSettings( //
ChooseCloudNodeSettings.chooseCloudNodeSettings() //
.withExtraTitle(context().getString(R.string.screen_file_browser_share_destination_title)) //
.withExtraTitle(context().getString(R.string.screen_auto_upload_choose_folder_title)) //
.withExtraToolbarIcon(R.drawable.ic_clear) //
.withButtonText(context().getString(R.string.screen_file_browser_share_button_text)) //
.withButtonText(context().getString(R.string.screen_auto_upload_choose_button)) //
.selectingFolders() //
.build()
)

View File

@ -965,7 +965,7 @@ class BrowseFilesPresenter @Inject constructor( //
.withChooseCloudNodeSettings( //
ChooseCloudNodeSettings.chooseCloudNodeSettings() //
.withExtraTitle(effectiveMoveExtraTitle(sourceNodes)) //
.withButtonText(context().getString(R.string.screen_file_browser_move_button_text)) //
.withButtonText(context().getString(R.string.screen_file_browser_move_button)) //
.withNavigationMode(ChooseCloudNodeSettings.NavigationMode.MOVE_CLOUD_NODE) //
.withExtraToolbarIcon(R.drawable.ic_clear) //
.selectingFoldersNotContaining(sourceNodes.map { node -> node.name }) //

View File

@ -340,9 +340,9 @@ class SharedFilesPresenter @Inject constructor( //
.withTitle(vaultModel.name) //
.withChooseCloudNodeSettings( //
ChooseCloudNodeSettings.chooseCloudNodeSettings() //
.withExtraTitle(context().getString(R.string.screen_file_browser_share_destination_title)) //
.withExtraTitle(context().getString(R.string.screen_share_files_destination_subtitle)) //
.withExtraToolbarIcon(R.drawable.ic_clear) //
.withButtonText(context().getString(R.string.screen_file_browser_share_button_text)) //
.withButtonText(context().getString(R.string.screen_file_browser_share_button)) //
.selectingFolders() //
.build()
)

View File

@ -67,7 +67,7 @@ class LicenseCheckActivity : BaseActivity(), UpdateLicenseDialog.Callback, Licen
}
private fun setupToolbar() {
toolbar.title = getString(R.string.app_name).uppercase()
toolbar.title = getString(R.string.screen_license_title).uppercase()
setSupportActionBar(toolbar)
}

View File

@ -99,7 +99,7 @@ class VaultListActivity : BaseActivity(), //
}
private fun setupToolbar() {
toolbar.title = getString(R.string.app_name).uppercase()
toolbar.title = getString(R.string.screen_vault_list_toolbar_title).uppercase()
setSupportActionBar(toolbar)
}

View File

@ -16,10 +16,10 @@ class AskForLockScreenDialog : BaseDialog<AskForLockScreenDialog.Callback>() {
}
override fun setupDialog(builder: AlertDialog.Builder): android.app.Dialog {
builder //
return builder //
.setTitle(R.string.dialog_no_screen_lock_title) //
.setNeutralButton(getString(R.string.dialog_unable_to_share_positive_button)) { _: DialogInterface, _: Int -> callback?.onAskForLockScreenFinished(cb_select_screen_lock.isChecked) }
return builder.create()
.setNeutralButton(getString(R.string.dialog_no_screen_lock_neutral_button)) { _: DialogInterface, _: Int -> callback?.onAskForLockScreenFinished(cb_select_screen_lock.isChecked) } //
.create()
}
public override fun setupView() {

View File

@ -30,11 +30,11 @@ class AssignSslCertificateDialog : BaseDialog<AssignSslCertificateDialog.Callbac
public override fun setupDialog(builder: AlertDialog.Builder): android.app.Dialog {
builder //
.setTitle(requireContext().getString(R.string.dialog_accept_ssl_certificate_title))
.setPositiveButton(requireActivity().getString(R.string.dialog_unable_to_share_positive_button)) { _: DialogInterface, _: Int ->
.setPositiveButton(requireActivity().getString(R.string.dialog_accept_ssl_certificate_positive_button)) { _: DialogInterface, _: Int ->
val cloud = requireArguments().getSerializable(WEBDAV_CLOUD) as WebDavCloud
callback?.onAcceptCertificateClicked(cloud, certificate)
} //
.setNegativeButton(requireContext().getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int ->
.setNegativeButton(requireContext().getString(R.string.dialog_accept_ssl_certificate_negative_button)) { _: DialogInterface, _: Int ->
callback?.onAcceptCertificateDenied()
}
return builder.create()

View File

@ -17,7 +17,7 @@ class BetaConfirmationDialog : BaseDialog<BetaConfirmationDialog.Callback>() {
public override fun setupDialog(builder: AlertDialog.Builder): android.app.Dialog {
builder //
.setTitle(R.string.dialog_beta_confirmation_title) //
.setNeutralButton(getString(R.string.dialog_unable_to_share_positive_button)) { _: DialogInterface, _: Int -> callback?.onAskForBetaConfirmationFinished() }
.setNeutralButton(getString(R.string.dialog_beta_confirmation_neutral_button)) { _: DialogInterface, _: Int -> callback?.onAskForBetaConfirmationFinished() }
return builder.create()
}

View File

@ -93,8 +93,8 @@ class ChangePasswordDialog : BaseProgressErrorDialog<ChangePasswordDialog.Callba
val vaultModel = requireArguments().getSerializable(VAULT_ARG) as VaultModel
return builder //
.setTitle(vaultModel.name) //
.setPositiveButton(getString(R.string.dialog_change_password)) { _: DialogInterface, _: Int -> } //
.setNegativeButton(getString(R.string.dialog_button_cancel)) { _: DialogInterface?, _: Int -> } //
.setPositiveButton(getString(R.string.dialog_change_password_positive_button)) { _: DialogInterface, _: Int -> } //
.setNegativeButton(getString(R.string.dialog_change_password_negative_button)) { _: DialogInterface?, _: Int -> } //
.create()
}

View File

@ -52,7 +52,7 @@ class CloudNodeRenameDialog : BaseProgressErrorDialog<CloudNodeRenameDialog.Call
return builder
.setTitle(getTitle(cloudNodeModel))
.setPositiveButton(requireActivity().getString(R.string.dialog_rename_node_positive_button)) { _: DialogInterface, _: Int -> }
.setNegativeButton(requireActivity().getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int -> }
.setNegativeButton(requireActivity().getString(R.string.dialog_rename_node_negative_button)) { _: DialogInterface, _: Int -> }
.create()
}

View File

@ -45,7 +45,7 @@ class CreateFolderDialog : BaseProgressErrorDialog<CreateFolderDialog.Callback>(
override fun setupDialog(builder: AlertDialog.Builder): android.app.Dialog {
return builder.setTitle(requireContext().getString(R.string.dialog_create_folder_title))
.setPositiveButton(requireContext().getString(R.string.dialog_create_folder_positive_button)) { _: DialogInterface, _: Int -> }
.setNegativeButton(requireContext().getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int -> }
.setNegativeButton(requireContext().getString(R.string.dialog_create_folder_negative_button)) { _: DialogInterface, _: Int -> }
.create()
}

View File

@ -23,10 +23,10 @@ class EnrollSystemBiometricDialog : BaseDialog<EnrollSystemBiometricDialog.Callb
builder //
.setTitle(getString(R.string.dialog_no_biometric_auth_set_up_title)) //
.setPositiveButton(
getString(R.string.dialog_unable_to_share_positive_button) //
getString(R.string.dialog_no_biometric_auth_set_up_positive_button) //
) { _: DialogInterface, _: Int -> callback?.onSetupBiometricAuthInSystemClicked() }
.setNegativeButton(
getString(R.string.dialog_button_cancel) //
getString(R.string.dialog_no_biometric_auth_set_up_negative_button) //
) { _: DialogInterface?, _: Int -> callback?.onCancelSetupBiometricAuthInSystemClicked() }
return builder.create()
}

View File

@ -53,7 +53,7 @@ class EnterPasswordDialog : BaseProgressErrorDialog<EnterPasswordDialog.Callback
return builder //
.setTitle(vaultModel().name) //
.setPositiveButton(getString(R.string.dialog_enter_password_positive_button)) { _: DialogInterface, _: Int -> }
.setNegativeButton(getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int ->
.setNegativeButton(getString(R.string.dialog_enter_password_negative_button)) { _: DialogInterface, _: Int ->
callback?.onUnlockCanceled()
callback?.closeDialog()
}.create()

View File

@ -20,7 +20,7 @@ class ExistingFileDialog : BaseDialog<ExistingFileDialog.Callback>() {
val fileUri = requireArguments().getParcelable<Uri>(FILE_URI_ARG)
builder.setTitle(getString(R.string.dialog_existing_file_title)) //
.setPositiveButton(getString(R.string.dialog_existing_file_positive_button)) { _: DialogInterface?, _: Int -> fileUri?.let { callback?.onReplaceClick(it) } } //
.setNegativeButton(getString(R.string.dialog_button_cancel)) { _: DialogInterface?, _: Int -> }
.setNegativeButton(getString(R.string.dialog_existing_file_negative_button)) { _: DialogInterface?, _: Int -> }
return builder.create()
}

View File

@ -19,7 +19,7 @@ class FileTypeNotSupportedDialog : BaseDialog<FileTypeNotSupportedDialog.Callbac
val cloudFileModel = requireArguments().getSerializable(CLOUD_FILE_ARG) as CloudFileModel
builder.setTitle(String.format(getString(R.string.dialog_filetype_not_supported_title), cloudFileModel.name))
.setPositiveButton(getString(R.string.dialog_filetype_not_supported_positive_button)) { _: DialogInterface, _: Int -> callback?.onExportFileAfterAppChooserClicked(cloudFileModel) } //
.setNegativeButton(getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int -> }
.setNegativeButton(getString(R.string.dialog_filetype_not_supported_negative_button)) { _: DialogInterface, _: Int -> }
return builder.create()
}

View File

@ -39,7 +39,7 @@ class PCloudCredentialsUpdatedDialog : BaseDialog<PCloudCredentialsUpdatedDialog
val username = requireArguments().getString(ARG_PCLOUD_USERNAME)
builder //
.setTitle(String.format(ResourceHelper.getString(R.string.dialog_pcloud_credentials_updated_title), username)) //
.setNeutralButton(getString(R.string.dialog_unable_to_share_positive_button)) { _: DialogInterface, _: Int ->
.setNeutralButton(getString(R.string.dialog_pcloud_credentials_updated_neutral_button)) { _: DialogInterface, _: Int ->
callback?.onNotifyForPCloudCredentialsUpdateFinished()
}
return builder.create()

View File

@ -50,7 +50,7 @@ class ReplaceDialog private constructor(private val context: Context) {
}
private fun effectiveReplaceDialogNeutralButton(): String {
return ResourceHelper.getString(R.string.dialog_button_cancel)
return ResourceHelper.getString(R.string.dialog_replace_neutral_button)
}
private fun effectiveReplaceDialogMessage(existingFiles: List<String>, uploadingFilesCount: Int): String {

View File

@ -19,8 +19,8 @@ class VaultDeleteConfirmationDialog : BaseDialog<VaultDeleteConfirmationDialog.C
public override fun setupDialog(builder: AlertDialog.Builder): android.app.Dialog {
val vaultModel = requireArguments().getSerializable(VAULT_ARG) as VaultModel
builder.setTitle(vaultModel.name) //
.setPositiveButton(getString(R.string.dialog_delete_vault_positive_button_text)) { _: DialogInterface, _: Int -> callback?.onDeleteConfirmedClick(vaultModel) } //
.setNegativeButton(getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int -> }
.setPositiveButton(getString(R.string.dialog_delete_vault_positive_button)) { _: DialogInterface, _: Int -> callback?.onDeleteConfirmedClick(vaultModel) } //
.setNegativeButton(getString(R.string.dialog_delete_vault_negative_button)) { _: DialogInterface, _: Int -> }
return builder.create()
}

View File

@ -22,8 +22,8 @@ class VaultNotFoundDialog private constructor(private val context: Context) {
AlertDialog.Builder(context) //
.setTitle(String.format(ResourceHelper.getString(R.string.dialog_vault_not_found_title), vault.name)) //
.setMessage(ResourceHelper.getString(R.string.dialog_vault_not_found_message)) //
.setPositiveButton(ResourceHelper.getString(R.string.dialog_vault_not_found_positive_button_text)) { _: DialogInterface, _: Int -> callback.onDeleteMissingVaultClicked(vault) } //
.setNegativeButton(ResourceHelper.getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int -> callback.onCancelMissingVaultClicked(vault) } //
.setPositiveButton(ResourceHelper.getString(R.string.dialog_vault_not_found_positive_button)) { _: DialogInterface, _: Int -> callback.onDeleteMissingVaultClicked(vault) } //
.setNegativeButton(ResourceHelper.getString(R.string.dialog_vault_not_found_negative_button)) { _: DialogInterface, _: Int -> callback.onCancelMissingVaultClicked(vault) } //
.setOnCancelListener { callback.onCancelMissingVaultClicked(vault) }
.create().show()
}

View File

@ -47,7 +47,7 @@ class VaultRenameDialog : BaseProgressErrorDialog<VaultRenameDialog.Callback>()
return builder
.setTitle(requireContext().getString(R.string.dialog_rename_vault_title))
.setPositiveButton(requireContext().getString(R.string.dialog_rename_vault_positive_button)) { _: DialogInterface, _: Int -> }
.setNegativeButton(requireContext().getString(R.string.dialog_button_cancel)) { _: DialogInterface, _: Int -> }
.setNegativeButton(requireContext().getString(R.string.dialog_rename_vault_negative_button)) { _: DialogInterface, _: Int -> }
.create()
}

View File

@ -98,7 +98,7 @@ public class CreateNewVaultWorkflow extends Workflow<CreateNewVaultWorkflow.Stat
chooseCloudNodeSettings() //
.withExtraTitle(presenter().context().getString(R.string.screen_file_browser_subtitle_create_new_vault)) //
.withExtraText(presenter().context().getString(R.string.screen_file_browser_create_new_vault_extra_text, state().name)) //
.withButtonText(presenter().context().getString(R.string.screen_file_browser_create_new_vault_button_text)) //
.withButtonText(presenter().context().getString(R.string.screen_file_browser_create_new_vault_button)) //
.selectingFoldersNotContaining(singletonList(state().name)) //
.build()), //
SerializableResultCallbacks.locationChosen());

View File

@ -35,7 +35,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/screen_enter_vault_name_button_text"
android:text="@string/screen_enter_vault_name_button"
android:textStyle="bold" />
</LinearLayout>

View File

@ -61,7 +61,7 @@
<TextView
android:id="@+id/change_password"
style="@style/AppTheme.ListItem"
android:text="@string/dialog_change_password"
android:text="@string/screen_vault_list_vault_action_change_password"
app:drawableStartCompat="@drawable/ic_swap_horiz" />
<TextView

View File

@ -56,7 +56,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/screen_set_password_button_text"
android:text="@string/screen_set_password_button"
android:textStyle="bold" />
</LinearLayout>

View File

@ -114,7 +114,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/screen_webdav_settings_done_button_text"
android:text="@string/screen_s3_settings_positive_button"
android:textStyle="bold" />
</LinearLayout>

View File

@ -67,7 +67,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/screen_webdav_settings_done_button_text"
android:text="@string/screen_webdav_settings_done_button"
android:textStyle="bold" />
</LinearLayout>

View File

@ -18,7 +18,7 @@
android:layout_alignParentEnd="true"
android:layout_margin="10dp"
android:background="@drawable/primary_button_selector"
android:text="@string/screen_share_files_save_button_text"
android:text="@string/screen_share_files_save_button"
android:textColor="@color/textColorWhite" />
</RelativeLayout>

View File

@ -17,6 +17,6 @@
<Button
android:id="@+id/bt_retry"
style="@style/AppTheme.RetryButton"
android:text="@string/screen_file_browser_no_connection_button_text" />
android:text="@string/screen_file_browser_no_connection_button" />
</RelativeLayout>

View File

@ -4,39 +4,39 @@
<item
android:id="@+id/action_search"
android:title="@string/snack_bar_action_title_search"
android:title="@string/screen_file_browser_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom" />
<item
android:icon="@drawable/ic_sort"
android:title="@string/snack_bar_action_title_sort"
android:title="@string/screen_file_browser_sort"
app:showAsAction="ifRoom">
<menu>
<item
android:id="@+id/action_sort_az"
android:icon="@drawable/ic_sort_az"
android:title="@string/snack_bar_action_title_sort_az" />
android:title="@string/screen_file_browser_sort_az" />
<item
android:id="@+id/action_sort_za"
android:icon="@drawable/ic_sort_za"
android:title="@string/snack_bar_action_title_sort_za" />
android:title="@string/screen_file_browser_sort_za" />
<item
android:id="@+id/action_sort_newest"
android:icon="@drawable/ic_sort_newest"
android:title="@string/snack_bar_action_title_sort_newest" />
android:title="@string/screen_file_browser_sort_newest" />
<item
android:id="@+id/action_sort_oldest"
android:icon="@drawable/ic_sort_oldest"
android:title="@string/snack_bar_action_title_sort_oldest" />
android:title="@string/screen_file_browser_sort_oldest" />
<item
android:id="@+id/action_sort_biggest"
android:icon="@drawable/ic_sort_biggest"
android:title="@string/snack_bar_action_title_sort_biggest" />
android:title="@string/screen_file_browser_sort_biggest" />
<item
android:id="@+id/action_sort_smallest"
android:icon="@drawable/ic_sort_smallest"
android:title="@string/snack_bar_action_title_sort_smallest" />
android:title="@string/screen_file_browser_sort_smallest" />
</menu>
</item>

View File

@ -5,7 +5,7 @@
<item
android:id="@+id/action_search"
android:title="@string/snack_bar_action_title_search"
android:title="@string/screen_file_browser_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom" />

View File

@ -4,7 +4,7 @@
<item
android:id="@+id/action_search"
android:title="@string/snack_bar_action_title_search"
android:title="@string/screen_file_browser_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom" />
@ -17,7 +17,7 @@
<item
android:id="@+id/action_move_items"
android:enabled="false"
android:title="@string/screen_file_browser_move_button_text"
android:title="@string/screen_file_browser_move_button"
app:showAsAction="never" />
<item

View File

@ -5,28 +5,28 @@
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_search_white"
android:title="@string/snack_bar_action_title_search"
android:title="@string/screen_text_editor_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView" />
<item
android:id="@+id/action_search_previous"
android:icon="@drawable/ic_chevron_left"
android:title="@string/snack_bar_action_title_search_previous"
android:title="@string/screen_text_editor_search_previous"
android:visible="false"
app:showAsAction="always" />
<item
android:id="@+id/action_search_next"
android:icon="@drawable/ic_chevron_right"
android:title="@string/snack_bar_action_title_search_next"
android:title="@string/screen_text_editor_search_next"
android:visible="false"
app:showAsAction="always" />
<item
android:id="@+id/action_save_changes"
android:icon="@drawable/ic_save"
android:title="@string/screen_cloud_settings_title"
android:title="@string/screen_text_editor_save"
app:showAsAction="ifRoom" />
</menu>

View File

@ -5,8 +5,6 @@
<!-- # app -->
<string name="app_name" translatable="false">Cryptomator</string>
<string name="download_subdirectory_name" translatable="false">@string/app_name</string>
<string name="share_with_label">Encrypt</string>
<!-- # error messages -->
<string name="error_generic">An error occurred</string>
@ -59,37 +57,31 @@
<string name="permission_message_upload_file">Cryptomator needs storage access to upload files</string>
<string name="permission_message_share_file">Cryptomator needs storage access to share files</string>
<string name="snack_bar_action_title_settings">Settings</string>
<string name="snack_bar_action_title_search">Search</string>
<string name="snack_bar_action_title_search_previous">Previous</string>
<string name="snack_bar_action_title_search_next">Next</string>
<string name="permission_snackbar_auth_local_vault">Cryptomator needs storage access to use local vaults</string>
<string name="permission_snackbar_auth_auto_upload">Cryptomator needs storage access to use auto photo upload</string>
<string name="snack_bar_action_title_sort">Sort</string>
<string name="snack_bar_action_title_sort_az">A - Z</string>
<string name="snack_bar_action_title_sort_za">Z - A</string>
<string name="snack_bar_action_title_sort_newest">Newest first</string>
<string name="snack_bar_action_title_sort_oldest">Oldest first</string>
<string name="snack_bar_action_title_sort_biggest">Biggest first</string>
<string name="snack_bar_action_title_sort_smallest">Smallest first</string>
<string name="snack_bar_action_title_settings">Settings</string>
<!-- # screens -->
<!-- # screen: vault list -->
<!-- ## screen: vault list -->
<string name="screen_vault_list_toolbar_title" translatable="false">@string/app_name</string>
<string name="screen_vault_list_actions_title">Add to Cryptomator</string>
<string name="screen_vault_list_action_create_new_vault">Create new vault</string>
<string name="screen_vault_list_action_add_existing_vault">Add existing vault</string>
<string name="screen_vault_list_vault_action_rename" translatable="false">@string/screen_file_browser_node_action_rename</string>
<string name="screen_vault_list_vault_action_change_password" translatable="false">@string/dialog_change_password_positive_button</string>
<string name="screen_vault_list_vault_action_delete">Remove</string>
<string name="screen_vault_list_vault_creation_hint">Click here to create a new vault</string>
<string name="screen_vault_list_change_password_successful">Password successfully changed</string>
<!-- # screen: file browser -->
<!-- ## screen: file browser -->
<string name="screen_file_browser_default_title">Vault</string>
<string name="screen_file_browser_subtitle_add_existing_vault" translatable="false">@string/screen_vault_list_action_add_existing_vault</string>
<string name="screen_file_browser_add_existing_vault_extra_text">Select masterkey file</string>
<string name="screen_file_browser_subtitle_create_new_vault" translatable="false">@string/screen_vault_list_action_create_new_vault</string>
<string name="screen_file_browser_create_new_vault_button_text">Place here</string>
<string name="screen_file_browser_create_new_vault_button">Place here</string>
<string name="screen_file_browser_create_new_vault_extra_text">Vault name: %1$s</string>
<plurals name="screen_file_browser_subtitle_move">
@ -97,15 +89,14 @@
<item quantity="other">Move %2$d items to</item>
</plurals>
<string name="screen_file_browser_move_button_text">Move</string>
<string name="screen_file_browser_move_button">Move</string>
<string name="screen_file_browser_msg_empty_folder">Empty folder</string>
<string name="screen_file_browser_file_info_label_size" translatable="false">%1$s</string>
<string name="screen_file_browser_file_info_label_date">modified %1$s ago</string>
<string name="screen_file_browser_share_intent_chooser_title">Share with</string>
<string name="screen_file_browser_share_destination_title">Choose a destination</string>
<string name="screen_file_browser_share_button_text">Choose</string>
<string name="screen_file_browser_share_button">Choose</string>
<string name="screen_file_browser_nothing_to_share">Nothing to share</string>
<string name="screen_file_browser_actions_title">Add to %1$s</string>
@ -123,7 +114,7 @@
<string name="screen_file_browser_node_action_share">Share</string>
<string name="screen_file_browser_node_action_rename">Rename</string>
<string name="screen_file_browser_node_action_edit_text">Edit</string>
<string name="screen_file_browser_node_action_move" translatable="false">@string/screen_file_browser_move_button_text</string>
<string name="screen_file_browser_node_action_move" translatable="false">@string/screen_file_browser_move_button</string>
<string name="screen_file_browser_node_action_export">Export</string>
<string name="screen_file_browser_node_action_delete">Delete</string>
<string name="screen_file_browser_node_action_open_with_text">Open with&#8230;</string>
@ -134,14 +125,34 @@
<string name="screen_file_browser_select_all_items">Select all</string>
<string name="screen_file_browser_refresh_items">Refresh</string>
<string name="screen_file_browser_search">Search</string>
<string name="screen_file_browser_sort">Sort</string>
<string name="screen_file_browser_sort_az">A - Z</string>
<string name="screen_file_browser_sort_za">Z - A</string>
<string name="screen_file_browser_sort_newest">Newest first</string>
<string name="screen_file_browser_sort_oldest">Oldest first</string>
<string name="screen_file_browser_sort_biggest">Biggest first</string>
<string name="screen_file_browser_sort_smallest">Smallest first</string>
<string name="screen_file_browser_no_connection_message">No connection</string>
<string name="screen_file_browser_no_connection_button_text">Retry</string>
<string name="screen_file_browser_no_connection_button">Retry</string>
<!-- ## screen: text editor -->
<string name="screen_text_editor_save" translatable="false">@string/screen_share_files_save_button</string>
<string name="screen_text_editor_save_success">Successfully saved</string>
<string name="screen_text_editor_search" translatable="false">@string/screen_file_browser_search</string>
<string name="screen_text_editor_search_previous">Previous</string>
<string name="screen_text_editor_search_next">Next</string>
<!-- ## screen: share files -->
<string name="screen_share_label">Encrypt</string>
<string name="screen_share_files_title">Save %1$s to&#8230;</string>
<string name="screen_share_files_destination_subtitle">Choose a destination</string>
<string name="screen_file_browser_share_destination_title">Choose a destination</string>
<string name="screen_share_files_content_text">text</string>
<string name="screen_share_files_content_file">file</string>
<string name="screen_share_files_content_files">files</string>
@ -149,7 +160,7 @@
<string name="screen_share_files_msg_filenames_must_be_unique">Filenames have to be unique, please rename the duplicates.</string>
<string name="screen_share_files_section_files" translatable="false">@string/screen_share_files_content_files</string>
<string name="screen_share_files_section_location">Save location</string>
<string name="screen_share_files_save_button_text">Save</string>
<string name="screen_share_files_save_button">Save</string>
<string name="screen_share_files_msg_success">Encryption completed</string>
<string name="screen_share_files_new_text_file" translatable="false">@string/dialog_file_name_placeholder</string>
@ -173,7 +184,7 @@
<string name="screen_webdav_settings_url_port_label">URL</string>
<string name="screen_webdav_settings_username_label">Username</string>
<string name="screen_webdav_settings_password_label">Password</string>
<string name="screen_webdav_settings_done_button_text">Connect</string>
<string name="screen_webdav_settings_done_button">Connect</string>
<string name="screen_webdav_settings_msg_url_must_not_be_empty">URL can\'t be empty.</string>
<string name="screen_webdav_settings_msg_url_is_invalid">URL is invalid.</string>
<string name="screen_webdav_settings_msg_username_must_not_be_empty">Username can\'t be empty.</string>
@ -188,6 +199,7 @@
<string name="screen_s3_settings_endpoint_label">Endpoint</string>
<string name="screen_s3_settings_region_label">Region</string>
<string name="screen_s3_settings_amazon_s3_text" translatable="false">Amazon S3</string>
<string name="screen_s3_settings_positive_button" translatable="false">@string/screen_webdav_settings_done_button</string>
<string name="screen_s3_settings_msg_display_name_not_empty">Display Name can\'t be empty</string>
<string name="screen_s3_settings_msg_access_key_not_empty">Access Key can\'t be empty</string>
@ -199,13 +211,13 @@
<string name="screen_enter_vault_name_title" translatable="false">@string/screen_vault_list_action_create_new_vault</string>
<string name="screen_enter_vault_name_msg_name_empty">Vault name can\'t be empty.</string>
<string name="screen_enter_vault_name_vault_label">Vault name</string>
<string name="screen_enter_vault_name_button_text">Create</string>
<string name="screen_enter_vault_name_button">Create</string>
<!-- ## screen: set password -->
<string name="screen_set_password_title">Set password</string>
<string name="screen_set_password_msg_password_empty" translatable="false">@string/screen_webdav_settings_msg_password_must_not_be_empty</string>
<string name="screen_set_password_msg_password_mismatch">Password doesn\'t match retyped password.</string>
<string name="screen_set_password_button_text">Done</string>
<string name="screen_set_password_button">Done</string>
<string name="screen_set_password_hint">IMPORTANT: If you forget your password, there is no way to recover your data.</string>
<string name="screen_set_password_password_label" translatable="false">@string/screen_webdav_settings_password_label</string>
<string name="screen_set_password_retype_password_label">Retype password</string>
@ -247,7 +259,7 @@
<string name="screen_settings_auto_photo_upload_title">Save auto upload files to&#8230;</string>
<string name="screen_settings_section_social" translatable="false">@string/screen_webdav_settings_done_button_text</string>
<string name="screen_settings_section_social" translatable="false">@string/screen_webdav_settings_done_button</string>
<string name="screen_settings_website_label">Cryptomator website</string>
<string name="screen_settings_twitter_label">Follow us on Twitter</string>
<string name="screen_settings_facebook_label">Like us on Facebook</string>
@ -255,6 +267,9 @@
<string name="screen_settings_facebook_uri" translatable="false">https://facebook.com/Cryptomator</string>
<string name="screen_settings_twitter_uri" translatable="false">https://twitter.com/Cryptomator</string>
<string name="screen_settings_license">Registered for</string>
<string name="screen_settings_license_mail">%1$s</string>
<string name="screen_settings_section_legal">Legal</string>
<string name="screen_settings_licenses_label">Licenses</string>
<string name="screen_settings_license_terms_label">License terms</string>
@ -276,6 +291,21 @@
<string name="screen_settings_keep_unlocked_while_editing_files">Keep unlocked</string>
<string name="screen_settings_keep_unlocked_while_editing_files_summary">Keep vaults unlocked while editing files</string>
<string name="screen_settings_lru_cache">Cache</string>
<string name="screen_settings_lru_cache_toggle" translatable="false">@string/screen_settings_section_auto_photo_upload_toggle</string>
<string name="screen_settings_lru_cache_toggle_summary">Cache recently accessed files encrypted locally on the device for later reuse when reopened</string>
<string name="screen_settings_lru_cache_size">Total cache size</string>
<string name="screen_settings_lru_cache_changed__restart_toast">Changes will be applied on next app restart</string>
<string name="screen_settings_clear_lru_cache_size">Clear Cache</string>
<string name="screen_settings_check_updates">Check for updates</string>
<string name="screen_settings_last_check_updates">Last run %1$s</string>
<string name="screen_settings_last_check_updates_never" translatable="false">@string/lock_timeout_never</string>
<!-- ## screen: choose folder for auto photo upload -->
<string name="screen_auto_upload_choose_folder_title" translatable="false">@string/screen_file_browser_share_destination_title</string>
<string name="screen_auto_upload_choose_button" translatable="false">@string/screen_file_browser_share_button</string>
<!-- ## screen: cloud settings -->
<string name="screen_cloud_settings_title" translatable="false">@string/screen_settings_cloud_settings_label</string>
<string name="screen_cloud_settings_webdav_connections">WebDAV connections</string>
@ -288,8 +318,11 @@
<!-- ## screen: licenses -->
<string name="screen_licenses_title" translatable="false">@string/screen_settings_licenses_label</string>
<!-- ## screen: license check -->
<string name="screen_license_title" translatable="false">@string/app_name</string>
<!-- ## screen: authenticate cloud -->
<string name="screen_authenticate_auth_authentication_failed">%1$s could not be authenticated.</string>
<string name="screen_authenticate_authentication_failed">%1$s could not be authenticated.</string>
<string name="screen_update_pcloud_connections_title">Update pCloud credentials</string>
<!-- ## screen: empty dir file info -->
@ -301,18 +334,19 @@
<!-- ## screen: insecure android version info -->
<!-- # dialogs -->
<string name="dialog_button_cancel">Cancel</string>
<string name="dialog_create_folder_title" translatable="false">@string/screen_file_browser_action_create_folder</string>
<string name="dialog_create_folder_positive_button" translatable="false">@string/screen_enter_vault_name_button_text</string>
<string name="dialog_create_folder_positive_button" translatable="false">@string/screen_enter_vault_name_button</string>
<string name="dialog_create_folder_negative_button">Cancel</string>
<string name="dialog_enter_password_password_label" translatable="false">@string/screen_webdav_settings_password_label</string>
<string name="dialog_enter_password_positive_button">Unlock</string>
<string name="dialog_enter_password_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_change_password_old_password_label">Old Password</string>
<string name="dialog_change_password_new_password_label">New Password</string>
<string name="dialog_change_password_new_retype_password_label" translatable="false">@string/screen_set_password_retype_password_label</string>
<string name="dialog_change_password">Change password</string>
<string name="dialog_change_password_positive_button">Change password</string>
<string name="dialog_change_password_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_change_password_msg_old_password_empty">Old password can\'t be empty.</string>
<string name="dialog_change_password_msg_new_password_empty">New password can\'t be empty.</string>
<string name="dialog_change_password_msg_password_mismatch">New password doesn\'t match retyped password.</string>
@ -320,16 +354,19 @@
<!-- Vault not found -->
<string name="dialog_vault_not_found_title">Vault %1$s not found</string>
<string name="dialog_vault_not_found_message">The vault has been renamed, moved or deleted. Remove this vault form the list and add it again to proceed. Remove now?</string>
<string name="dialog_vault_not_found_positive_button_text">Remove</string>
<string name="dialog_vault_not_found_positive_button">Remove</string>
<string name="dialog_vault_not_found_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_existing_file_title">File already exists</string>
<string name="dialog_existing_file_positive_button">Replace</string>
<string name="dialog_existing_file_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_existing_file_message">A file named \'%1$s\' already exists.</string>
<string name="dialog_replace_negative_button_at_least_two_but_not_all_files_exist">Skip existing</string>
<string name="dialog_replace_positive_button_all_files_exist">Replace all</string>
<string name="dialog_replace_positive_button_some_files_exist">Replace existing</string>
<string name="dialog_replace_positive_button_single_file_exists">Replace</string>
<string name="dialog_replace_neutral_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_replace_msg_single_file_exists">A file named \'%1$s\' already exists. Do you want to replace it?</string>
<string name="dialog_replace_msg_all_files_exists">All files already exist. Do you want to replace them?</string>
<string name="dialog_replace_msg_some_files_exists">%1$d files already exist. Do you want to replace them?</string>
@ -343,35 +380,39 @@
<string name="dialog_filetype_not_supported_title">Can\'t open %1$s</string>
<string name="dialog_filetype_not_supported_positive_button" translatable="false">@string/screen_file_browser_node_action_export</string>
<string name="dialog_filetype_not_supported_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_filetype_not_supported_message">Please download an app that can open this file or do you like to save to your device?</string>
<string name="dialog_rename_vault_title">Rename vault</string>
<string name="dialog_rename_vault_positive_button" translatable="false">@string/screen_file_browser_node_action_rename</string>
<string name="dialog_rename_vault_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_rename_node_folder_title">Rename folder</string>
<string name="dialog_rename_node_file_title">Rename file</string>
<string name="dialog_rename_node_positive_button" translatable="false">@string/screen_file_browser_node_action_rename</string>
<string name="dialog_rename_node_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_unsaved_changes_title">You have unsaved changes</string>
<string name="dialog_unsaved_changes_message">Do you really want to quit without saving?</string>
<string name="dialog_unsaved_changes_discard">Discard</string>
<string name="dialog_unsaved_changes_save" translatable="false">@string/screen_share_files_save_button_text</string>
<string name="dialog_unsaved_changes_save" translatable="false">@string/screen_share_files_save_button</string>
<string name="dialog_file_name_title" translatable="false">@string/screen_file_browser_action_create_new_text_file</string>
<string name="dialog_file_name_create" translatable="false">@string/screen_enter_vault_name_button_text</string>
<string name="dialog_file_name_cancel" translatable="false">@string/dialog_button_cancel</string>
<string name="dialog_file_name_create" translatable="false">@string/screen_enter_vault_name_button</string>
<string name="dialog_file_name_cancel" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_file_name_placeholder">text.txt</string>
<string name="dialog_delete_vault_positive_button_text" translatable="false">@string/screen_file_browser_node_action_delete</string>
<string name="dialog_delete_vault_positive_button" translatable="false">@string/screen_file_browser_node_action_delete</string>
<string name="dialog_delete_vault_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_delete_vault_message">Are you sure you want to remove this vault?</string>
<string name="dialog_delete_vault_hint">This action will only remove the vault from this list and not delete it physically.</string>
<string name="dialog_upload_file_title">Uploading&#8230;</string>
<string name="dialog_upload_file_cancel_button" translatable="false">@string/dialog_button_cancel</string>
<string name="dialog_upload_file_cancel_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_upload_file_remaining">File %1$d of %2$d</string>
<string name="dialog_export_file_title">Exporting (%1$d/%2$d)</string>
<string name="dialog_export_file_cancel_button" translatable="false">@string/dialog_button_cancel</string>
<string name="dialog_export_file_cancel_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_progress_please_wait">Please wait&#8230;</string>
<string name="dialog_progress_creating_folder">Creating folder&#8230;</string>
@ -393,6 +434,8 @@
<string name="dialog_accept_ssl_certificate_hint">The SSL certificate is invalid. Do you want to trust it anyway?</string>
<string name="dialog_accept_ssl_certificate_details">Details</string>
<string name="dialog_accept_ssl_certificate_security_checkbox">This could be a security risk. I know what I am doing.</string>
<string name="dialog_accept_ssl_certificate_positive_button" translatable="false">@string/screen_file_browser_node_action_rename</string>
<string name="dialog_accept_ssl_certificate_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_http_security_hint">The usage of HTTP is insecure. We recommend to use HTTPS instead. If you know the risks, you can continue with HTTP.</string>
<string name="dialog_http_security_checkbox">Change to HTTPS</string>
@ -401,19 +444,22 @@
<string name="dialog_no_screen_lock_hint">No screen lock is set. To store your credentials in a secure way, set with OK a pattern or password.</string>
<string name="dialog_no_screen_lock_title">Set screen lock?</string>
<string name="dialog_no_screen_lock_checkbox">Set screen lock</string>
<string name="dialog_no_screen_lock_neutral_button" translatable="false">@string/dialog_unable_to_share_positive_button</string>
<string name="dialog_no_biometric_auth_set_up_title">No basic authentication set up in system</string>
<string name="dialog_no_biometric_auth_set_up_message">Enroll at least one finger/face to use this service.</string>
<string name="dialog_no_biometric_auth_set_up_positive_button" translatable="false">@string/dialog_unable_to_share_positive_button</string>
<string name="dialog_no_biometric_auth_set_up_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_debug_mode_disclaimer_hint">In this mode, sensitive data may be written to a log file on your device (e.g., filenames and paths). Passwords, cookies, etc. are explicitly excluded.\n\nRemember to disable debug mode as soon as possible.</string>
<string name="dialog_debug_mode_disclaimer_title">Attention</string>
<string name="dialog_debug_mode_positive_button">Enable</string>
<string name="dialog_debug_mode_negative_button" translatable="false">@string/dialog_button_cancel</string>
<string name="dialog_debug_mode_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_disable_app_obscured_disclaimer_hint">This setting is a security feature and prevents other apps from tricking users into doing things they do not wan\'t to do.\n\nBy disabling, you confirm that you are <a href="https://docs.cryptomator.org/en/1.5/android/settings/#block-app-when-obscured">aware of the risks</a>.</string>
<string name="dialog_disable_app_obscured_disclaimer_title">Attention</string>
<string name="dialog_disable_app_obscured_positive_button">Disable</string>
<string name="dialog_disable_app_obscured_negative_button" translatable="false">@string/dialog_button_cancel</string>
<string name="dialog_disable_app_obscured_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_app_is_obscured_info_title">App is obscured</string>
<string name="dialog_app_is_obscured_info_hint">Another app is displaying something on top of Cryptomator (e.g., a blue light filter or night mode app). For security reasons, Cryptomator is disabled.\n\n<a href="https://docs.cryptomator.org/en/1.5/android/settings/#block-app-when-obscured">How to enable Cryptomator</a></string>
@ -424,10 +470,10 @@
<string name="dialog_delete_cloud_connection_with_vaults_message">Are you sure you want to remove this cloud connection?</string>
<string name="dialog_delete_cloud_connection_with_vaults_hint">This action will remove the cloud connection and all vaults of this cloud.</string>
<string name="dialog_delete_cloud_connection_with_vaults_positive_button" translatable="false">@string/screen_file_browser_node_action_delete</string>
<string name="dialog_delete_cloud_connection_with_vaults_negative_button" translatable="false">@string/dialog_button_cancel</string>
<string name="dialog_delete_cloud_connection_with_vaults_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_confirm_delete_positive_button" translatable="false">@string/screen_file_browser_node_action_delete</string>
<string name="dialog_confirm_delete_negative_button" translatable="false">@string/dialog_button_cancel</string>
<string name="dialog_confirm_delete_negative_button" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="dialog_confirm_delete_multiple_title">Delete %1$d items?</string>
<string name="dialog_confirm_delete_multiple_message">Are you sure you want to delete these items?</string>
<string name="dialog_confirm_delete_file_message">Are you sure you want to delete this file?</string>
@ -466,15 +512,18 @@
<string name="dialog_no_dir_file_back_button" translatable="false">@string/dialog_sym_link_back_button</string>
<string name="dialog_beta_confirmation_title" translatable="false">Beta release</string>
<string name="dialog_beta_confirmation" translatable="false">This is a beta release which introduces the support of vault format 8. Please make sure that you don\'t use your production vault for testing or have a good backup strategy.</string>
<string name="dialog_beta_confirmation" translatable="false">This is a beta release which introduces the support of vault format 7. Please make sure that you don\'t use your production vault for testing or have a good backup strategy.</string>
<string name="dialog_beta_confirmation_neutral_button" translatable="false">@string/dialog_no_screen_lock_neutral_button</string>
<string name="dialog_no_more_images_to_display">No more images to display&#8230;</string>
<string name="dialog_pcloud_credentials_updated_title">Credentials of \'%1$s\' updated</string>
<string name="dialog_pcloud_credentials_updated">If you intended to add a new pCloud account, click on this url <a href="https://www.pcloud.com">www.pcloud.com</a>, log out from the current account and click again on the \'+\' in this app to create a new cloud connection.</string>
<string name="dialog_pcloud_credentials_updated_neutral_button" translatable="false">@string/dialog_no_screen_lock_neutral_button</string>
<string name="permission_snackbar_auth_local_vault">Cryptomator needs storage access to use local vaults</string>
<string name="permission_snackbar_auth_auto_upload">Cryptomator needs storage access to use auto photo upload</string>
<string name="dialog_settings_update_check_interval_title">Update check interval</string>
<string name="dialog_cache_size_title">Cache size per Cloud</string>
<!-- # error reports -->
<string name="error_report_subject" translatable="false">Android Error Report</string>
@ -483,6 +532,7 @@
<string name="error_report_section_device" translatable="false">Device Info</string>
<!-- # misc -->
<string name="download_subdirectory_name" translatable="false">@string/app_name</string>
<!-- ## file size helper -->
<string name="file_size_zero">Zero kB</string>
@ -532,29 +582,12 @@
<string name="notification_auto_upload_failed_due_to_folder_not_exists">Selected folder for upload isn\'t available anymore. Go to settings and choose a new one</string>
<string name="notification_auto_upload_failed_due_to_vault_locked">Vault locked during upload, please reopen vault to continue</string>
<string name="notification_cancel_open_writable_file" translatable="false">@string/dialog_button_cancel</string>
<string name="notification_cancel_open_writable_file" translatable="false">@string/dialog_create_folder_negative_button</string>
<string name="notification_open_writable_file_title">Open writable file</string>
<string name="notification_open_writable_file_message">Vault stays unlocked until finished editing</string>
<string name="notification_update_check_finished_latest">Latest version installed</string>
<string name="screen_settings_lru_cache">Cache</string>
<string name="screen_settings_lru_cache_toggle" translatable="false">@string/screen_settings_section_auto_photo_upload_toggle</string>
<string name="screen_settings_lru_cache_toggle_summary">Cache recently accessed files encrypted locally on the device for later reuse when reopened</string>
<string name="screen_settings_lru_cache_size">Total cache size</string>
<string name="screen_settings_clear_lru_cache_size">Clear Cache</string>
<string name="screen_settings_lru_cache_changed__restart_toast">Changes will be applied on next app restart</string>
<string name="screen_settings_license">Registered for</string>
<string name="screen_settings_license_mail">%1$s</string>
<string name="dialog_settings_update_check_interval_title">Update check interval</string>
<string name="screen_settings_check_updates">Check for updates</string>
<string name="screen_settings_last_check_updates">Last run %1$s</string>
<string name="screen_settings_last_check_updates_never" translatable="false">@string/lock_timeout_never</string>
<string name="dialog_cache_size_title">Cache size per Cloud</string>
<!-- lock timeout names -->
<string name="lock_timeout_instant">Instant</string>
<string name="lock_timeout_1m">1 minute</string>

View File

@ -144,7 +144,7 @@ class AuthenticateCloudPresenter @Inject constructor( //
private fun failAuthentication(cloudName: Int) {
activity().runOnUiThread {
view?.showMessage(String.format(getString(R.string.screen_authenticate_auth_authentication_failed), getString(cloudName)))
view?.showMessage(String.format(getString(R.string.screen_authenticate_authentication_failed), getString(cloudName)))
}
finish()
}