Merge branch 'release/5.3.5' into develop

This commit is contained in:
Rafał Kobyłko 2024-02-14 23:03:54 +01:00
commit cea1e7277e
60 changed files with 42 additions and 41 deletions

View File

@ -17,8 +17,8 @@ android {
defaultConfig {
applicationId = "com.twofasapp"
versionName = "5.3.0"
versionCode = 5000016
versionName = "5.3.5"
versionCode = 5000017
val versionCodeOffset = 5000000

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: de-DE, German (Germany)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: es-ES, Spanish (Spain)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: fr-FR, French (France)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: id-ID, Indonesian (Indonesia)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:21 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: it-IT, Italian (Italy)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: nl-NL, Dutch (Netherlands)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:21 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: pl-PL, Polish (Poland)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: pt-BR, Brazilian Portuguese
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: pt-PT, Portuguese (Portugal)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: tr-TR, Turkish (Turkey)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:21 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings
@ -16,7 +16,7 @@
<string name="NSFaceIDUsageDescription">Uygulamanın kilidini Face ID\'nizi kullanarak açabilirsiniz</string>
<!-- MARK: - App -->
<string name="app__name">2FAS Authenticator</string>
<string name="commons__2fas">2AD Doğrulayıcısı (2FAS Uygulaması)</string>
<string name="commons__2fas">2AD Doğrulayıcı (2FAS Uygulaması)</string>
<string name="commons__OK">Tamam</string>
<string name="commons__add">Ekle</string>
<!-- MARK: - Commons -->
@ -80,7 +80,7 @@
<string name="introduction__page_2_title">Basit</string>
<string name="introduction__page_2_content">2FAS\'ı çevrim içi hizmetlerinizle eşleştirin. İki faktörlü güvenliği QR kodunuzla saniyeler içinde etkinleştirin.</string>
<string name="introduction__page_3_title">Gizli</string>
<string name="introduction__page_3_content">2FAS gizliliğinize saygı duyar ve onu korur. Bu uygulama; kişisel verilerinizi asla toplamaz, işlemez veya kullanmaz.</string>
<string name="introduction__page_3_content">2FAS gizliliğinize saygı duyar ve gizliliğinizi korur. Bu uygulama asla kişisel verilerinizi toplamaz, işlemez veya kullanmaz.</string>
<string name="introduction__page_4_title">Güvenli</string>
<string name="introduction__page_4_content_ios">Jetonlarınız cihaz depolama alanı üzerinde çevrim dışı olarak saklanır, bu nedenle hizmetlerinizi yedeklemeyi unutmayın! Yetkisiz erişime ve cihaz hasarına karşı koruma sağlamak için iCloud Eşitlemesi ve PIN parolası kullanın.</string>
<!-- introduction__start_using -->
@ -422,7 +422,7 @@
<string name="browser__browser_extension">Tarayıcı uzantısı</string>
<string name="browser__info_title">2FAS Web Tarayıcısı uzantısı</string>
<string name="browser__info_description_first">2FAS tarayıcı uzantısını masaüstü bilgisayarınızda yükleyin</string>
<string name="browser__info_description_second">Onu 2FAS uygulamanızla eşleştirin</string>
<string name="browser__info_description_second">Uzantıyı bu uygulamayla eşleştirin</string>
<string name="browser__more_info">Daha fazla bilgi:</string>
<string name="browser__more_info_link_title">2fas.com/be</string>
<string name="browser__pair_with_web_browser">Web tarayıcısı ile eşleştir</string>
@ -485,11 +485,11 @@
<string name="tokens__service_key_invalid_format">Anahtar geçersiz bir biçime sahip</string>
<string name="intent_error_no_gallery_app">Sistem hatası! Sistem galeri uygulaması mevcut değil.</string>
<string name="gdrive_permission_title">Google Drive İzni</string>
<string name="gdrive_permission_msg">Yedek dosyalarını uygulama verilerine kaydetmek için Google Drive iznine ihtiyacımız var.</string>
<string name="gdrive_permission_msg">Yedek dosyalarını uygulama verisine kaydetmek için Google Drive iznine ihtiyacımız var.</string>
<string name="gdrive_internet_title">İnternet Bağlantısı Gerekli</string>
<string name="gdrive_internet_msg">Google ile senkronize etmek için bir internet bağlantısını etkinleştirmeniz gerekir.</string>
<string name="gdrive_wipe_internet_msg">Google Drive\'a erişimi iptal etmek için internet bağlantısını etkinleştirmeniz gerekir.</string>
<string name="backup_explanation_msg">Otomatik olarak yedek dosyanızı Google Drive\'ınızdaki gizli klasörün içinde depolayın ve eşitleyin. Bu klasöre sadece 2FAS uygulaması erişebilir.</string>
<string name="backup_explanation_msg">Yedek dosyanızı Google Drive\'ınızdaki gizli klasörde otomatikman depolayın ve eşitleyin. Bu klasöre sadece 2FAS uygulaması erişebilir.</string>
<string name="backup_error_unknown">Yedeğin eşitlenmesinde bir sorun oluştu. Lütfen uygulamayı birkaç dakika sonra yeniden başlatın ve tekrar deneyin.</string>
<string name="backup_error_encrypt_unknown">Yedek şifrelenirken bir sorun oluştu. Lütfen parolanızı yeniden ayarlayın.</string>
<string name="backup_error_decrypt_unknown">Yedeğin şifresi çözülürken bir hata oluştu. Lütfen parolanızı yeniden ayarlayın.</string>
@ -609,7 +609,7 @@
<string name="biometric_dialog_setup_title">Doğrulamayı etkinleştir</string>
<string name="biometric_dialog_setup_cancel">İptal</string>
<!-- To enable Biometric Lock you need to enable and set a PIN Code. -->
<string name="settings__option_fingerprint_description">Biyometrik Kilidi etkinleştirmek için PIN Koduyla girişi etkinleştirip ayarlamanız gerekir.</string>
<string name="settings__option_fingerprint_description">Biyometrik Kilidi etkinleştirmek için PIN Kodunu etkinleştirip ayarlamanız gerekir.</string>
<string name="settings__block_for_footer">Uygulamanın kilitlenmesi için gereken süreyi seçin</string>
<string name="error__out_of_disk_space">Görünüşe göre ya şu anda disk alanınız tükenmiş ya da geçmişte böyle bir olay veri tabanına zarar vermiş</string>
<string name="error__cloud_backup_newer_version">Bulut yedeklemesi yeni sürüme taşındı. Uygulamayı güncelleyin</string>
@ -642,7 +642,7 @@
<string name="settings__send_logs_sent_description">Bize ulaştığınız için teşekkür ederiz. Gönderdiklerinizi en kısa zamanda analiz edeceğiz.</string>
<string name="commons__send">Gönder</string>
<string name="settings__send_logs_title">Günlükler gönderiliyor</string>
<string name="settings__send_logs_description_link">Destek ekibi tarafından sağlanan kod otomatik olarak dolduruldu. Günlükler gönderilsin mi?</string>
<string name="settings__send_logs_description_link">Destek ekibi tarafından sağlanan kod otomatikman dolduruldu. Günlükler gönderilsin mi?</string>
<string name="settings__send_logs_description_edit">Lütfen destek ekibimiz tarafından sağlanan kodu girin veya yapıştırın</string>
<string name="settings__send_logs">Günlükleri gönder</string>
<string name="settings__recommendation">2FAS\'ın bu harika iki faktörlü kimlik doğrulama uygulamasına göz atın: https://2fas.com</string>
@ -763,7 +763,7 @@
<string name="settings__option_screenshots_description">Uygulamada ekran görüntülerine 5 dakika için izin ver.</string>
<string name="settings__option_screenshots">Ekran görüntülerine izin ver</string>
<string name="settings__option_screenshots_confirm_title">Uygulamada ekran görüntülerine izin verilsin mi?</string>
<string name="settings__option_screenshots_confirm_description">Emin misiniz? Bu seçeneğin etkinleştirilmesi, uygulamanın her yerinde ekran görüntüsü ve kaydı almanıza izin verir; ancak bu, tüm dıştan gelen ekran kaydetme girişimlerine de izin verecek.\nGüvenlik sebepleri nedeniyle bu seçenek 5 dakika sonra otomatik olarak devre dışı bırakılacak.</string>
<string name="settings__option_screenshots_confirm_description">Emin misiniz? Bu seçeneğin etkinleştirilmesi, uygulamanın her yerinde ekran görüntüsü ve kaydı almanıza izin verir; ancak bu, dıştan gelen tüm ekran kaydı girişimlerine aralık bırakır.\nGüvenlik sebepleri nedeniyle bu seçenek 5 dakika sonra otomatikman devre dışı bırakılacak.</string>
<string name="social__social_media">Sosyal medya bağlantıları</string>
<string name="social__discord">Discord</string>
<string name="social__youtube">YouTube</string>
@ -824,9 +824,9 @@
<string name="settings__manage_tokens">Jetonları yönetin</string>
<string name="settings__info_footer">Desteğiniz yeni özellikler ve geliştirmeler üzerinde çalışmamızı mümkün kılar. Teşekkür ederiz!</string>
<string name="settings__trash_option">Çöp kutusundan geri yükle</string>
<string name="periodic_notification_tips">2FAS üzerinde bizimle olduğunuzdan memnunuz! 🌟 Gelişmiş güvenlik 🔒için uygulamada yararlı İpuçları ve Püf Noktalarını 🛠️ keşfetmeye bir dakikanızı ayırın.\n</string>
<string name="periodic_notification_tips">2FAS\'te bizimle olduğunuza sevindik! 🌟 Artırılmış güvenlik 🔒 adına uygulamadaki yararlı İpuçlarını ve Püf Noktalarını 🛠️ keşfetmek için bir dakikanızı ayırın.</string>
<string name="periodic_notification_backup">Telefonunuzu kaybetseniz dahi hesaplarınıza erişiminizi kaybetmemek için 2FAS Yedeklemesini ve Eşitlemesini etkinleştirin - tek dokunuşla dert mert kalmasın! 🔐📱</string>
<string name="periodic_notification_browser_extension">Girişlerinizi 2FAS Tarayıcı Uzantısı ile hızlandırın! 🚀 Daha hızlı, daha rahat bir doğrulama için şimdi indirin. 🌐✨</string>
<string name="periodic_notification_browser_extension">Girişlerinizi 2FAS Tarayıcı Uzantısı ile hızlandırın! 🚀 Daha hızlı ve daha rahat bir doğrulama için şimdi indirin. 🌐✨</string>
<string name="periodic_notification_donate">2FAS\'ı desteklediğiniz için minnettarız! 🌟 Eğer uygulamamızı yararlı bulduysanız, dijital dünyanızı güvende tutmamıza yardım etmek için bağış yapmayı düşünebilirsiniz. Her kuruş değer! 🙏</string>
<!-- DO NOT TRANSLATE! -->
<string name="tokens__steam">STEAM</string>

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: uk-UA, Ukrainian (Ukraine)
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:21 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -5,7 +5,7 @@
Release: Working copy
Locale: en, English
Exported by: rafakob
Exported at: Wed, 31 Jan 2024 06:46:20 -0800
Exported at: Wed, 14 Feb 2024 00:33:50 -0800
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- InfoPlist.strings

View File

@ -251,6 +251,7 @@ internal class ServicesRepositoryImpl(
}
val period = when {
otpPeriod == 10 -> 10
otpPeriod == 30 -> 30
otpPeriod == 60 -> 60
otpPeriod == 90 -> 90

View File

@ -73,7 +73,7 @@ internal class AegisImporter(
.asSequence()
.filter { it.type.equals("totp", true) || it.type.equals("hotp", true) || it.type.equals("steam", true)}
.filter { it.info.digits == 5 ||it.info.digits == 6 || it.info.digits == 7 || it.info.digits == 8 }
.filter { it.info.period == 30 || it.info.period == 60 || it.info.period == 90 }
.filter { it.info.period == 10 || it.info.period == 30 || it.info.period == 60 || it.info.period == 90 }
.filter {
it.info.algo.equals("SHA1", true) || it.info.algo.equals("SHA224", true) || it.info.algo.equals(
"SHA256",

View File

@ -56,7 +56,7 @@ internal class AndOtpImporter(
models
.filter { it.digits == 5 || it.digits == 6 || it.digits == 7 || it.digits == 8 || it.digits == null }
.filter { it.period == 30 || it.period == 60 || it.period == 90 || it.period == null }
.filter { it.period == 10 || it.period == 30 || it.period == 60 || it.period == 90 || it.period == null }
.filter {
it.algorithm.equals("SHA1", true) ||
it.algorithm.equals("SHA224", true) ||

View File

@ -2,10 +2,10 @@ package com.twofasapp.feature.externalimport.domain
import android.content.Context
import android.net.Uri
import com.twofasapp.common.domain.OtpAuthLink
import com.twofasapp.common.domain.Service
import com.twofasapp.data.services.ServicesRepository
import com.twofasapp.data.services.otp.ServiceParser
import com.twofasapp.common.domain.OtpAuthLink
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import java.io.BufferedReader
@ -57,7 +57,7 @@ internal class LastPassImporter(
val servicesToImport = mutableListOf<Service?>()
model.accounts.filter { it.digits == 5 || it.digits == 6 || it.digits == 7 || it.digits == 8 }
.filter { it.timeStep == 30 || it.timeStep == 60 || it.timeStep == 90 }.filter {
.filter { it.timeStep == 10 || it.timeStep == 30 || it.timeStep == 60 || it.timeStep == 90 }.filter {
it.algorithm.equals("SHA1", true) || it.algorithm.equals("SHA224", true) || it.algorithm.equals(
"SHA256", true
) || it.algorithm.equals("SHA384", true) || it.algorithm.equals("SHA512", true)

View File

@ -54,7 +54,7 @@ internal class RaivoImporter(
model
.filter { it.kind.equals("totp", true) || it.kind.equals("hotp", true) }
.filter { it.digits.equals("5") || it.digits.equals("6") || it.digits.equals("7") || it.digits.equals("8") }
.filter { it.timer.equals("30") || it.timer.equals("60") || it.timer.equals("90") }
.filter { it.timer.equals("10") || it.timer.equals("30") || it.timer.equals("60") || it.timer.equals("90") }
.filter {
it.algorithm.equals("SHA1", true) || it.algorithm.equals("SHA224", true) || it.algorithm.equals(
"SHA256",

View File

@ -398,7 +398,7 @@ internal fun AddServiceManualScreen(
if (showRefreshTimeDialog) {
ListRadioDialog(
onDismissRequest = { showRefreshTimeDialog = false },
options = listOf("30", "60", "90"),
options = listOf("10", "30", "60", "90"),
selectedOption = uiState.refreshTime.toString(),
onOptionSelected = { _, value -> viewModel.updateRefreshTime(value.toInt()) }
)

View File

@ -1,14 +1,14 @@
[versions]
accompanist = "0.33.2-alpha"
agp = "8.3.0-beta02"
agp = "8.3.0-rc02"
cameraX = "1.3.1"
coil = "2.5.0"
commonmark = "0.21.0"
compose = "1.6.0-beta03"
compose = "1.6.1"
composeActivity = "1.8.2"
composeCompiler = "1.5.7"
composeCompiler = "1.5.9"
core = "1.12.0"
firebase = "32.7.0"
firebase = "32.7.2"
glance = "1.0.0"
junit = "4.13.2"
koin = "3.5.3"
@ -16,9 +16,9 @@ koinAndroid = "3.5.3"
kotlin = "1.9.21"
kotlinCoroutines = "1.7.3"
kotlinKsp = "1.9.21-1.0.16"
ktor = "2.3.4"
lifecycle = "2.7.0-rc02"
material3 = "1.2.0-beta01"
ktor = "2.3.7"
lifecycle = "2.7.0"
material3 = "1.2.0"
room = "2.6.1"
[libraries]
@ -44,7 +44,7 @@ composeActivity = { module = "androidx.activity:activity-compose", version.ref =
composeAnimation = { module = "androidx.compose.animation:animation", version.ref = "compose" }
composeCompiler = { module = "androidx.compose.compiler:compiler", version.ref = "composeCompiler" }
composeMaterial2 = { module = "androidx.compose.material:material", version.ref = "compose" }
composeNavigation = "androidx.navigation:navigation-compose:2.7.6"
composeNavigation = "androidx.navigation:navigation-compose:2.7.7"
composeUi = { module = "androidx.compose.ui:ui", version.ref = "compose" }
composeUiTooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
composeUiUtil = { module = "androidx.compose.ui:ui-util", version.ref = "compose" }
@ -99,7 +99,7 @@ securityCrypto = "androidx.security:security-crypto:1.1.0-alpha06"
sharedPrefs = "androidx.preference:preference-ktx:1.2.1"
sqlCipher = "net.zetetic:android-database-sqlcipher:4.5.4"
timber = "com.jakewharton.timber:timber:5.0.1"
webkit = "androidx.webkit:webkit:1.9.0"
webkit = "androidx.webkit:webkit:1.10.0"
workManager = "androidx.work:work-runtime-ktx:2.9.0"
[bundles]

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

File diff suppressed because one or more lines are too long