1
0
mirror of https://github.com/AllanWang/Frost-for-Facebook.git synced 2024-09-20 07:31:40 +02:00

Add security settings for biometrics

This commit is contained in:
Allan Wang 2019-05-01 16:41:52 -07:00
parent 58f4f9298b
commit 984a4a7bf1
No known key found for this signature in database
GPG Key ID: C93E3F9C679D7A56
36 changed files with 99 additions and 35 deletions

View File

@ -45,6 +45,7 @@ import com.pitchedapps.frost.settings.getDebugPrefs
import com.pitchedapps.frost.settings.getExperimentalPrefs
import com.pitchedapps.frost.settings.getFeedPrefs
import com.pitchedapps.frost.settings.getNotificationPrefs
import com.pitchedapps.frost.settings.getSecurityPrefs
import com.pitchedapps.frost.settings.sendDebug
import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.Prefs
@ -146,6 +147,11 @@ class SettingsActivity : KPrefActivity() {
iicon = GoogleMaterial.Icon.gmd_notifications
}
subItems(R.string.security, getSecurityPrefs()) {
descRes = R.string.security_desc
iicon = GoogleMaterial.Icon.gmd_lock
}
// subItems(R.string.network, getNetworkPrefs()) {
// descRes = R.string.network_desc
// iicon = GoogleMaterial.Icon.gmd_network_cell

View File

@ -52,7 +52,7 @@ import java.io.File
*/
fun SettingsActivity.getDebugPrefs(): KPrefAdapterBuilder.() -> Unit = {
plainText(R.string.experimental_disclaimer) {
plainText(R.string.disclaimer) {
descRes = R.string.debug_disclaimer_info
}

View File

@ -30,7 +30,7 @@ import com.pitchedapps.frost.utils.Showcase
*/
fun SettingsActivity.getExperimentalPrefs(): KPrefAdapterBuilder.() -> Unit = {
plainText(R.string.experimental_disclaimer) {
plainText(R.string.disclaimer) {
descRes = R.string.experimental_disclaimer_info
}

View File

@ -0,0 +1,45 @@
/*
* Copyright 2018 Allan Wang
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.pitchedapps.frost.settings
import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder
import com.pitchedapps.frost.R
import com.pitchedapps.frost.activities.SettingsActivity
import com.pitchedapps.frost.utils.BiometricUtils
import com.pitchedapps.frost.utils.Prefs
import kotlinx.coroutines.launch
/**
* Created by Allan Wang on 20179-05-01.
*/
fun SettingsActivity.getSecurityPrefs(): KPrefAdapterBuilder.() -> Unit = {
plainText(R.string.disclaimer) {
descRes = R.string.security_disclaimer_info
}
checkbox(R.string.enable_biometrics, Prefs::biometricsEnabled, {
launch {
BiometricUtils.authenticate(this@getSecurityPrefs, force = true).await()
Prefs.biometricsEnabled = it
reloadByTitle(R.string.enable_biometrics)
}
}) {
descRes = R.string.enable_biometrics_desc
enabler = { BiometricUtils.isSupported(this@getSecurityPrefs) }
}
}

View File

@ -26,6 +26,10 @@ object BiometricUtils {
@Volatile
private var pool: ExecutorService? = null
private var lastUnlockTime = -1L
private const val UNLOCK_TIME_INTERVAL = 15 * 60 * 1000
/**
* Checks if biometric authentication is possible
* Currently, this means checking for enrolled fingerprints
@ -41,12 +45,12 @@ object BiometricUtils {
pool ?: Executors.newSingleThreadExecutor().also { pool = it }
private fun shouldPrompt(context: Context): Boolean {
return true
return Prefs.biometricsEnabled && System.currentTimeMillis() - lastUnlockTime > UNLOCK_TIME_INTERVAL
}
fun authenticate(activity: FragmentActivity): BiometricDeferred {
fun authenticate(activity: FragmentActivity, force: Boolean = false): BiometricDeferred {
val deferred: BiometricDeferred = CompletableDeferred()
if (!shouldPrompt(activity)) {
if (!force && !shouldPrompt(activity)) {
deferred.complete(null)
return deferred
}
@ -66,6 +70,7 @@ object BiometricUtils {
}
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
lastUnlockTime = System.currentTimeMillis()
deferred.complete(result.cryptoObject)
}

View File

@ -156,6 +156,8 @@ object Prefs : KPref() {
var analytics: Boolean by kpref("analytics", true)
var biometricsEnabled: Boolean by kpref("biometrics_enabled", false)
var overlayEnabled: Boolean by kpref("overlay_enabled", true)
var overlayFullScreenSwipe: Boolean by kpref("overlay_full_screen_swipe", true)

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Upozornění</string>
<string name="disclaimer">Upozornění</string>
<string name="experimental_disclaimer_info">Experimentální nastavení mohou způsobovat problémy a být bez varování odstraněna. Povolte je jen na vlastní nebezpečí a dejte vědět vývojářům jak fungují.</string>
<string name="experimental_by_default">Povolit experimentální nastavení ve výchozím režimu</string>
<string name="experimental_by_default_desc">Chcete pomoct vývojářům s laděním? Povolit všechna, i budoucí experimentální nastavení.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Ansvarsfraskrivelse</string>
<string name="disclaimer">Ansvarsfraskrivelse</string>
<string name="experimental_disclaimer_info">Eksperimentelle funktioner kan være ustabile og bliver muligvis aldrig sat i produktion. Brug foregår på eget ansvar, send feedback og deaktivér dem endelig, hvis de ikke fungerer godt.</string>
<string name="experimental_by_default">Eksperimentel som standard</string>
<string name="experimental_by_default_desc">Føler du dig dristig eller vil du bare gerne hjælpe med fejlfinding? Aktivér denne for automatisk at bruge alle fremtidige eksperimentelle funktioner som standard.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Haftungsausschluss</string>
<string name="disclaimer">Haftungsausschluss</string>
<string name="experimental_disclaimer_info">Experimentelle Funktionen sind möglicherweise instabil und schaffen es eventuell nie in die App. Auf eigenes Risiko verwenden! Senden Sie Ihr Feedback und zögern Sie nicht, diese zu deaktivieren, wenn sie nicht gut funktionieren.</string>
<string name="experimental_by_default">Standartmäßig Experimentell</string>
<string name="experimental_by_default_desc">Sie fühlen sich mutig oder wollen einfach helfen bei der Fehlersuche? Beim Aktivieren dieser Option werden zukünftige, experimentelle Funktionen standardmäßig eingeschaltet.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Atención</string>
<string name="disclaimer">Atención</string>
<string name="experimental_disclaimer_info">Las características experimentales pueden ser inestables y nunca entrar en vigencia. Úsalas bajo tu propio riesgo. Envía un informe y no dudes en desactivarlas si no funcionan correctamente.</string>
<string name="experimental_by_default">Experimental por Defecto</string>
<string name="experimental_by_default_desc">¿Notas algún error o deseas ayudar a depurar? Las futuras funciones experimentales se habilitarán por defecto.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Clause de non-responsabilité</string>
<string name="disclaimer">Clause de non-responsabilité</string>
<string name="experimental_disclaimer_info">Les fonctionnalités expérimentales peuvent être instables et peuvent ne jamais se rendre à la production. Utiliser à vos risques et périls, envoyer vos commentaires et nhésitez pas à les désactiver si elles ne fonctionnent pas bien.</string>
<string name="experimental_by_default">Expérimentale par défaut</string>
<string name="experimental_by_default_desc">Vous vous sentez risqué ou vous souhaitez simplement aider avec le débogage? Cocher ceci permettra aux futures fonctions expérimentales d\'être activées par défaut.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Aviso legal</string>
<string name="disclaimer">Aviso legal</string>
<string name="experimental_disclaimer_info">As funcionalidades en proba ou experimentais poden resultar inestables e mesmo poden non funcionar. Utilízaas baixo a túa responsabilidade, envíanos comentarios acerca delas e sempre poderás deshabilitalas se non funcionan ben.</string>
<string name="experimental_by_default">Experimentar predefinido</string>
<string name="experimental_by_default_desc">Gústache o risco ou simplemente é que queres axudar coa depuración? Ao marcares esta opción, as funcionalidades experimentais activaranse por defecto.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Nyilatkozat</string>
<string name="disclaimer">Nyilatkozat</string>
<string name="experimental_disclaimer_info">A kísérleti funkciók instabilak lehetnek, és talán sosem kerülnek forgalomba. Használd saját felelősségre, küldj visszajelzést, és nyugodtan tiltsd le őket, ha nem működnek jól.</string>
<string name="experimental_by_default">Kísérletek alapértelmezetten</string>
<string name="experimental_by_default_desc">Szereted a kockázatot, vagy csak segítenél a hibák elhárításában? Ezt bekapcsolva a jövőbeli kísérleti funkciók is engedélyezve lesznek.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Penolakan</string>
<string name="disclaimer">Penolakan</string>
<string name="experimental_disclaimer_info">Fitur eksperimental mungkin tidak stabil dan mungkin tidak pernah sampai ke produksi. Gunakan dengan resiko Anda sendiri, kirim umpan balik, dan jangan ragu untuk menonaktifkan jika tidak bekerja dengan baik.</string>
<string name="experimental_by_default">Eksperimental secara standar</string>
<string name="experimental_by_default_desc">Merasa berisiko atau hanya ingin membantu kesalahan? Memeriksa ini akan mengaktifkan fungsi eksperimental masa depan menjadi standar.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Disclaimer</string>
<string name="disclaimer">Disclaimer</string>
<string name="experimental_disclaimer_info">Le funzioni sperimentali potrebbero essere instabili e potrebbero non arrivare mai al rilascio. Usale a tuo rischio e pericolo, manda il tuo feedback e sentiti libero di disabilitarle se non funzionano bene.</string>
<string name="experimental_by_default">Funzioni Sperimentali di Default</string>
<string name="experimental_by_default_desc">Ti senti temerario o vuoi solo aiutarci con il debugging? Attivandolo abiliterai le funzioni sperimentali di default.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">경고</string>
<string name="disclaimer">경고</string>
<string name="experimental_disclaimer_info">실험적 기능은 불안정하거나 출시로 이어지지 않을 수 있습니다. 이를 사용함으로써 발생하는 일의 책임은 당신에게 있으며, 피드백을 보내시거나 제대로 작동하지 않으면 비활성화 하시기 바랍니다.</string>
<string name="experimental_by_default">실험적 기능 항상 사용</string>
<string name="experimental_by_default_desc">위험을 감수하거나 디버그에 도움을 주고 싶나요? 이를 활성화하면 앞으로도 기본적으로 실험적 기능이 활성화 됩니다.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Disclaimer</string>
<string name="disclaimer">Disclaimer</string>
<string name="experimental_disclaimer_info">Experimentele functies kunnen instabiliteit veroorzaken en zullen mogelijk nooit volledig worden geïmplementeerd. Gebruik de functies op eigen verantwoordelijkheid, stuur feedback en wees vrij om ze uit te schakelen bij problemen.</string>
<string name="experimental_by_default">Experimentele functies standaard inschakelen</string>
<string name="experimental_by_default_desc">Wees een waaghals en activeer nieuwe experimentele functies automatisch.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Ansvarsfraskrivelse</string>
<string name="disclaimer">Ansvarsfraskrivelse</string>
<string name="experimental_disclaimer_info">Eksperimentelle funksjonene kan være ustabile. Bruk på eget ansvar og du må gjerne deaktivere dem om de ikke fungerer.</string>
<string name="experimental_by_default">Eksperimentell som standard</string>
<string name="experimental_by_default_desc">Føles det risikabelt eller bare ønsker å hjelpe til med feilsøking? Å velge dette vil aktivere fremtidige eksperimentelle funksjonene som standard.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Zrzeczenie się</string>
<string name="disclaimer">Zrzeczenie się</string>
<string name="experimental_disclaimer_info">Funkcje eksperymentalne mogą być niestabilne i mogą nigdy nie być wprowadzone. Używaj na własne ryzyko, wyślij opinię i wyłącz je jeśli nie działają dobrze.</string>
<string name="experimental_by_default">Eksperymentalne domyślnie</string>
<string name="experimental_by_default_desc">Lubisz ryzyko lub po prostu chcesz pomóc z debugowaniem? Zaznaczenie tej opcji, będzie domyślnie włączać eksperymentalne funkcje.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Aviso Legal</string>
<string name="disclaimer">Aviso Legal</string>
<string name="experimental_disclaimer_info">As funções experimentais podem ser instáveis e podem não funcionar. Use a seu próprio risco, envie comentários e sinta-se livre para desativá-los se eles não funcionarem bem.</string>
<string name="experimental_by_default">Experimental por Padrão</string>
<string name="experimental_by_default_desc">Deseja arriscar-se ou simplesmente quer ajudar com a depuração? Ativando isso, as futuras funções experimentais serão ativadas como padrão.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Aviso legal</string>
<string name="disclaimer">Aviso legal</string>
<string name="experimental_disclaimer_info">As funcionalidades experimentais podem ser instáveis e podem nem sequer ser incluídas na versão final. Utilize-as por sua conta e risco e submeta os relatório com os erros encontrados. Pode desativar esta opção sempre que quiser.</string>
<string name="experimental_by_default">Experimental por defeito</string>
<string name="experimental_by_default_desc">Está a sentir-se com sorte ou apenas quer ajudar com a depuração? Tenha noção que com esta função permitirá que funções futuras experimentais sejam padrão.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Excluderea răspunderii</string>
<string name="disclaimer">Excluderea răspunderii</string>
<string name="experimental_disclaimer_info">Caracteristici experimentale pot fi instabile. Folosește-le pe propriul tău risc, trimite feedback-ul şi nu ezita să le dezactivaţi dacă nu funcţionează bine.</string>
<string name="experimental_by_default">Experimental implicit</string>
<string name="experimental_by_default_desc">Esti aventuros sau doar vrei sa ajuți? Încearcând asta vei activa viitoare funcții experimentale în mod prestabilit.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Информация</string>
<string name="disclaimer">Информация</string>
<string name="experimental_disclaimer_info">Экспериментальные функции может быть нестабильным и никогда не может сделать его в производство. Используйте на свой страх и риск, обратная связь и не стесняйтесь отключить их, если они не работают хорошо.</string>
<string name="experimental_by_default">Экспериментальный по умолчанию</string>
<string name="experimental_by_default_desc">Чувствуя рискованным или просто хотите, чтобы помочь с отладкой? Проверка, что это позволит будущим экспериментальные функции быть по умолчанию.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Одрицање одговорности</string>
<string name="disclaimer">Одрицање одговорности</string>
<string name="experimental_disclaimer_info">Експерименталне функције су нестабилне и можда никада неће бити уврштене у апликацију. Користите на сопствени ризик, пошаљите рецензију, слободно их искључите уколико не функционишу како треба.</string>
<string name="experimental_by_default">Подразумевано коришћење експерименталних функција</string>
<string name="experimental_by_default_desc">Желите да помогнете у отклањању грешака?

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Disclaimer</string>
<string name="disclaimer">Disclaimer</string>
<string name="experimental_disclaimer_info">Experimentella funktioner kan vara ostabila och kanske aldrig implementeras i slutprodukten. Använd dessa på egen risk, skicka feedback, och stäng gärna av dem om de inte fungerar bra.</string>
<string name="experimental_by_default">Experimentell som standard</string>
<string name="experimental_by_default_desc">Känner du dig riskfylld eller bara vill hjälpa till? Att markera den här kommer att aktivera alla framtida experimentella funktioner som standard.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">ข้อสงวนสิทธิ์</string>
<string name="disclaimer">ข้อสงวนสิทธิ์</string>
<string name="experimental_disclaimer_info">คุณสัมบัติทดลองอาจไม่เสถียนและอาจจะไม่ได้อยู่ถาวร ยอมรับความเสี่ยงเองถ้าคุณใช้มัน, ส่งข้อเสนอแนะ หรือ ปิดมันไปเลยก็ได้ถ้ามันไม่ทำงาน</string>
<string name="experimental_by_default">คุณสัมบัติทดลอง โดยค่าเริ่มต้น</string>
<string name="experimental_by_default_desc">ชอบความเสี่ยงหรือแค่อยากจะช่วยหาของข้อผิดพลาด? สามารถทำได้โดยการเปิด คุณสัมบัติทดลอง เป็นค่าเริ่มต้น</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Ang nagpapahayag</string>
<string name="disclaimer">Ang nagpapahayag</string>
<string name="experimental_disclaimer_info">Ang tampok na pageekspiremento ay hindi siguradong matatag at hindi kailanman ito gagawin sa produksyon. Gamitin sa iyong sariling kapahamakan, ipadala ang feedback, at malaya kang i-disable sila kapag hindi ito nagawa ng maayos.</string>
<string name="experimental_by_default">Ang pageekspiremento ayon sa Default</string>
<string name="experimental_by_default_desc">Ang pakiramdam na parang nasa pilegro o gusto lang tumulong sa pagdi-debug? Tignan kung ito ay naka-enable sa hinaharap na pageekspiremento at ang mga paggawa ay default.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Feragat</string>
<string name="disclaimer">Feragat</string>
<string name="experimental_disclaimer_info">Deneysel özellikler dengesiz olabilir ve asla üretime neden olmayabilir. Kendi sorumluluğunuzdadır kullanın, geri bildirim gönderin ve iyi çalışmazlarsa onları devre dışı bırakmaktan çekinmeyin.</string>
<string name="experimental_by_default">Varsayılan deneysel</string>
<string name="experimental_by_default_desc">Hata ayıklamayla yardım etmek mi istiyorsunuz? Bunu kontrol ederseniz, gelecek deneysel işlevlerin varsayılan olmasını sağlayabilirsiniz.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Відмова від відповідальності</string>
<string name="disclaimer">Відмова від відповідальності</string>
<string name="experimental_disclaimer_info">Експериментальні функції можуть бути нестабільними і можуть ніколи не бути впроваджені. Використовуйте на свій страх і ризик, надішліть відгук і можете вимкнути їх, якщо вони не працюють добре.</string>
<string name="experimental_by_default">Експериментальний режим за замовчуванням</string>
<string name="experimental_by_default_desc">Почуваєшся ризиковано або просто хочеш допомогти з налагодженням? Перевірка цього параметра дозволить використовувати майбутні експериментальні функції за умовчанням.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">Chối bỏ trách nhiệm</string>
<string name="disclaimer">Chối bỏ trách nhiệm</string>
<string name="experimental_disclaimer_info">Các tính năng thử nghiệm có thể không ổn định và có thể không bao giờ thành hiện thực. Bạn chấp nhận rủi ro khi dùng, hãy tắt nó đi nếu bạn thấy không hoạt động tốt.</string>
<string name="experimental_by_default">Thử nghiệm theo mặc định</string>
<string name="experimental_by_default_desc">Muốn thử hay chỉ đơn giản muốn giúp soát lỗi? Đánh dấu ở đây sẽ bật các tính năng thử nghiệm tương lai theo mặc định.</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">免责声明</string>
<string name="disclaimer">免责声明</string>
<string name="experimental_disclaimer_info">实验性的功能可能不稳定,也许都不会正式使用。选择使用您自己的风险。如果有发生崩溃, 发送反馈,并禁用它们。</string>
<string name="experimental_by_default">默认情况下实验</string>
<string name="experimental_by_default_desc">感觉有风险或只是想要帮助进行调试?检查这将使未来的实验功能是默认类型。</string>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<string name="experimental_disclaimer">免責聲明</string>
<string name="disclaimer">免責聲明</string>
<string name="experimental_disclaimer_info">實驗性的特性可能不穩定, 可能永遠無法生產。選擇使用您自己的風險, 發回饋, 並隨時禁用他們
实验性的功能可能不稳定,也许都不会正式使用。选择使用您自己的风险。如果有发生崩溃, 发送反馈,并禁用它们。</string>

View File

@ -21,8 +21,6 @@
<string name="autoplay_settings_desc">Open Facebook\'s auto play settings. Note that it must be disabled for PIP to work.</string>
<string name="exit_confirmation">Exit Confirmation</string>
<string name="exit_confirmation_desc">Show confirmation dialog before exiting the app</string>
<string name="enable_biometrics">Enable biometrics</string>
<string name="enable_biometrics_desc">Require biometric authentication after inactivity</string>
<string name="analytics">Analytics</string>
<string name="analytics_desc">Enable anonymous analytics and bug reports to help improve the app. No personal information is ever exposed.</string>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="experimental_disclaimer">Disclaimer</string>
<string name="disclaimer">Disclaimer</string>
<string name="experimental_disclaimer_info">Experimental features may be unstable and may never make it to production. Use at your own risk, send feedback, and feel free to disable them if they don\'t work well.</string>
<string name="experimental_by_default">Experimental by Default</string>
<string name="experimental_by_default_desc">Feeling risky or just want to help with debugging? Checking this will enable future experimental functions be default.</string>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="security_disclaimer_info">Security preferences help protect access to Frost from the UI. However, note that local data is not encrypted, and can still be accessed by rooted users.</string>
<string name="enable_biometrics">Enable biometrics</string>
<string name="enable_biometrics_desc">Require biometric authentication after inactivity</string>
</resources>

View File

@ -10,6 +10,9 @@
<string name="behaviour">Behaviour</string>
<string name="behaviour_desc">Define how the app interacts in certain settings</string>
<string name="security">Security</string>
<string name="security_desc">Lock screen, biometrics, etc</string>
<string name="network">Network</string>
<string name="network_desc">Define options that affect metered networks</string>