diff --git a/data/src/main/java/org/cryptomator/data/cloud/webdav/network/SSLSocketFactories.kt b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/SSLSocketFactories.kt index a26ae086..604e991a 100644 --- a/data/src/main/java/org/cryptomator/data/cloud/webdav/network/SSLSocketFactories.kt +++ b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/SSLSocketFactories.kt @@ -11,7 +11,12 @@ internal object SSLSocketFactories { fun from(trustManager: X509TrustManager): SSLSocketFactory { return try { - val sslContext = SSLContext.getInstance("TLSv1.2") + val tlsVersion = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) { + "TLSv1.3" + } else { + "TLSv1.2" + } + val sslContext = SSLContext.getInstance(tlsVersion) sslContext.init(null, arrayOf(trustManager), null) sslContext.socketFactory } catch (e: GeneralSecurityException) { diff --git a/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavCompatibleHttpClient.kt b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavCompatibleHttpClient.kt index b6367775..22d912c2 100644 --- a/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavCompatibleHttpClient.kt +++ b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavCompatibleHttpClient.kt @@ -1,7 +1,6 @@ package org.cryptomator.data.cloud.webdav.network import android.content.Context -import android.net.ConnectivityManager import com.burgstaller.okhttp.AuthenticationCacheInterceptor import com.burgstaller.okhttp.CachingAuthenticatorDecorator import com.burgstaller.okhttp.DispatchingAuthenticator @@ -22,7 +21,6 @@ import java.io.IOException import java.nio.charset.StandardCharsets import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.TimeUnit -import javax.net.ssl.X509TrustManager import okhttp3.Authenticator import okhttp3.Cache import okhttp3.CacheControl @@ -66,33 +64,30 @@ internal class WebDavCompatibleHttpClient(cloud: WebDavCloud, context: Context) val cache = Cache(LruFileCacheUtil(context).resolve(LruFileCacheUtil.Cache.WEBDAV), lruCacheSize.toLong()) builder.cache(cache) // .addNetworkInterceptor(provideCacheInterceptor()) // - .addInterceptor(provideOfflineCacheInterceptor(context)) + .addInterceptor(provideOfflineCacheInterceptor()) } - val trustManager: X509TrustManager - if (usingWebDavWithSelfSignedCertificate(webDavCloud)) { + val trustManager = if (usingWebDavWithSelfSignedCertificate(webDavCloud)) { val pinningTrustManager = PinningTrustManager(webDavCloud.certificate()) - trustManager = pinningTrustManager builder.hostnameVerifier(pinningTrustManager.hostnameVerifier()) + pinningTrustManager } else { - trustManager = DefaultTrustManager() + DefaultTrustManager() } - builder.sslSocketFactory(SSLSocketFactories.from(trustManager), trustManager) + return builder.build() } - private fun provideOfflineCacheInterceptor(context: Context): Interceptor { + private fun provideOfflineCacheInterceptor(): Interceptor { return Interceptor { chain: Interceptor.Chain -> var request = chain.request() - if (isNetworkAvailable(context)) { - val cacheControl = CacheControl.Builder() // - .maxAge(0, TimeUnit.DAYS) // - .build() - request = request.newBuilder() // - .cacheControl(cacheControl) // - .build() - } + val cacheControl = CacheControl.Builder() // + .maxAge(0, TimeUnit.DAYS) // + .build() + request = request.newBuilder() // + .cacheControl(cacheControl) // + .build() chain.proceed(request) } } @@ -147,12 +142,6 @@ internal class WebDavCompatibleHttpClient(cloud: WebDavCloud, context: Context) private fun usingWebDavWithSelfSignedCertificate(webDavCloud: WebDavCloud): Boolean { return webDavCloud.certificate() != null } - - private fun isNetworkAvailable(context: Context): Boolean { - val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager - val activeNetworkInfo = connectivityManager.activeNetworkInfo - return activeNetworkInfo != null && activeNetworkInfo.isConnected - } } class UserAgentInterceptor : Interceptor { diff --git a/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt b/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt index 120870fc..5abeb02f 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt @@ -122,15 +122,20 @@ class CryptomatorApp : MultiDexApplication(), HasComponent fun startAutoUpload() { val sharedPreferencesHandler = SharedPreferencesHandler(applicationContext()) - if(sharedPreferencesHandler.usePhotoUpload()) { + if (checkToStartAutoImageUpload(sharedPreferencesHandler)) { val vault = applicationComponent.vaultRepository().load(sharedPreferencesHandler.photoUploadVault()) - if(vault.isUnlocked) { + if (vault.isUnlocked) { val cloud = applicationComponent.cloudRepository().decryptedViewOf(vault) applicationContext().startService(AutoUploadService.startAutoUploadIntent(applicationContext(), cloud)) } } } + private fun checkToStartAutoImageUpload(sharedPreferencesHandler: SharedPreferencesHandler): Boolean { + return sharedPreferencesHandler.usePhotoUpload() + && (!sharedPreferencesHandler.autoPhotoUploadOnlyUsingWifi() || applicationComponent.networkConnectionCheck().checkWifiOnAndConnected()) + } + private fun setupLogging() { setupLoggingFramework() setup() diff --git a/presentation/src/main/res/values-cs-rCZ/strings.xml b/presentation/src/main/res/values-cs-rCZ/strings.xml index af019c9d..6541403e 100644 --- a/presentation/src/main/res/values-cs-rCZ/strings.xml +++ b/presentation/src/main/res/values-cs-rCZ/strings.xml @@ -23,6 +23,7 @@ Kontrola aktualizací se nezdařila. Došlo k obecné chybě. Kontrola aktualizace se nezdařila. Hash neodpovídá nahranému souboru Kontrola aktualizací se nezdařila. Žádné připojení k internetu. + Obchod Google Play není nainstalován Ověření pomocí otisků prstů selhalo Obecná chyba při načítání konfigurace trezoru Místní soubor již není přítomen po přepnutí zpět na Cryptomator. Možné změny nelze promítnout zpět do cloudu. diff --git a/presentation/src/main/res/values-de-rDE/strings.xml b/presentation/src/main/res/values-de-rDE/strings.xml index 4b53c23f..7188ee66 100644 --- a/presentation/src/main/res/values-de-rDE/strings.xml +++ b/presentation/src/main/res/values-de-rDE/strings.xml @@ -16,7 +16,7 @@ Cloud existiert bereits. Installiere eine App, die diesen Dateityp unterstützt. Server nicht gefunden. - Bitte öffne die Einstellungen Deines Geräts und stell die Bildschirmsperre von Hand ein + Bitte öffne die Einstellungen Deines Geräts und stelle die Bildschirmsperre von Hand ein Export fehlgeschlagen. Versuche, Sonderzeichen aus den Dateinamen zu entfernen und erneut zu exportieren. Keine Sonderzeichen möglich. Dateinamen können keine Sonderzeichen enthalten. @@ -27,7 +27,7 @@ Beim entschlüsseln des WebDAV-Passworts trat ein Fehler auf. Bitte in den Einstellungen erneut festlegen. Die Google Play Services sind nicht installiert Biometrischer Login abgebrochen - Die in der %1$s-Datei angegebene Version ist nicht identisch mit jener der %2$s-Datei + Die in %1$s angegebene Version ist nicht identisch mit der Version in %2$s %1$s-Datei stimmt nicht mit der %2$s-Datei überein Allgemeiner Fehler beim Laden der Tresorkonfiguration Lokale Datei ist nach dem Zurückwechseln zu Cryptomator nicht mehr vorhanden. Mögliche Änderungen können nicht in die Cloud übertragen werden. @@ -324,7 +324,7 @@ Keine weiteren Bilder anzuzeigen… Anmeldedaten von \'%1$s\' aktualisiert Falls du ein neues pCloud-Konto hinzufügen wolltest, klicke auf diese URL www.pcloud.com, melde dich vom aktuellen Konto ab und klicke in dieser App erneut auf das „+“, um eine neue Cloud-Verbindung zu erstellen. - Cryptomator benötigt Speicherzugriff, um lokale Tresore nutzen zu können + Um lokale Tresore nutzen zu können benötigt Cryptomator Speicherzugriff Cryptomator benötigt Zugriff auf den Speicher um den automatischen Foto-Upload zu nutzen diff --git a/presentation/src/main/res/values-ru-rRU/strings.xml b/presentation/src/main/res/values-ru-rRU/strings.xml index 2072069b..c92bf0ff 100644 --- a/presentation/src/main/res/values-ru-rRU/strings.xml +++ b/presentation/src/main/res/values-ru-rRU/strings.xml @@ -14,11 +14,11 @@ Файл не существует. Хранилище заблокировано. Облако уже существует. - Скачайте приложение, которое может открыть этот файл. + Пожалуйста, скачайте приложение, которое может открыть этот файл. Сервер не найден. - Откройте настройки устройств и установите блокировку экрана вручную - Ошибка экспорта. Попробуйте удалить спецсимволы из имён файлов и экспортировать снова. - Не может содержать спецсимволы. + Откройте настройки устройства и установите блокировку экрана вручную + Не удалось экспортировать. Попробуйте удалить специальные символы из имен файлов и экспортировать снова. + Не может содержать специальные символы. В имени файла не может быть спецсимволов. В имени хранилища не может быть спецсимволов. Не удалось проверить наличие обновления. Общая ошибка. diff --git a/presentation/src/main/res/values-sv-rSE/strings.xml b/presentation/src/main/res/values-sv-rSE/strings.xml index f096f3ea..4aba1383 100644 --- a/presentation/src/main/res/values-sv-rSE/strings.xml +++ b/presentation/src/main/res/values-sv-rSE/strings.xml @@ -41,6 +41,7 @@ Cryptomator behöver åtkomst till lagringsutrymme för att exportera filer Cryptomator behöver åtkomst till lagringsutrymme för att ladda upp filer Cryptomator behöver åtkomst till lagringsutrymme för att dela filer + Cryptomator har förlorat behörighet att komma åt den här platsen. Välj denna mapp igen för att återställa behörigheten. Inställningar Sök Föregående @@ -288,6 +289,10 @@ Appen är täckt En annan app visar något ovanpå Cryptomator (t.ex., ett blått ljusfilter eller nattläge app). Av säkerhetsskäl är Cryptomator inaktiverad.\n\nSå här aktiverar du Cryptomator Stäng + Vänligen lägg till valv igen för %1s molnet + Medan vi migrerar till den här appversionen måste vi ta bort följande valv från appen:\n%2s \n\nDessa valv tas inte bort från molnet utan endast från den här appen. Ledsen för besväret. Du lägger sedan till dessa valv igen för att fortsätta arbeta med dem. + Valvet är rotmapp för molnanslutningen + Skapa en ny molnanslutning där du väljer minst den överordnade mappen i denna valvkatalog som rotkatalog för att lägga till valvet. Den här inställningen är en säkerhetsfunktion och hindrar andra appar från att lura användare att göra saker de inte vill göra.\n\nGenom att inaktivera bekräftar du att du är medveten om riskerna. Är du säker på att du vill ta bort den här molnanslutningen? Denna åtgärd kommer att ta bort molnanslutningen och alla valv i detta moln. diff --git a/presentation/src/main/res/values-tr-rTR/strings.xml b/presentation/src/main/res/values-tr-rTR/strings.xml index b337552a..9731f446 100644 --- a/presentation/src/main/res/values-tr-rTR/strings.xml +++ b/presentation/src/main/res/values-tr-rTR/strings.xml @@ -41,6 +41,7 @@ Cryptomator\'un dosyaları dışa aktarmak için depolama erişimine ihtiyacı var Cryptomator\'un dosyaları yüklemek için depolama erişimine ihtiyacı var Cryptomator\'un dosyaları paylaşmak için depolama erişimine ihtiyacı var + Cryptomator bu konuma erişim iznini kaybetti. İzni geri yüklemek için lütfen bu klasörü tekrar seçin. Ayarlar Ara Önceki @@ -288,6 +289,10 @@ Uygulama gizlendi Cryptomator\'un üstünde çalışan bazı uygulamalar, (örn. Mavi ışık filtresi ve gece modu uygulamaları gibi) içeriği görüntüler! Bu nedenden dolayı, güvenlik amacıyla Cryptomator devre dışı bırakılır!\n\nCryptomator\'u tekrar nasıl etkinleştirebilirim? Kapat + Lütfen %1s bulutu için kasaları yeniden ekleyin + Bu uygulama sürümüne geçiş yaparken aşağıdaki kasaları uygulamadan kaldırmamız gerekiyor:\n%2s \n\nBu kasalar buluttan değil, yalnızca bu uygulamadan kaldırılır. Rahatsızlık için özür dileriz ve onlarla çalışmaya devam etmek için lütfen bu kasaları yeniden ekleyin. + Vault, bulut bağlantısının kök klasörüdür + Bu kasayı eklemek için kök dizin olarak bu kasa klasörünün en azından üst klasörünü seçtiğiniz yeni bir bulut bağlantısı oluşturun. Bu ayar bir güvenlik özelliğidir ve diğer uygulamaların, kullanıcıları kandırmasını engeller.\n\nDevre dışı bırakarak, risklerin farkında olduğunuzu onaylamış olursunuz. Bu bulut bağlantısını kaldırmak istediğinizden emin misiniz? Bu işlem, bulut bağlantısını ve bu bulutun tüm kasalarını kaldıracak. diff --git a/presentation/src/main/res/values-uk-rUA/strings.xml b/presentation/src/main/res/values-uk-rUA/strings.xml new file mode 100644 index 00000000..a51ebabd --- /dev/null +++ b/presentation/src/main/res/values-uk-rUA/strings.xml @@ -0,0 +1,187 @@ + + + + Зашифрувати + + Виникла помилка + Помилка автентифікації + Помилка автентифікації, будь ласка увійдіть за допомогою %1$s + Відсутнє з\'єднання з мережею + Неправильний пароль + Файл чи тека вже існує. + Непідтримуване сховище. Це сховище було створено іншою версією криптоматора. + Сховище вже існує. + Файлу не існує. + Сховище було заблоковано. + Ця хмара вже використовується. + Будь ласка, завантажте додаток, що може відкрити цей файл. + Сервер не знайдено. + Відкрийте налаштування пристрою та встановіть блокування екрану вручну + Не вдалося виконати експорт. Спробуйте видалити спеціальні символи з імен файлів та експортувати знову. + Не може містити спеціальні символи. + Назва файлу не може містити спеціальні символи. + Назва сховища не може містити спеціальні символи. + Помилка перевірки оновлення. Загальна помилка. + Помилка перевірки оновлення. Хеш не збігається з завантаженим файлом + Не вдалося перевірити оновлення. Немає з\'єднання з мережею. + Не вдалося розшифрувати пароль WebDAV, будь ласка, повторно додайте його в налаштування + Google Play Services не встановлені + Біометрична автентифікація скасована + Версія вказана в %1$s відрізняється від %2$s + %1$s не відповідає %2$s + Загальна помилка при завантаженні конфігурації сховища + Локальний файл більше не присутній посля повернення до Cryptomator. Можливі зміни не будуть застосовані до хмари. + Відсутній бакет + Користувацьке розташування Masterkey ще не підтримується + + + Локальне сховище + + + Cryptomator потребує доступу до сховища для експорту файлів + Cryptomator потребує доступу до сховища для завантаження файлів + Cryptomator потребує доступу до сховища щоб ділитися файлами + Криптоматор втратив дозвіл на доступ до цього розташування. Будь ласка, оберіть цю папку ще раз, щоб відновити дозвіл. + Налаштування + Пошук + Попередній + Наступний + Сортування + А - Я + Я - А + Спочатку новіші + Спочатку старіші + Спочатку найбільші + Спершу найменші + + + Додати до Cryptomator + Створити нове сховище + Додати існуюче сховище + Прибрати + Натисніть тут, щоб створити нове сховище + Пароль успішно змінено + + Сховище + Виберіть файл майстер-ключа + Розмістити тут + Назва сховища: %1$s + Перемістити + Порожня тека + змінено %1$s тому + Поділитися за допомогою + Оберіть призначення + Оберіть + Відсутні елементи для поширення + Додати до %1$s + Створити теку + Створити текстовий файл + Завантажити файли + Файли + Файл експортовано + Файли експортовано + Нічого експортувати + Не вдалося створити каталог для завантажень + Поділитись + Перейменувати + Редагувати + Експорт + Видалити + Відкрити з… + Оберіть файли + %1$d обрано + Оберіть + Вибрати все + Оновити + Немає підключення + Повторити + + Успішно збережено + + Зберегти %1$s до… + текст + файл + файли + Імена файлів мають бути унікальними, будь ласка, перейменуйте дублікати. + Місце збереження + Зберегти + Шифрування завершено + + Хмарні служби + + Обрати місцерозташування + Натисніть сюди щоб додати розташування + Схоже, сервер не сумісний з WebDAV + Немає доступних місцерозташувань. + + Адреса посилання + Ім\'я користувача + Пароль + Підключитися + Посилання не може бути порожнім. + Неприпустима URL-адреса. + Поле для імені користувача не може бути порожнім. + Пароль не може бути порожнім. + + Ім\'я для відображення + Ключ доступу + Секретний ключ + Існуючий бакет + Кінцева точка + Регіон + Ім\'я не може бути порожнім + Ключ доступу не може бути порожнім + Секретний ключ не може бути порожнім + Бакет не може бути порожнім + Кінцева точка або регіон не можуть бути порожніми + + Назва сховища не може бути порожньою. + Назва сховища + Створити + + Задати пароль + Пароль не збігається з введеним паролем. + Готово + ВАЖЛИВО: Якщо ви забудете пароль, то не зможете відновити дані. + Введіть пароль ще раз + Занадто слабкий пароль для створення сховища + Слабкий + Середній + Надійний + Дуже надійний + + Основні налаштування + Хмарні сервіси + Біометрична автентифікація + Активувати біометричну автентифікацію + Підтвердити розблокування обличчям (якщо доступно) + Блокувати програму при виникненні екрану + Блокувати перехоплення вводу й відображення інтерфейсу хибного ім\'я користувача + Блокувати знімки екрану + Блокувати знімки екрану в списку нещодавніх та в середині програми + Пошук + \"Живий\" пошук + Оновити результати пошуку при вході в запит + + + + + + Відмінити + Розблокувати + + Прибрати + Заблокувати + Закрити + Назад + + + + + + + + + + + diff --git a/presentation/src/main/res/values-zh-rTW/strings.xml b/presentation/src/main/res/values-zh-rTW/strings.xml index 2211f3b7..785024fe 100644 --- a/presentation/src/main/res/values-zh-rTW/strings.xml +++ b/presentation/src/main/res/values-zh-rTW/strings.xml @@ -16,18 +16,32 @@ 雲端硬碟已經存在。 請下載行動裝置應用程式來打開這個檔案。 找不到伺服器。 + 請打開你的裝置設定,再手動設定螢幕鎖定。 資料匯出失敗。請把檔案名稱中的特殊字元刪除後,再重新匯出資料。 不能含有特殊字元。 檔案名稱不能含有特殊字元。 加密檔案庫的名稱不能含有特殊字元。 檢查更新失敗。發生一般錯誤。 + 更新檢查失敗。計算出的 Hash 與上傳檔案不匹配 + 更新檢查失敗。沒有網絡連接。 + 解密webdav密碼失敗,請在設定中重新添加 尚未安裝 Google Play 服務。 + 生物身份識別驗證中止 + %1$s 中指定的版本不同於 %2$s + %1$s 與 %2$s 不匹配 + 加載保險庫設定時發生錯誤 + 切換回 Cryptomator 後,本地檔案不再存在。期間發生的更改無法傳回雲端。 沒有該儲存貯體 + 尚未支持自定義 MasterKey 位置 本機儲存空間 + Cryptomator 需要存儲訪問權限用以導出文件 + Cryptomator 需要存儲訪問權限用以上傳文件 + Cryptomator 需要存儲訪問權限用以共享文件 + Cryptomator 已失去訪問此位置的許可。請再次選擇此文件夾以恢復權限。 設定 搜尋 上一頁 @@ -45,15 +59,23 @@ 新建加密檔案庫 新增至現有的加密檔案庫 移除 + 點擊此處新建一個加密檔案庫 + 密碼變更成功 加密檔案庫 + 選擇 Masterkey 檔案 + 在此添加 加密檔案庫名稱:%1$s + + 移動 %1$s 到 + 移動 清空資料夾 分享對象 選擇目的地 選擇 沒有東西可分享 + 加入至 %1$s 建立新資料夾 建立新文字檔案 上傳檔案 @@ -61,15 +83,18 @@ 檔案已匯出 所有的檔案皆已匯出 沒有任何東西可匯出。 + 建立檔案目錄失敗 分享 重新命名 編輯 匯出 刪除 選擇項目 + 已選取 %1$d 個項目 選擇 選擇全部 重新整理 + 沒有連接 重試 儲存成功。 @@ -97,13 +122,16 @@ 顯示名稱 區域 + 儲存貯體不可留空 加密檔案庫名稱不可留空。 加密檔案庫名稱 - 創建 + 新建 設定密碼 完成 + 再次輸入密碼 + 密碼強度不足,無法新建加密檔案庫 一般 @@ -111,11 +139,17 @@ 一般 雲端服務 + 生物識別驗證 + 開啓生物識別驗證 + 確認面容解鎖(如果可用) 搜尋 即時搜尋 自動鎖定 當螢幕被鎖定 + 自動上傳像片 + 選擇要上傳的加密檔案庫 啟動 + 僅使用 Wi-Fi 上傳 上傳影片 Cryptomator 網站 在 Twitter 上追蹤我們 @@ -125,14 +159,19 @@ 技術支援 請求協助 除錯模式 + 發送日誌檔案 發送失敗 安全提示 版本 進階設定 + WebDAV 連線 + pCloud 連線 + S3 連線 登錄到 + %1$s 無法完成身份驗證 取消 @@ -142,28 +181,62 @@ 更改密碼 舊密碼不可留空。 新密碼不可留空。 + 新密碼與再次輸入的密碼不匹配 + 找不到名為%1$s的加密檔案庫 移除 檔案已經存在 取代 名稱為「%s」的檔案已經存在。 跳過已存在項目 全部取代 + 替換現有的 取代 + 名為「%1$s」的檔案已經存在。您想要替換它嗎? + 替換檔案? + 要取代檔案嗎? + 無法分享檔案 確認 新建加密檔案庫 + 無法打開%1$s + 重命名加密檔案庫 + 重命名檔案夾 + 重新命名檔案 + 您有未保存的更改 + 您確定要不保存就離開嗎? 放棄 + 文本.txt + 您確定要刪除這個加密檔案庫嗎? + 正在上傳中…… + 正在導出中(%1$d/%2$d) 正在删除… + 正在創建加密檔案庫…… + 正在上傳中…… 正在下載… + 正在加密中…… + 正在移動中…… 鎖定 + 無效的 TLS 憑證 + 詳情 + 更換為 HTTPS + 是否使用 HTTPS? + 設定螢幕鎖定? + 設定螢幕鎖定 注意 啟用 注意 禁用 關閉 + 是否刪除%1$d個項目? + 您確定要刪除這些項目嗎? + 您確定要刪除這個檔案嗎? + 退出 有可用更新 現在更新 + 前往下載網址 以後再說 + 正在下載 + 下載最新版本的 Cryptomator 上一頁