From 8aca1315ebb0e2fa8ef299d65b7f58f2fcb50edb Mon Sep 17 00:00:00 2001 From: Guillaume Jacquart Date: Thu, 24 Nov 2022 07:55:10 +0000 Subject: 5903 warn user on feature activation --- app/src/main/AndroidManifest.xml | 7 ++ .../e/privacycentralapp/DependencyContainer.kt | 12 ++ .../e/privacycentralapp/common/WarningDialog.kt | 130 +++++++++++++++++++++ .../data/repositories/LocalStateRepository.kt | 17 ++- .../domain/entities/MainFeatures.kt | 22 ++++ .../domain/usecases/ShowFeaturesWarningUseCase.kt | 54 +++++++++ .../e/privacycentralapp/widget/WidgetUI.kt | 1 - .../res/layout/alertdialog_do_not_show_again.xml | 32 +++++ app/src/main/res/values-de/strings.xml | 33 ------ app/src/main/res/values-es/strings.xml | 33 ------ app/src/main/res/values-fi/strings.xml | 33 ------ app/src/main/res/values-fr/strings.xml | 33 ------ app/src/main/res/values-it/strings.xml | 33 ------ app/src/main/res/values/strings.xml | 48 +++----- app/src/main/res/values/themes.xml | 11 +- 15 files changed, 299 insertions(+), 200 deletions(-) create mode 100644 app/src/main/java/foundation/e/privacycentralapp/common/WarningDialog.kt create mode 100644 app/src/main/java/foundation/e/privacycentralapp/domain/entities/MainFeatures.kt create mode 100644 app/src/main/java/foundation/e/privacycentralapp/domain/usecases/ShowFeaturesWarningUseCase.kt create mode 100644 app/src/main/res/layout/alertdialog_do_not_show_again.xml (limited to 'app') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b5836dc..3bcd764 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 345307c..f241e67 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 0000000..cbbeffa --- /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 92ee0c1..6cb4f81 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 0000000..0e7f99c --- /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 0000000..e347b34 --- /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 4fdbb03..fccfd48 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 0000000..1b60843 --- /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 ea0bacd..1d8dd9a 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 213a9d7..e7a4509 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 b5932de..3b9a53f 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 b4db80f..fdd8468 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 316aa4f..ee23327 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 831b30b..b1d241d 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 febea31..7047f3f 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 -- cgit v1.2.1