diff --git a/CHANGELOG.md b/CHANGELOG.md index e18e0b8e8e..852e35262a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) - Several performance optimizations by @starypatyk diff --git a/app/src/androidTest/java/com/owncloud/android/datamodel/FileDataStorageManagerIT.java b/app/src/androidTest/java/com/owncloud/android/datamodel/FileDataStorageManagerIT.java index 69c0e18e98..67ad5238e1 100644 --- a/app/src/androidTest/java/com/owncloud/android/datamodel/FileDataStorageManagerIT.java +++ b/app/src/androidTest/java/com/owncloud/android/datamodel/FileDataStorageManagerIT.java @@ -104,20 +104,20 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT { assertTrue(new UploadFileRemoteOperation(getDummyFile("chunkedFile.txt").getAbsolutePath(), "/1/1/chunkedFile.txt", "text/plain", - String.valueOf(System.currentTimeMillis() / 1000)) + System.currentTimeMillis() / 1000) .execute(client).isSuccess()); assertTrue(new UploadFileRemoteOperation(getDummyFile("chunkedFile.txt").getAbsolutePath(), "/1/1/chunkedFile2.txt", "text/plain", - String.valueOf(System.currentTimeMillis() / 1000)) + System.currentTimeMillis() / 1000) .execute(client).isSuccess()); File imageFile = getFile("imageFile.png"); assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(), "/1/1/imageFile.png", "image/png", - String.valueOf(System.currentTimeMillis() / 1000)) + System.currentTimeMillis() / 1000) .execute(client).isSuccess()); // sync @@ -166,7 +166,7 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT { assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(), remotePath, "image/png", - String.valueOf(System.currentTimeMillis() / 1000)) + System.currentTimeMillis() / 1000) .execute(client).isSuccess()); assertNull(sut.getFileByDecryptedRemotePath(remotePath)); @@ -240,7 +240,7 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT { assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(), imagePath, "image/png", - String.valueOf((System.currentTimeMillis() - 10000) / 1000)) + (System.currentTimeMillis() - 10000) / 1000) .execute(client).isSuccess()); // 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(), videoPath, "video/mpeg", - String.valueOf((System.currentTimeMillis() + 10000) / 1000)) + (System.currentTimeMillis() + 10000) / 1000) .execute(client).isSuccess()); // Check that file does not yet exist in local database diff --git a/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java b/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java index d3bce07f0f..98a8e310f1 100644 --- a/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java +++ b/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java @@ -495,7 +495,7 @@ public class UploadFileOperation extends SyncOperation { } // 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); @@ -759,7 +759,7 @@ public class UploadFileOperation extends SyncOperation { } // 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); diff --git a/app/src/main/java/com/owncloud/android/providers/DocumentsStorageProvider.java b/app/src/main/java/com/owncloud/android/providers/DocumentsStorageProvider.java index 67b2535c6d..4d280abb8e 100644 --- a/app/src/main/java/com/owncloud/android/providers/DocumentsStorageProvider.java +++ b/app/src/main/java/com/owncloud/android/providers/DocumentsStorageProvider.java @@ -564,7 +564,7 @@ public class DocumentsStorageProvider extends DocumentsProvider { newFilePath, mimeType, "", - String.valueOf(System.currentTimeMillis() / 1000), + System.currentTimeMillis() / 1000, FileUtil.getCreationTimestamp(emptyFile), false) .execute(client); diff --git a/app/src/main/java/com/owncloud/android/utils/ErrorMessageAdapter.java b/app/src/main/java/com/owncloud/android/utils/ErrorMessageAdapter.java index 00032956e2..a53b6d99f3 100644 --- a/app/src/main/java/com/owncloud/android/utils/ErrorMessageAdapter.java +++ b/app/src/main/java/com/owncloud/android/utils/ErrorMessageAdapter.java @@ -324,9 +324,13 @@ public final class ErrorMessageAdapter { new File(operation.getSavePath()).getName()); } else { - if (result.getCode() == ResultCode.FILE_NOT_FOUND) { - return res.getString(R.string.downloader_download_file_not_found); - + switch (result.getCode()) { + 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; diff --git a/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java b/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java index ae44e5208d..bbe24d7f62 100644 --- a/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java +++ b/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java @@ -466,7 +466,7 @@ public final class FileStorageUtils { return true; } - while (!OCFile.ROOT_PATH.equals(file.getDecryptedRemotePath())) { + while (file != null && !OCFile.ROOT_PATH.equals(file.getDecryptedRemotePath())) { if (file.isEncrypted()) { return true; } diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index c6e23bb689..f03b1c63bb 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -32,6 +32,7 @@ Активност Добави още една връзка Добавете нова връзка за публично споделяне + добавяне на нов, защитено пускане на файлове Добави към %1$s Допълнителни настройки Може да споделя повторно @@ -683,6 +684,7 @@ Защитена с парола Може да редактира Изпускане/Преместване/ на файл + Защитено пускане на файлове Само изглед Права за споделяне %1$s (отдалечен) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 648a02e6ca..94451f0fee 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -138,7 +138,7 @@ Hent kanditat til frigivelse fra F-Droid app Hent kanditat til frigivelse fra Google Play store Release candidate - 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. + 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. Fundet en bug? Mærkværdighed? Hjælp med at test Rapporter et problem på Github @@ -501,7 +501,7 @@ Passcode\'erne er ikke ens Indtast venligst dit kodeord igen Slet din adgangskode - Passcode slettet + Adgangskode slettet Passcode blev gendannet Ukorrekt passcode Tryk på en side for at zoome ind @@ -832,8 +832,8 @@ Enheds legitimationsoplysninger er sat op Upload muligheder Flyt file til %1$s mappe Oprindelsesfolder er skrivebeskyttet; fil bliver kun sendt - Behold filen i source-mappen - Slet filen fra source-mappen + Behold filen i kilde-mappen + Slet filen fra kilde-mappen til at overføre til denne mappe %1$d%% Uploader %2$s Sender... diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index fb2284d2ee..dab2e9b952 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -63,8 +63,8 @@ Prøver å logge inn… Feil brukernavn eller passord Ukjent feil: %1$s - Ukjent HTTP feil oppstod! - Ukjent feil oppstod! + Ukjent HTTP feil oppsto! + Ukjent feil oppsto! Fant ikke vert %1$s støtter ikke flere kontoer Klarte ikke å opprette tilkobling @@ -168,7 +168,7 @@ Ingen fil funnet Fant ikke siste sikkerhetskopi. Kopiert til utklippstavlen - En feil oppstod ved kopiering av denne filen eller mappen + En feil oppsto ved kopiering av denne filen eller mappen Det er ikke mulig å kopiere en mappe inn i sin egen undermappe Filen finnes allerede i målmappen Kan ikke kopiere. Sjekk om filen eksisterer. @@ -271,13 +271,15 @@ Feil ved kommentering av fil %1$s kræsjet Feil ved oppretting av fil fra mal + Feil under visning av filvalg Feil ved endring av fillåsstatus Rapporter Rapporter feil? (Krever GitHub konto.) - Oppstod feil med å få tilbake filen + Oppsto feil med å få tilbake filen Feil ved henting av mal Feilet under visning av krypteringsoppsett! Klarte ikke å starte opp kamera + Feil ved start av dokumentskanning Feil ved bruk av dokument skanning Kontoer Jobbnavn @@ -463,7 +465,7 @@ Største først Minste først Mer - En feil oppstod ved flytting av denne filen eller mappen + En feil oppsto ved flytting av denne filen eller mappen Det er ikke mulig å flytte en mappe inn i sin egen undermappe Filen finnes allerede i målmappen Kan ikke flytte filen. Sjekk om den eksisterer. @@ -557,6 +559,7 @@ Generelt Mer Daglig backup av din kaleder & kontakter + Uventet feil under oppsett av DAVx5 (tidligere kjent som DAVdroid) Ende-til-ende -kryptering er satt opp! E2E mnemonic (hjelper for ende-til-ende kryptering til å huske legitimasjon) For å vise mnemonic, ver vennlig å aktiver enhet legitimasjon. @@ -699,6 +702,7 @@ delt del via lenke Delt med deg av %1$s + Deling feilet Vis bilder Vis videoer Logg på med tilbyder @@ -807,12 +811,12 @@ Det er uleste kommentarer Ikke satt kryptering Fjern fra favoritter - Det oppstod en feil under oppheving av deling av denne filen eller mappen. + Det oppsto en feil under oppheving av deling av denne filen eller mappen. Kan ikke oppheve deling. Sjekk om filen eksisterer. å oppheve deling av denne filen Fjerning av deling feilet Tilgang gjennom ubetrodd domene. Sjekk dokumentasjonen for mer informasjon. - Det oppstod en feil under oppdatering av delingen. + Det oppsto en feil under oppdatering av delingen. Kan ikke oppdatere. Sjekk om filen eksisterer. å oppdatere denne delingen Oppdatering av deling feilet @@ -942,6 +946,14 @@ Eksporterte %d fil Eksporterte %d filer + + Eksportering av %d fil feilet + Eksportering av %d filer feilet + + + Eksporterte %d fil, hoppet over resten på grunn av feil + Eksporterte %d filer, hoppet over resten på grunn av feil + %d fil vil bli eksportert. Se varsel for detaljer %d filer vil bli eksportert. Se varsel for detaljer diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 25d5e9cde7..f98d81cb21 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1064,9 +1064,9 @@ Remove local encryption 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. 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! - Error showing setup encryption dialog! + Error showing encryption setup dialog! Add end-to-end encryption to this client - add new secure file drop + Add new secure file drop Scan page Done Generating PDF… @@ -1075,4 +1075,6 @@ Choose export type PDF file Multiple images + Cannot create local file + Invalid filename for local file