Merge remote-tracking branch 'origin/master' into dev

This commit is contained in:
Tobias Kaminsky 2023-02-23 03:36:39 +01:00
commit 51bb23e694
10 changed files with 52 additions and 26 deletions

View file

@ -1,3 +1,9 @@
## 3.24.1 (February 21, 2022)
- Fix crash in previous version when connecting to old server versions
Minimum: NC 16 Server, Android 6.0 Marshmallow
## 3.24.0 (February 13, 2022) ## 3.24.0 (February 13, 2022)
- Several performance optimizations by @starypatyk - Several performance optimizations by @starypatyk

View file

@ -104,20 +104,20 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT {
assertTrue(new UploadFileRemoteOperation(getDummyFile("chunkedFile.txt").getAbsolutePath(), assertTrue(new UploadFileRemoteOperation(getDummyFile("chunkedFile.txt").getAbsolutePath(),
"/1/1/chunkedFile.txt", "/1/1/chunkedFile.txt",
"text/plain", "text/plain",
String.valueOf(System.currentTimeMillis() / 1000)) System.currentTimeMillis() / 1000)
.execute(client).isSuccess()); .execute(client).isSuccess());
assertTrue(new UploadFileRemoteOperation(getDummyFile("chunkedFile.txt").getAbsolutePath(), assertTrue(new UploadFileRemoteOperation(getDummyFile("chunkedFile.txt").getAbsolutePath(),
"/1/1/chunkedFile2.txt", "/1/1/chunkedFile2.txt",
"text/plain", "text/plain",
String.valueOf(System.currentTimeMillis() / 1000)) System.currentTimeMillis() / 1000)
.execute(client).isSuccess()); .execute(client).isSuccess());
File imageFile = getFile("imageFile.png"); File imageFile = getFile("imageFile.png");
assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(), assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(),
"/1/1/imageFile.png", "/1/1/imageFile.png",
"image/png", "image/png",
String.valueOf(System.currentTimeMillis() / 1000)) System.currentTimeMillis() / 1000)
.execute(client).isSuccess()); .execute(client).isSuccess());
// sync // sync
@ -166,7 +166,7 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT {
assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(), assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(),
remotePath, remotePath,
"image/png", "image/png",
String.valueOf(System.currentTimeMillis() / 1000)) System.currentTimeMillis() / 1000)
.execute(client).isSuccess()); .execute(client).isSuccess());
assertNull(sut.getFileByDecryptedRemotePath(remotePath)); assertNull(sut.getFileByDecryptedRemotePath(remotePath));
@ -240,7 +240,7 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT {
assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(), assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(),
imagePath, imagePath,
"image/png", "image/png",
String.valueOf((System.currentTimeMillis() - 10000) / 1000)) (System.currentTimeMillis() - 10000) / 1000)
.execute(client).isSuccess()); .execute(client).isSuccess());
// Check that file does not yet exist in local database // Check that file does not yet exist in local database
@ -251,7 +251,7 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT {
assertTrue(new UploadFileRemoteOperation(videoFile.getAbsolutePath(), assertTrue(new UploadFileRemoteOperation(videoFile.getAbsolutePath(),
videoPath, videoPath,
"video/mpeg", "video/mpeg",
String.valueOf((System.currentTimeMillis() + 10000) / 1000)) (System.currentTimeMillis() + 10000) / 1000)
.execute(client).isSuccess()); .execute(client).isSuccess());
// Check that file does not yet exist in local database // Check that file does not yet exist in local database

View file

@ -495,7 +495,7 @@ public class UploadFileOperation extends SyncOperation {
} }
// Get the last modification date of the file from the file system // Get the last modification date of the file from the file system
String lastModifiedTimestamp = Long.toString(originalFile.lastModified() / 1000); long lastModifiedTimestamp = originalFile.lastModified() / 1000;
Long creationTimestamp = FileUtil.getCreationTimestamp(originalFile); Long creationTimestamp = FileUtil.getCreationTimestamp(originalFile);
@ -759,7 +759,7 @@ public class UploadFileOperation extends SyncOperation {
} }
// Get the last modification date of the file from the file system // Get the last modification date of the file from the file system
String lastModifiedTimestamp = Long.toString(originalFile.lastModified() / 1000); long lastModifiedTimestamp = originalFile.lastModified() / 1000;
final Long creationTimestamp = FileUtil.getCreationTimestamp(originalFile); final Long creationTimestamp = FileUtil.getCreationTimestamp(originalFile);

View file

@ -564,7 +564,7 @@ public class DocumentsStorageProvider extends DocumentsProvider {
newFilePath, newFilePath,
mimeType, mimeType,
"", "",
String.valueOf(System.currentTimeMillis() / 1000), System.currentTimeMillis() / 1000,
FileUtil.getCreationTimestamp(emptyFile), FileUtil.getCreationTimestamp(emptyFile),
false) false)
.execute(client); .execute(client);

View file

@ -324,9 +324,13 @@ public final class ErrorMessageAdapter {
new File(operation.getSavePath()).getName()); new File(operation.getSavePath()).getName());
} else { } else {
if (result.getCode() == ResultCode.FILE_NOT_FOUND) { switch (result.getCode()) {
return res.getString(R.string.downloader_download_file_not_found); case FILE_NOT_FOUND:
return res.getString(R.string.downloader_download_file_not_found);
case CANNOT_CREATE_FILE:
return res.getString(R.string.download_cannot_create_file);
case INVALID_LOCAL_FILE_NAME:
return res.getString(R.string.download_download_invalid_local_file_name);
} }
} }
return null; return null;

View file

@ -466,7 +466,7 @@ public final class FileStorageUtils {
return true; return true;
} }
while (!OCFile.ROOT_PATH.equals(file.getDecryptedRemotePath())) { while (file != null && !OCFile.ROOT_PATH.equals(file.getDecryptedRemotePath())) {
if (file.isEncrypted()) { if (file.isEncrypted()) {
return true; return true;
} }

View file

@ -32,6 +32,7 @@
<string name="activity_icon">Активност</string> <string name="activity_icon">Активност</string>
<string name="add_another_public_share_link">Добави още една връзка</string> <string name="add_another_public_share_link">Добави още една връзка</string>
<string name="add_new_public_share">Добавете нова връзка за публично споделяне</string> <string name="add_new_public_share">Добавете нова връзка за публично споделяне</string>
<string name="add_new_secure_file_drop">добавяне на нов, защитено пускане на файлове</string>
<string name="add_to_cloud">Добави към %1$s</string> <string name="add_to_cloud">Добави към %1$s</string>
<string name="advanced_settings">Допълнителни настройки</string> <string name="advanced_settings">Допълнителни настройки</string>
<string name="allow_resharing">Може да споделя повторно</string> <string name="allow_resharing">Може да споделя повторно</string>
@ -683,6 +684,7 @@
<string name="share_password_title">Защитена с парола</string> <string name="share_password_title">Защитена с парола</string>
<string name="share_permission_can_edit">Може да редактира</string> <string name="share_permission_can_edit">Може да редактира</string>
<string name="share_permission_file_drop">Изпускане/Преместване/ на файл</string> <string name="share_permission_file_drop">Изпускане/Преместване/ на файл</string>
<string name="share_permission_secure_file_drop">Защитено пускане на файлове</string>
<string name="share_permission_view_only">Само изглед</string> <string name="share_permission_view_only">Само изглед</string>
<string name="share_permissions">Права за споделяне</string> <string name="share_permissions">Права за споделяне</string>
<string name="share_remote_clarification">%1$s (отдалечен)</string> <string name="share_remote_clarification">%1$s (отдалечен)</string>

View file

@ -138,7 +138,7 @@
<string name="community_rc_fdroid">Hent kanditat til frigivelse fra F-Droid app</string> <string name="community_rc_fdroid">Hent kanditat til frigivelse fra F-Droid app</string>
<string name="community_rc_play_store">Hent kanditat til frigivelse fra Google Play store</string> <string name="community_rc_play_store">Hent kanditat til frigivelse fra Google Play store</string>
<string name="community_release_candidate_headline">Release candidate</string> <string name="community_release_candidate_headline">Release candidate</string>
<string name="community_release_candidate_text">Denne kandidat til frigivelse (RC) er et snapshot af den kommende version og forventes at være stabil. Testing af dit individuelle miljø kunne hjælpe med at sikre dette. Indkriv dig til testing på Play store eller led manuelt in \"Version\"s afdelingen af F-Droid.</string> <string name="community_release_candidate_text">Denne kandidat til frigivelse (RC) er et snapshot af den kommende version og forventes at være stabil. Testing af dit individuelle miljø kan hjælpe med at sikre dette. Indskriv dig til testing i Play Store eller led manuelt i \"Version\"s afdelingen af F-Droid.</string>
<string name="community_testing_bug_text">Fundet en bug? Mærkværdighed?</string> <string name="community_testing_bug_text">Fundet en bug? Mærkværdighed?</string>
<string name="community_testing_headline">Hjælp med at test</string> <string name="community_testing_headline">Hjælp med at test</string>
<string name="community_testing_report_text">Rapporter et problem på Github</string> <string name="community_testing_report_text">Rapporter et problem på Github</string>
@ -501,7 +501,7 @@
<string name="pass_code_mismatch">Passcode\'erne er ikke ens</string> <string name="pass_code_mismatch">Passcode\'erne er ikke ens</string>
<string name="pass_code_reenter_your_pass_code">Indtast venligst dit kodeord igen</string> <string name="pass_code_reenter_your_pass_code">Indtast venligst dit kodeord igen</string>
<string name="pass_code_remove_your_pass_code">Slet din adgangskode</string> <string name="pass_code_remove_your_pass_code">Slet din adgangskode</string>
<string name="pass_code_removed">Passcode slettet</string> <string name="pass_code_removed">Adgangskode slettet</string>
<string name="pass_code_stored">Passcode blev gendannet</string> <string name="pass_code_stored">Passcode blev gendannet</string>
<string name="pass_code_wrong">Ukorrekt passcode</string> <string name="pass_code_wrong">Ukorrekt passcode</string>
<string name="pdf_zoom_tip">Tryk på en side for at zoome ind</string> <string name="pdf_zoom_tip">Tryk på en side for at zoome ind</string>
@ -832,8 +832,8 @@ Enheds legitimationsoplysninger er sat op
<string name="uploader_upload_files_behaviour">Upload muligheder</string> <string name="uploader_upload_files_behaviour">Upload muligheder</string>
<string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Flyt file til %1$s mappe</string> <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Flyt file til %1$s mappe</string>
<string name="uploader_upload_files_behaviour_not_writable">Oprindelsesfolder er skrivebeskyttet; fil bliver kun sendt</string> <string name="uploader_upload_files_behaviour_not_writable">Oprindelsesfolder er skrivebeskyttet; fil bliver kun sendt</string>
<string name="uploader_upload_files_behaviour_only_upload">Behold filen i source-mappen</string> <string name="uploader_upload_files_behaviour_only_upload">Behold filen i kilde-mappen</string>
<string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Slet filen fra source-mappen</string> <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Slet filen fra kilde-mappen</string>
<string name="uploader_upload_forbidden_permissions">til at overføre til denne mappe</string> <string name="uploader_upload_forbidden_permissions">til at overføre til denne mappe</string>
<string name="uploader_upload_in_progress_content">%1$d%% Uploader %2$s</string> <string name="uploader_upload_in_progress_content">%1$d%% Uploader %2$s</string>
<string name="uploader_upload_in_progress_ticker">Sender...</string> <string name="uploader_upload_in_progress_ticker">Sender...</string>

View file

@ -63,8 +63,8 @@
<string name="auth_trying_to_login">Prøver å logge inn…</string> <string name="auth_trying_to_login">Prøver å logge inn…</string>
<string name="auth_unauthorized">Feil brukernavn eller passord</string> <string name="auth_unauthorized">Feil brukernavn eller passord</string>
<string name="auth_unknown_error_exception_title">Ukjent feil: %1$s</string> <string name="auth_unknown_error_exception_title">Ukjent feil: %1$s</string>
<string name="auth_unknown_error_http_title">Ukjent HTTP feil oppstod!</string> <string name="auth_unknown_error_http_title">Ukjent HTTP feil oppsto!</string>
<string name="auth_unknown_error_title">Ukjent feil oppstod!</string> <string name="auth_unknown_error_title">Ukjent feil oppsto!</string>
<string name="auth_unknown_host_title">Fant ikke vert</string> <string name="auth_unknown_host_title">Fant ikke vert</string>
<string name="auth_unsupported_multiaccount">%1$s støtter ikke flere kontoer</string> <string name="auth_unsupported_multiaccount">%1$s støtter ikke flere kontoer</string>
<string name="auth_wrong_connection_title">Klarte ikke å opprette tilkobling</string> <string name="auth_wrong_connection_title">Klarte ikke å opprette tilkobling</string>
@ -168,7 +168,7 @@
<string name="contacts_preferences_no_file_found">Ingen fil funnet</string> <string name="contacts_preferences_no_file_found">Ingen fil funnet</string>
<string name="contacts_preferences_something_strange_happened">Fant ikke siste sikkerhetskopi.</string> <string name="contacts_preferences_something_strange_happened">Fant ikke siste sikkerhetskopi.</string>
<string name="copied_to_clipboard">Kopiert til utklippstavlen</string> <string name="copied_to_clipboard">Kopiert til utklippstavlen</string>
<string name="copy_file_error">En feil oppstod ved kopiering av denne filen eller mappen</string> <string name="copy_file_error">En feil oppsto ved kopiering av denne filen eller mappen</string>
<string name="copy_file_invalid_into_descendent">Det er ikke mulig å kopiere en mappe inn i sin egen undermappe</string> <string name="copy_file_invalid_into_descendent">Det er ikke mulig å kopiere en mappe inn i sin egen undermappe</string>
<string name="copy_file_invalid_overwrite">Filen finnes allerede i målmappen</string> <string name="copy_file_invalid_overwrite">Filen finnes allerede i målmappen</string>
<string name="copy_file_not_found">Kan ikke kopiere. Sjekk om filen eksisterer.</string> <string name="copy_file_not_found">Kan ikke kopiere. Sjekk om filen eksisterer.</string>
@ -271,13 +271,15 @@
<string name="error_comment_file">Feil ved kommentering av fil</string> <string name="error_comment_file">Feil ved kommentering av fil</string>
<string name="error_crash_title">%1$s kræsjet</string> <string name="error_crash_title">%1$s kræsjet</string>
<string name="error_creating_file_from_template">Feil ved oppretting av fil fra mal</string> <string name="error_creating_file_from_template">Feil ved oppretting av fil fra mal</string>
<string name="error_file_actions">Feil under visning av filvalg</string>
<string name="error_file_lock">Feil ved endring av fillåsstatus</string> <string name="error_file_lock">Feil ved endring av fillåsstatus</string>
<string name="error_report_issue_action">Rapporter</string> <string name="error_report_issue_action">Rapporter</string>
<string name="error_report_issue_text">Rapporter feil? (Krever GitHub konto.)</string> <string name="error_report_issue_text">Rapporter feil? (Krever GitHub konto.)</string>
<string name="error_retrieving_file">Oppstod feil med å få tilbake filen</string> <string name="error_retrieving_file">Oppsto feil med å få tilbake filen</string>
<string name="error_retrieving_templates">Feil ved henting av mal</string> <string name="error_retrieving_templates">Feil ved henting av mal</string>
<string name="error_showing_encryption_dialog">Feilet under visning av krypteringsoppsett!</string> <string name="error_showing_encryption_dialog">Feilet under visning av krypteringsoppsett!</string>
<string name="error_starting_direct_camera_upload">Klarte ikke å starte opp kamera</string> <string name="error_starting_direct_camera_upload">Klarte ikke å starte opp kamera</string>
<string name="error_starting_doc_scan">Feil ved start av dokumentskanning</string>
<string name="error_starting_scan_doc">Feil ved bruk av dokument skanning</string> <string name="error_starting_scan_doc">Feil ved bruk av dokument skanning</string>
<string name="etm_accounts">Kontoer</string> <string name="etm_accounts">Kontoer</string>
<string name="etm_background_job_name">Jobbnavn</string> <string name="etm_background_job_name">Jobbnavn</string>
@ -463,7 +465,7 @@
<string name="menu_item_sort_by_size_biggest_first">Største først</string> <string name="menu_item_sort_by_size_biggest_first">Største først</string>
<string name="menu_item_sort_by_size_smallest_first">Minste først</string> <string name="menu_item_sort_by_size_smallest_first">Minste først</string>
<string name="more">Mer</string> <string name="more">Mer</string>
<string name="move_file_error">En feil oppstod ved flytting av denne filen eller mappen</string> <string name="move_file_error">En feil oppsto ved flytting av denne filen eller mappen</string>
<string name="move_file_invalid_into_descendent">Det er ikke mulig å flytte en mappe inn i sin egen undermappe</string> <string name="move_file_invalid_into_descendent">Det er ikke mulig å flytte en mappe inn i sin egen undermappe</string>
<string name="move_file_invalid_overwrite">Filen finnes allerede i målmappen</string> <string name="move_file_invalid_overwrite">Filen finnes allerede i målmappen</string>
<string name="move_file_not_found">Kan ikke flytte filen. Sjekk om den eksisterer.</string> <string name="move_file_not_found">Kan ikke flytte filen. Sjekk om den eksisterer.</string>
@ -557,6 +559,7 @@
<string name="prefs_category_general">Generelt</string> <string name="prefs_category_general">Generelt</string>
<string name="prefs_category_more">Mer</string> <string name="prefs_category_more">Mer</string>
<string name="prefs_daily_backup_summary">Daglig backup av din kaleder &amp; kontakter</string> <string name="prefs_daily_backup_summary">Daglig backup av din kaleder &amp; kontakter</string>
<string name="prefs_davx5_setup_error">Uventet feil under oppsett av DAVx5 (tidligere kjent som DAVdroid)</string>
<string name="prefs_e2e_active">Ende-til-ende -kryptering er satt opp!</string> <string name="prefs_e2e_active">Ende-til-ende -kryptering er satt opp!</string>
<string name="prefs_e2e_mnemonic">E2E mnemonic (hjelper for ende-til-ende kryptering til å huske legitimasjon)</string> <string name="prefs_e2e_mnemonic">E2E mnemonic (hjelper for ende-til-ende kryptering til å huske legitimasjon)</string>
<string name="prefs_e2e_no_device_credentials">For å vise mnemonic, ver vennlig å aktiver enhet legitimasjon.</string> <string name="prefs_e2e_no_device_credentials">For å vise mnemonic, ver vennlig å aktiver enhet legitimasjon.</string>
@ -699,6 +702,7 @@
<string name="shared_icon_shared">delt</string> <string name="shared_icon_shared">delt</string>
<string name="shared_icon_shared_via_link">del via lenke</string> <string name="shared_icon_shared_via_link">del via lenke</string>
<string name="shared_with_you_by">Delt med deg av %1$s</string> <string name="shared_with_you_by">Delt med deg av %1$s</string>
<string name="sharee_add_failed">Deling feilet</string>
<string name="show_images">Vis bilder</string> <string name="show_images">Vis bilder</string>
<string name="show_video">Vis videoer</string> <string name="show_video">Vis videoer</string>
<string name="signup_with_provider">Logg på med tilbyder</string> <string name="signup_with_provider">Logg på med tilbyder</string>
@ -807,12 +811,12 @@
<string name="unread_comments">Det er uleste kommentarer</string> <string name="unread_comments">Det er uleste kommentarer</string>
<string name="unset_encrypted">Ikke satt kryptering</string> <string name="unset_encrypted">Ikke satt kryptering</string>
<string name="unset_favorite">Fjern fra favoritter</string> <string name="unset_favorite">Fjern fra favoritter</string>
<string name="unshare_link_file_error">Det oppstod en feil under oppheving av deling av denne filen eller mappen.</string> <string name="unshare_link_file_error">Det oppsto en feil under oppheving av deling av denne filen eller mappen.</string>
<string name="unshare_link_file_no_exist">Kan ikke oppheve deling. Sjekk om filen eksisterer.</string> <string name="unshare_link_file_no_exist">Kan ikke oppheve deling. Sjekk om filen eksisterer.</string>
<string name="unshare_link_forbidden_permissions">å oppheve deling av denne filen</string> <string name="unshare_link_forbidden_permissions">å oppheve deling av denne filen</string>
<string name="unsharing_failed">Fjerning av deling feilet</string> <string name="unsharing_failed">Fjerning av deling feilet</string>
<string name="untrusted_domain">Tilgang gjennom ubetrodd domene. Sjekk dokumentasjonen for mer informasjon.</string> <string name="untrusted_domain">Tilgang gjennom ubetrodd domene. Sjekk dokumentasjonen for mer informasjon.</string>
<string name="update_link_file_error">Det oppstod en feil under oppdatering av delingen.</string> <string name="update_link_file_error">Det oppsto en feil under oppdatering av delingen.</string>
<string name="update_link_file_no_exist">Kan ikke oppdatere. Sjekk om filen eksisterer.</string> <string name="update_link_file_no_exist">Kan ikke oppdatere. Sjekk om filen eksisterer.</string>
<string name="update_link_forbidden_permissions">å oppdatere denne delingen</string> <string name="update_link_forbidden_permissions">å oppdatere denne delingen</string>
<string name="updating_share_failed">Oppdatering av deling feilet</string> <string name="updating_share_failed">Oppdatering av deling feilet</string>
@ -942,6 +946,14 @@
<item quantity="one">Eksporterte %d fil</item> <item quantity="one">Eksporterte %d fil</item>
<item quantity="other">Eksporterte %d filer</item> <item quantity="other">Eksporterte %d filer</item>
</plurals> </plurals>
<plurals name="export_failed">
<item quantity="one">Eksportering av %d fil feilet</item>
<item quantity="other">Eksportering av %d filer feilet</item>
</plurals>
<plurals name="export_partially_failed">
<item quantity="one">Eksporterte %d fil, hoppet over resten på grunn av feil</item>
<item quantity="other">Eksporterte %d filer, hoppet over resten på grunn av feil</item>
</plurals>
<plurals name="export_start"> <plurals name="export_start">
<item quantity="one">%d fil vil bli eksportert. Se varsel for detaljer</item> <item quantity="one">%d fil vil bli eksportert. Se varsel for detaljer</item>
<item quantity="other">%d filer vil bli eksportert. Se varsel for detaljer</item> <item quantity="other">%d filer vil bli eksportert. Se varsel for detaljer</item>

View file

@ -1064,9 +1064,9 @@
<string name="confirm_removal">Remove local encryption</string> <string name="confirm_removal">Remove local encryption</string>
<string name="remove_e2e_message">You can remove end-to-end encryption locally on this client. The encrypted files will remain on server, but will not be synced to this computer any longer.</string> <string name="remove_e2e_message">You can remove end-to-end encryption locally on this client. The encrypted files will remain on server, but will not be synced to this computer any longer.</string>
<string name="setup_e2e">During setup of end-to-end encryption, you will receive a random 12 word mnemonic, which you will need to open your files on other devices. This will only be stored on this device, and can be shown again in this screen. Please note it down in a secure place!</string> <string name="setup_e2e">During setup of end-to-end encryption, you will receive a random 12 word mnemonic, which you will need to open your files on other devices. This will only be stored on this device, and can be shown again in this screen. Please note it down in a secure place!</string>
<string name="error_showing_encryption_dialog">Error showing setup encryption dialog!</string> <string name="error_showing_encryption_dialog">Error showing encryption setup dialog!</string>
<string name="prefs_keys_exist">Add end-to-end encryption to this client</string> <string name="prefs_keys_exist">Add end-to-end encryption to this client</string>
<string name="add_new_secure_file_drop">add new secure file drop</string> <string name="add_new_secure_file_drop">Add new secure file drop</string>
<string name="scan_page">Scan page</string> <string name="scan_page">Scan page</string>
<string name="done">Done</string> <string name="done">Done</string>
<string name="document_scan_pdf_generation_in_progress">Generating PDF…</string> <string name="document_scan_pdf_generation_in_progress">Generating PDF…</string>
@ -1075,4 +1075,6 @@
<string name="document_scan_export_dialog_title">Choose export type</string> <string name="document_scan_export_dialog_title">Choose export type</string>
<string name="document_scan_export_dialog_pdf">PDF file</string> <string name="document_scan_export_dialog_pdf">PDF file</string>
<string name="document_scan_export_dialog_images">Multiple images</string> <string name="document_scan_export_dialog_images">Multiple images</string>
<string name="download_cannot_create_file">Cannot create local file</string>
<string name="download_download_invalid_local_file_name">Invalid filename for local file</string>
</resources> </resources>