diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b5836dc4c434c503297a7e4f1277d3b1c3f6ccb3..3bcd7640f7d79b955870056e3a628be93754f138 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -86,6 +86,13 @@
+
\ No newline at end of file
diff --git a/app/src/main/java/foundation/e/privacycentralapp/DependencyContainer.kt b/app/src/main/java/foundation/e/privacycentralapp/DependencyContainer.kt
index 345307c4d09b977400f5770862030c59a04b838f..f241e6738f1158500ffbefcc32da33297fc218ec 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/DependencyContainer.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/DependencyContainer.kt
@@ -24,6 +24,7 @@ import androidx.lifecycle.DEFAULT_ARGS_KEY
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.CreationExtras
+import foundation.e.privacycentralapp.common.WarningDialog
import foundation.e.privacycentralapp.data.repositories.AppListsRepository
import foundation.e.privacycentralapp.data.repositories.LocalStateRepository
import foundation.e.privacycentralapp.data.repositories.TrackersRepository
@@ -31,6 +32,7 @@ import foundation.e.privacycentralapp.domain.usecases.AppListUseCase
import foundation.e.privacycentralapp.domain.usecases.FakeLocationStateUseCase
import foundation.e.privacycentralapp.domain.usecases.GetQuickPrivacyStateUseCase
import foundation.e.privacycentralapp.domain.usecases.IpScramblingStateUseCase
+import foundation.e.privacycentralapp.domain.usecases.ShowFeaturesWarningUseCase
import foundation.e.privacycentralapp.domain.usecases.TrackersStateUseCase
import foundation.e.privacycentralapp.domain.usecases.TrackersStatisticsUseCase
import foundation.e.privacycentralapp.dummy.CityDataSource
@@ -106,6 +108,10 @@ class DependencyContainer(val app: Application) {
)
}
+ val showFeaturesWarningUseCase by lazy {
+ ShowFeaturesWarningUseCase(localStateRepository = localStateRepository)
+ }
+
val viewModelsFactory by lazy {
ViewModelsFactory(
getQuickPrivacyStateUseCase = getQuickPrivacyStateUseCase,
@@ -126,6 +132,12 @@ class DependencyContainer(val app: Application) {
UpdateTrackersWorker.periodicUpdate(context)
+ WarningDialog.startListening(
+ showFeaturesWarningUseCase,
+ GlobalScope,
+ context
+ )
+
Widget.startListening(
context,
getQuickPrivacyStateUseCase,
diff --git a/app/src/main/java/foundation/e/privacycentralapp/common/WarningDialog.kt b/app/src/main/java/foundation/e/privacycentralapp/common/WarningDialog.kt
new file mode 100644
index 0000000000000000000000000000000000000000..cbbeffa631aac6801ffe31da0cb12afead4f83b5
--- /dev/null
+++ b/app/src/main/java/foundation/e/privacycentralapp/common/WarningDialog.kt
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2022 E FOUNDATION
+ *
+ * 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 .
+ */
+
+package foundation.e.privacycentralapp.common
+
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.graphics.drawable.ColorDrawable
+import android.os.Bundle
+import android.util.Log
+import android.view.View
+import android.widget.CheckBox
+import androidx.appcompat.app.AlertDialog
+import foundation.e.privacycentralapp.PrivacyCentralApplication
+import foundation.e.privacycentralapp.R
+import foundation.e.privacycentralapp.domain.entities.MainFeatures
+import foundation.e.privacycentralapp.domain.entities.MainFeatures.FAKE_LOCATION
+import foundation.e.privacycentralapp.domain.entities.MainFeatures.IP_SCRAMBLING
+import foundation.e.privacycentralapp.domain.entities.MainFeatures.TRACKERS_CONTROL
+import foundation.e.privacycentralapp.domain.usecases.ShowFeaturesWarningUseCase
+import foundation.e.privacycentralapp.main.MainActivity
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.launchIn
+import kotlinx.coroutines.flow.map
+
+class WarningDialog : Activity() {
+ companion object {
+ private const val PARAM_FEATURE = "feature"
+
+ fun startListening(
+ showFeaturesWarningUseCase: ShowFeaturesWarningUseCase,
+ appScope: CoroutineScope,
+ appContext: Context
+ ) {
+ showFeaturesWarningUseCase.showWarning().map { feature ->
+ appContext.startActivity(
+ createIntent(context = appContext, feature = feature)
+ )
+ }.launchIn(appScope)
+ }
+
+ private fun createIntent(
+ context: Context,
+ feature: MainFeatures,
+ ): Intent {
+ val intent = Intent(context, WarningDialog::class.java)
+ intent.putExtra(PARAM_FEATURE, feature.name)
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ return intent
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ getWindow().setBackgroundDrawable(ColorDrawable(0))
+
+ val feature = try {
+ MainFeatures.valueOf(intent.getStringExtra(PARAM_FEATURE) ?: "")
+ } catch (e: Exception) {
+ Log.e("WarningDialog", "Missing mandatory activity parameter", e)
+ finish()
+ return
+ }
+
+ showWarningDialog(feature)
+ }
+
+ private fun showWarningDialog(feature: MainFeatures) {
+ val builder = AlertDialog.Builder(this)
+ builder.setOnDismissListener { finish() }
+
+ val content: View = layoutInflater.inflate(R.layout.alertdialog_do_not_show_again, null)
+ val checkbox = content.findViewById(R.id.checkbox)
+ builder.setView(content)
+
+ builder.setMessage(
+ when (feature) {
+ TRACKERS_CONTROL -> R.string.warningdialog_trackers_message
+ FAKE_LOCATION -> R.string.warningdialog_location_message
+ IP_SCRAMBLING -> R.string.warningdialog_ipscrambling_message
+ }
+ )
+
+ builder.setTitle(
+ when (feature) {
+ TRACKERS_CONTROL -> R.string.warningdialog_trackers_title
+ FAKE_LOCATION -> R.string.warningdialog_location_title
+ IP_SCRAMBLING -> R.string.warningdialog_ipscrambling_title
+ }
+ )
+
+ builder.setPositiveButton(
+ when (feature) {
+ IP_SCRAMBLING -> R.string.warningdialog_ipscrambling_cta
+ else -> R.string.ok
+ }
+ ) { _, _ ->
+ if (checkbox.isChecked()) {
+ (application as PrivacyCentralApplication)
+ .dependencyContainer.showFeaturesWarningUseCase
+ .doNotShowAgain(feature)
+ }
+ finish()
+ }
+
+ if (feature == TRACKERS_CONTROL) {
+ builder.setNeutralButton(R.string.warningdialog_trackers_secondary_cta) { _, _ ->
+ startActivity(MainActivity.createTrackersIntent(this))
+ finish()
+ }
+ }
+
+ builder.show()
+ }
+}
diff --git a/app/src/main/java/foundation/e/privacycentralapp/data/repositories/LocalStateRepository.kt b/app/src/main/java/foundation/e/privacycentralapp/data/repositories/LocalStateRepository.kt
index 92ee0c1647337fb9cafab427d9f9b86b4817330b..6cb4f814cf70f1fda31395f2095c47505f510f1f 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/data/repositories/LocalStateRepository.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/data/repositories/LocalStateRepository.kt
@@ -36,6 +36,9 @@ class LocalStateRepository(context: Context) {
private const val KEY_FAKE_LATITUDE = "fakeLatitude"
private const val KEY_FAKE_LONGITUDE = "fakeLongitude"
private const val KEY_FIRST_BOOT = "firstBoot"
+ private const val KEY_HIDE_WARNING_TRACKERS = "hide_warning_trackers"
+ private const val KEY_HIDE_WARNING_LOCATION = "hide_warning_location"
+ private const val KEY_HIDE_WARNING_IPSCRAMBLING = "hide_warning_ipscrambling"
}
private val sharedPref = context.getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE)
@@ -50,7 +53,7 @@ class LocalStateRepository(context: Context) {
val areAllTrackersBlocked: MutableStateFlow = MutableStateFlow(false)
- private val _fakeLocationEnabled = MutableStateFlow(sharedPref.getBoolean(KEY_FAKE_LOCATION, true))
+ private val _fakeLocationEnabled = MutableStateFlow(sharedPref.getBoolean(KEY_FAKE_LOCATION, false))
val fakeLocationEnabled = _fakeLocationEnabled.asStateFlow()
@@ -99,6 +102,18 @@ class LocalStateRepository(context: Context) {
get() = sharedPref.getBoolean(KEY_FIRST_BOOT, true)
set(value) = set(KEY_FIRST_BOOT, value)
+ var hideWarningTrackers: Boolean
+ get() = sharedPref.getBoolean(KEY_HIDE_WARNING_TRACKERS, false)
+ set(value) = set(KEY_HIDE_WARNING_TRACKERS, value)
+
+ var hideWarningLocation: Boolean
+ get() = sharedPref.getBoolean(KEY_HIDE_WARNING_LOCATION, false)
+ set(value) = set(KEY_HIDE_WARNING_LOCATION, value)
+
+ var hideWarningIpScrambling: Boolean
+ get() = sharedPref.getBoolean(KEY_HIDE_WARNING_IPSCRAMBLING, false)
+ set(value) = set(KEY_HIDE_WARNING_IPSCRAMBLING, value)
+
private fun set(key: String, value: Boolean) {
sharedPref.edit().putBoolean(key, value).apply()
}
diff --git a/app/src/main/java/foundation/e/privacycentralapp/domain/entities/MainFeatures.kt b/app/src/main/java/foundation/e/privacycentralapp/domain/entities/MainFeatures.kt
new file mode 100644
index 0000000000000000000000000000000000000000..0e7f99ccfaec9baaa85b20e7a9eb25a957ae667a
--- /dev/null
+++ b/app/src/main/java/foundation/e/privacycentralapp/domain/entities/MainFeatures.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2022 E FOUNDATION
+ *
+ * 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 .
+ */
+
+package foundation.e.privacycentralapp.domain.entities
+
+enum class MainFeatures {
+ TRACKERS_CONTROL, FAKE_LOCATION, IP_SCRAMBLING
+}
diff --git a/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/ShowFeaturesWarningUseCase.kt b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/ShowFeaturesWarningUseCase.kt
new file mode 100644
index 0000000000000000000000000000000000000000..e347b346c2c95ae98cb68a5a865b68cbd28d4493
--- /dev/null
+++ b/app/src/main/java/foundation/e/privacycentralapp/domain/usecases/ShowFeaturesWarningUseCase.kt
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2022 E FOUNDATION
+ *
+ * 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 .
+ */
+
+package foundation.e.privacycentralapp.domain.usecases
+
+import foundation.e.privacycentralapp.data.repositories.LocalStateRepository
+import foundation.e.privacycentralapp.domain.entities.MainFeatures
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.drop
+import kotlinx.coroutines.flow.dropWhile
+import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.merge
+
+class ShowFeaturesWarningUseCase(
+ private val localStateRepository: LocalStateRepository
+) {
+
+ fun showWarning(): Flow {
+ return merge(
+ localStateRepository.blockTrackers.drop(1).dropWhile { !it }
+ .filter { it && !localStateRepository.hideWarningTrackers }
+ .map { MainFeatures.TRACKERS_CONTROL },
+ localStateRepository.fakeLocationEnabled.drop(1).dropWhile { !it }
+ .filter { it && !localStateRepository.hideWarningLocation }
+ .map { MainFeatures.FAKE_LOCATION },
+ localStateRepository.ipScramblingSetting.drop(1).dropWhile { !it }
+ .filter { it && !localStateRepository.hideWarningIpScrambling }
+ .map { MainFeatures.IP_SCRAMBLING }
+ )
+ }
+
+ fun doNotShowAgain(feature: MainFeatures) {
+ when (feature) {
+ MainFeatures.TRACKERS_CONTROL -> localStateRepository.hideWarningTrackers = true
+ MainFeatures.FAKE_LOCATION -> localStateRepository.hideWarningLocation = true
+ MainFeatures.IP_SCRAMBLING -> localStateRepository.hideWarningIpScrambling = true
+ }
+ }
+}
diff --git a/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt b/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt
index 4fdbb039364324799ddb85ea6f9dc6ba96da55dc..fccfd4854ecb323b6578fec75beca1281fe04800 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt
@@ -184,7 +184,6 @@ fun render(
)
setOnClickPendingIntent(R.id.graph_view_trackers_btn, pIntent)
- // setOnClickPendingIntent(R.id.graph_view_trackers_btn_icon, pIntent)
val graphHeightPx = 26.dpToPxF(context)
val maxValue =
diff --git a/app/src/main/res/layout/alertdialog_do_not_show_again.xml b/app/src/main/res/layout/alertdialog_do_not_show_again.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b6084316bdd831fc149b57469d519f9a8b28994
--- /dev/null
+++ b/app/src/main/res/layout/alertdialog_do_not_show_again.xml
@@ -0,0 +1,32 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index ea0bacd4c404179e5affb37a57df132bc8f7a966..1d8dd9a1a11c4997053bb5a0b161e41ddf2bcc75 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -46,33 +46,6 @@
\n„Mein Standort verwalten“ ermöglicht dir, einen gefälschten Standort anstatt deines echten Aufenthaltsortes zu benutzen. Auf diese Weise wird dein echter Standort nicht mit Apps geteilt, die zu sehr herumspionieren.
Zufälliges Land
Wende diese Einstellungen auf alle ausgewählten Anwendungen an * :
- Du hast keine Standort-Berechtigung erteilt
- Bitte gib einen gültigen Längen- und Breitengrad an
- Schneller Datenschutz
- Datenschutz-Überblick
- Tippe für mehr Information
- App-Berechtigungen
- Tracker
- Folgende Tracker sind in Benutzung
- Aktiviere oder deaktiviere diesen Tracker in den folgenden Apps
- Tracker
- Ich lasse meine echte IP-Adresse ungeschützt
- Alle Apps benutzen eine verschleierte IP
- Nur die folgenden Apps benutzen eine verschleierte IP
- Tor startet gerade …
- Tor wird angehalten …
-
- ipscrambling_any_location
- Verwalte und kontrolliere die verschiedenen Berechtigungen der Apps.
- %1$d von %2$d App erlaubt
- Apps, die Zugriff auf %1$s Berechtigung haben
- Echter Standort-Modus
- Zufälliger Standort-Modus
- Gefälschter Standort-Modus
- Diese App benötigt Standort-Berechtigungen, um zu funktionieren.
- BEISPIEL
- Widget hinzufügen
- Standort hinzufügen
System
Tracker (Verfolger) sind kleine Programme, die in Anwendungen eingebaut werden. Sie sammeln deine Daten und verfolgen andauernd deine Aktivität. Du kannst sehen, wie viele Tracker aktiv sind, und kannst sie alle für den bestmöglichen Schutz blockieren. Das kann aber auch manche Apps am korrekten Funktionieren hindern, darum kannst du selbst auswählen, welche Tracker du blockieren möchtest.
%d Tracker
@@ -91,13 +64,7 @@
Aktiviere „Schneller Datenschutz“, um Tracker aktivieren und deaktivieren zu können.
%2$d Tracker entdeckt, davon sind %1$d blockiert, %3$d blockierte Lecks und %4$d erlaubte Lecks.
App ist nicht installiert.
- Das ist eine App-Widget-Beschreibung
Dein Online-Datenschutz ist gewährleistet
- Der „Schnelle Datenschutz“ aktiviert diese Einstellungen, wenn er angeschaltet wird
- - Alle Tracker sind ausgeschaltet.
-\n- Dein Standort wird verschleiert.
-\n- Deine echte IP-Adresse wird versteckt.
- Erfahre mehr darüber
Dein Online-Datenschutz ist nicht gewährleistet
Meine Internetaktivität soll erscheinen von:
Deine Internetadresse oder IP-Adresse ist die Kennung deines Telefons, wenn es mit dem Internet verbunden ist.
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 213a9d7bbb51cb9022be1b7bd90eab4d2f57b68b..e7a450918181d76db6ac81f610e0fe9165f8490a 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -30,21 +30,6 @@
Tu privacidad en linea está desprotegida
Gestiona tus permisos
Habilitar la \"Privacidad rápida\" para poder activar/desactivar los rastreadores.
- La \"Protección rápida\" habilita estos ajustes cuando está activada
- Más información
- Añadir ubicación
- Estoy exponiendo mi dirección IP real
- Todas las aplicaciones utilizan la IP oculta
- Solo las siguientes aplicaciones utilizan la IP oculta
- Tor está iniciando...
- Tor está parando...
-
- ipscrambling_any_location
- %1$d de %2$d aplicaciones permitidas
- Modo de ubicación real
- Modo de ubicación aleatoria
- Modo de ubicación falsa
- Gestionar y controlar las aplicaciones que solicitan varios permisos.
Gestionar mi ubicación
Usar mi ubicación real
Usar una ubicación aceptable al azar
@@ -64,21 +49,8 @@
Todavía no se ha detectado ningún rastreador. Si se detectan nuevos rastreadores se actualizarán aquí.
Habilitada la \"Privacidad rápida\" para utilizar las funcionalidades
Selecciona los rastreadores que deseas activar/desactivar.
- Protección rápida
- Panel de control de privacidad
- Permiso de aplicaciones
- Rastreadores
- Se utilizan los siguientes rastreadores
- Rastreador
- Por favor, introduce un valor válido de longitud y latitud
%d rastreadores
Todavía no se ha detectado ningún rastreador. Todos los rastreadores futuros serán bloqueados.
- - Todos los rastreadores están desactivados.
-\n- Tu geolocalización será falseada.
-\n- Tu dirección IP real estará oculta.
- Aplicaciones que tienen acceso al permiso %1$s
- Esta aplicación necesita permisos de ubicación para poder mostrar su funcionalidad.
- Activar o desactivar este rastreador para las siguientes aplicaciones
Su privacidad en línea está protegida
%s rastreadores te han perfilado en las últimas 24 horas
Gestionar mi ubicación
@@ -90,17 +62,12 @@
Tu ubicación puede revelar mucho sobre ti o tus actividades.
\n
\n\"Gestionar mi ubicación\" te permite utilizar una ubicación falsa en lugar de tu posición real. De este modo, tu ubicación real no se comparte con aplicaciones que podrían husmear demasiado.
- No has concedido el permiso de ubicación
- Haz clic para saber más
Los rastreadores son partes de código ocultas dentro de las aplicaciones. Recogen tus datos y siguen tu actividad las 24 horas del día: parece que tu teléfono te escucha.
\n
\nPuedes ver cuantos rastreadores están activos, y puedes bloquear todos los rastreadores para obtener una mejor protección. Como podría causar el mal funcionamiento de algunas aplicaciones, también puedes ajustar la configuración y elegir específicamente qué rastreadores quieres bloquear.
Nota: Mientras esta opción esté activa, es probable que tu velocidad de Internet se reduzca considerablemente.
Sistema
- Ejemplo
- Añadir widget
Su privacidad en línea está protegida
Su privacidad en línea está desprotegida
Aplicación no instalada.
- Esta es la descripción de un widget de aplicación
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index b5932de4ce8a8847d615b9ba8e0cf81e6bc0efb2..3b9a53fd018ab583108294e0f1b098e88af527a6 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -7,39 +7,6 @@
Sovelletaan mukautettuja yksityisyysasetuksia
Yksityisyyttäsi verkossa ei ole suojattu
Yksityisyytesi verkossa on suojattu
- Tämä on sovelluksen widgetin kuvaus
- Lisää widget
- ESIMERKKI
- Seurain
- Ota tämä seurain käyttöön tai poista se käytöstä seuraavissa sovelluksissa
- Käytössä olevat seuraimet
- Seuraimet
- Sovellusten käyttöoikeudet
- Napauta saadaksesi lisätietoja
- Tietosuojan hallintapaneeli
- Quick Protection
- Syötä kelvollinen leveys- ja pituusaste
- Et antanut sijaintilupaa
- Tämä sovellus tarvitsee sijaintiluvat, jotta se voi näyttää toimintonsa.
- Väärennetyn sijainnin tila
- Satunnaisen sijainnin tila
- Todellisen sijainnin tila
- Sovellukset, joilla on pääsy %1$s käyttöoikeuksiin
- %1$d / %2$d sovelluksista sallittu
- Hallitse ja valvo useita käyttöoikeuksia pyytäviä sovelluksia.
- Tor pysähtyy...
-
- ipscrambling_any_location
- Tor käynnistyy...
- Vain seuraavat sovellukset käyttävät piilotettua IP-osoitetta
- Kaikki sovellukset käyttävät piilotettua IP-osoitetta
- Paljastan todellisen IP-osoitteeni
- Lisää sijainti
- Lue lisää
- - Kaikki seuraimet on kytketty pois päältä.
-\n- Sijaintisi väärennetään.
-\n- Todellinen IP-osoitteesi piilotetaan.
- Quick Protection ottaa käyttöön nämä asetukset, kun se otetaan käyttöön
Sovellusta ei ole asennettu.
%1$d estettyä seurainta %2$d:stä havaitusta seuraimesta, %3$d estettyä tietovuotoa ja %4$d sallittua tietovuotoa.
Ota Quick Privacy käyttöön, jotta voit ottaa käyttöön tai poistaa käytöstä seuraimia.
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index b4db80f6108cf093a8d22fe68df7f7fc0b04914d..fdd84685f70a8b45a7658169a2b7e8f01677b134 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -43,20 +43,6 @@
HH:mm
EEE d MMMM
MMMM yyyy
- L\'activation de \"Protection rapide\" active ces paramètres
- En savoir plus
- J\'expose ma véritable adresse IP
- Toutes les apps utilisent une adresse IP masquée
- Seules les applications suivantes utilisent une adresse IP masquée
- Tor démarre...
- Tor s\'arrête...
-
- ipscrambling_any_location
- %1$d applications autorisées sur %2$d
- Apps ayant accès à %1$s autorisation·s
- Mode de localisation réelle
- Mode de localisation aléatoire
- Mode de fausse localisation
Gérer les pisteurs des applications
%d pisteurs
Gérer les pisteurs utilisés dans les applications * :
@@ -67,21 +53,10 @@
Pour l\'instant, aucun pisteur n\'a été détecté. Tous les futurs pisteurs seront bloqués.
Activez \"Confidentialité Rapide\" pour pouvoir activer/désactiver les pisteurs.
%1$d pisteurs bloqués sur %2$d pisteurs détectés, %3$d fuites bloquées et %4$d fuites autorisées.
- Ajouter une localisation
Gérer ma localisation
Utiliser ma localisation réelle
Utiliser une localisation aléatoire plausible
Utiliser une localisation spécifique
- Vous n\'avez pas accordé d\'autorisation de localisation
- Merci d\'entrer une valeur de latitude et de longitude valides
- Protection Rapide
- Tableau de bord de Confidentialité
- Cliquez pour en savoir plus
- Autorisations des apps
- Pisteurs
- Les pisteurs suivants sont en cours d\'utilisation
- Activer ou désactiver ce pisteur pour les apps suivantes
- Pisteur
Votre adresse Internet ou adresse IP est l\'identifiant attribué à votre téléphone lorsqu\'il est connecté à Internet.
\n
\n\"Gérer mon adresse Internet\" vous permet d\'utiliser une fausse adresse IP au lieu de votre véritable adresse IP. Ainsi, votre activité Internet ne peut pas être liée à votre véritable adresse IP et à votre appareil.
@@ -90,12 +65,7 @@
Votre localisation peut révéler beaucoup de choses sur vous-même ou sur vos activités.
\n
\n\"Gérer ma position\" vous permet d\'utiliser une fausse position au lieu de votre position réelle. De cette façon, votre localisation réelle n\'est pas partagé avec des applications qui pourraient vous espionner.
- Gérez et contrôlez les apps demandant diverses autorisations.
- Cette app a besoin d\'autorisations de localisation pour afficher ses fonctionnalités.
Les pisteurs sont des morceaux de code cachés dans les applications. Ils collectent vos données et suivent votre activité 24h/24 et 7j/7. Découvrez les pisteurs actifs et bloquez-les tous pour une meilleure protection. Pour éviter le dysfonctionnement de certaines applications, vous pouvez également choisir spécifiquement les pisteurs que vous souhaitez bloquer.
- - Tous les pisteurs sont désactivés.
-\n- Votre géolocalisation sera falsifiée.
-\n- Votre adresse IP réelle sera masquée.
Votre vitesse Internet risque d\'être réduite tant que votre adresse IP est masquée.
Fuites autorisées
Fuites bloquées
@@ -109,9 +79,6 @@
Paramètres de confidentialité personnalisés appliqués
Votre vie privée en ligne n\'est pas protégée
Votre vie privée en ligne est protégée
- Ceci est une description de widget d\'application
- Ajouter un widget
- EXEMPLE
Voir
Fermer
Système
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 316aa4f8a82e0b7697e01e53cde802a6aee77e3d..ee2332741ede369c6941bd5d0bd3729cb8f0a063 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -54,33 +54,6 @@
Non sono ancora stati rilevati trackers. Tutti quelli trovati in futuro verranno bloccati.
Abilita Privacy Rapida per poter attivare/disattivare i trackers.
%1$d trackers bloccati su %2$d trovati, %3$d perdite di dati bloccate e %4$d ammesse.
- Se attivato, Protezione rapida attiva queste impostazioni
- - Tutti i tracker sono spenti.
-\n- La tua posizione verrà falsificata.
-\n- Il tuo vero indirizzo IP verrà nascosto.
- Altre informazioni
- Aggiungi posizione
- Sto esponendo il mio indirizzo IP reale
- Tutte le app usano un IP nascosto
- Solo le app seguenti utilizzano un IP nascosto
- Tor sta partendo...
- Tor si sta fermando...
-
- ipscrambling_any_location
- Gestisci e verifica le app che richiedono permessi vari.
- %1$d di %2$d app abilitate
- App che hanno accesso a %1$s permessi
- Modalità posizione reale
- Modalità posizione fasulla
- Non hai dato il permesso di conoscere la posizione
- Inserisci un valore di latitudine e longitudine valido
- Protezione Rapida
- Cruscotto Privacy
- Clicca per altre informazioni
- Permessi App
- Tracker
- Sono attivi i seguenti trackers
- Tracker
La tua privacy online è protetta
%s tracker ti hanno profilato nelle ultime 24 ore
Specifica geolocalizzazione fasulla
@@ -93,18 +66,12 @@
\n
\nGestisci la mia posizione ti permette di utilizzare una posizione fittizia al posto della tua posizione reale. In questo modo, la tua vera posizione non viene condivisa con le app troppo curiose.
I tracker sono pezzi di codice nascosti nelle app. Raccolgono i tuoi dati e seguono la tua attività 24/7. Guarda quali tracker sono attivi e bloccali tutti per una migliore protezione. Dal momento che ciù potrebbe causare il malfunzionamento di alcune app, puoi scegliere di bloccarne solo alcuni.
- Modalità posizione casuale
- Questa app necessita il permesso di conoscere la posizione per poter funzionare.
- Abilita o disabilita questo tracker per le app seguenti
Tocca per scoprire com\'è facile bloccare i trackers, nascondere la posizione & il tuo indirizzo IP.
Scopri Advanced Privacy
Guarda
Impostazioni privacy personalizzate applicate
La tua privavy online non è protetta
La tua privacy online è protetta
- Questa è la descrizione del widget app
- Aggiungi widget
- ESEMPIO
App non installata.
Mentre l\'indirizzo IP è nascosto, la velocità su Internet risulta rallentata.
Guarda
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 831b30b46fd46a2f6c20c44b70d2ec7352fa214e..b1d241d007758fbcd90d243a8302c68a54160446 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,12 +3,14 @@
Advanced Privacy
+ Close
+ OK
+
System
Congratulations! No trackers are profiling you.
Blocked leaks
Allowed leaks
Tap on the bars for more information.
- Close
@string/app_name
Your online privacy is protected
@@ -55,6 +57,7 @@
Enabled Quick Privacy to use functionalities
Please disable the 3rd-party VPN %s in order for Advanced Privacy to hide your real IP address.
Our scrambling IP service is taking time to launch. It can take a few minutes. Leaving the screen won\'t interrupt the process.
+
Manage my location
Your location can reveal a lot about yourself or your activities.\n\nManage my location enables you to use a fake location instead of your real position. This way, your real location isn\'t shared with applications that might be snooping too much.
@@ -64,6 +67,7 @@
Longitude
Latitude
Invalid coordinates
+
Manage apps\' trackers
Trackers are pieces of code hidden in apps. They collect your data and follow your activity 24/7. See which trackers are active and block them all for best protection. As it could cause some applications to malfunction, you can choose specifically which trackers you want to block.
@@ -87,38 +91,18 @@
%1$d blocked trackers out of %2$d detected trackers, %3$d blocked leaks and %4$d allowed leaks.
App not installed.
Changes will take effect when tracker blocker is on.
-
- Quick protection enables these settings when turned on
- - All trackers are turned off.\n- Your geolocation will be faked.\n- Your real IP address will be hidden.
- Learn more
- Add location
- I am exposing my real IP address
- All apps use hidden IP
- Only the following apps use hidden IP
- Tor is starting...
- Tor is stopping...
- ipscrambling_any_location
- Manage and control apps requesting various permissions.
- %1$d of %2$d apps allowed
- Apps which has access to %1$s permission
- Real location mode
- Random location mode
- Fake location mode
- This app needs location permissions in order to show its functionality.
- You didn\'t grant location permission
- Please enter valid latitude and longitude value
- Quick Protection
- Privacy Dashboard
- Click to learn more
- Apps Permission
- Trackers
- Following trackers are in use
- Enable or disable this tracker for the following apps
- Tracker
- EXAMPLE
- Add widget
- This is an app widget description
+
+ Do not show again
+ Trackers control
+ While this option is active, in some rare cases, some apps may not work properly. If you meet any problems, you can disable trackers control for specific apps and websites at anytime.
+ Manage app trackers
+ Fake my location
+ While this option is active, some apps that rely on your real location may not work properly. It\'s recommended to enable it only occasionally, only when needed.
+ Hide my IP
+ This option uses the TOR network to hide your real IP address. Only use it for specific applications. Important: we advise disabling this feature for email services as your address may end into permanent ban from your provider.
+ I understand
+
@string/app_name
Your online privacy is protected
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index febea31a28de14b3d7d5312db4495421ad2a0e32..7047f3f6db9e7ba04ed505467cc04ecfe6aa566a 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -12,9 +12,18 @@
- @bool/is_day
- @bool/is_day
-
- @color/primary_text
- 16sp
+
+
+
\ No newline at end of file