diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt index 532b37d58c08a03b8b7a240cf678d388d4d4a534..86a3b42668eb0f9d689b5b70307a3403d991a863 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt @@ -25,6 +25,10 @@ class CWASettings @Inject constructor( get() = prefs.getBoolean(PKEY_DEVICE_TIME_INCORRECT_ACK, false) set(value) = prefs.edit { putBoolean(PKEY_DEVICE_TIME_INCORRECT_ACK, value) } + var wasTracingExplanationDialogShown: Boolean + get() = prefs.getBoolean(PKEY_TRACING_DIALOG_SHOWN, false) + set(value) = prefs.edit { putBoolean(PKEY_TRACING_DIALOG_SHOWN, value) } + var wasInteroperabilityShownAtLeastOnce: Boolean get() = prefs.getBoolean(PKEY_INTEROPERABILITY_SHOWED_AT_LEAST_ONCE, false) set(value) = prefs.edit { putBoolean(PKEY_INTEROPERABILITY_SHOWED_AT_LEAST_ONCE, value) } @@ -69,6 +73,7 @@ class CWASettings @Inject constructor( companion object { private const val PKEY_DEVICE_TIME_INCORRECT_ACK = "devicetime.incorrect.acknowledged" + private const val PKEY_TRACING_DIALOG_SHOWN = "tracing.dialog.shown" private const val PKEY_INTEROPERABILITY_SHOWED_AT_LEAST_ONCE = "interoperability.showed" private const val PKEY_DEVICE_TIME_FIRST_RELIABLE = "devicetime.correct.first" private const val PKEY_DEVICE_TIME_LAST_STATE_CHANGE_TIME = "devicetime.laststatechange.timestamp" diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/TracingExplanationDialog.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/TracingExplanationDialog.kt new file mode 100644 index 0000000000000000000000000000000000000000..7ebebc73a22e6aef5ae2753807fa505df2e42540 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/TracingExplanationDialog.kt @@ -0,0 +1,35 @@ +package de.rki.coronawarnapp.tracing.ui + +import android.content.Context +import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.ui.main.home.HomeFragment +import de.rki.coronawarnapp.util.DialogHelper +import javax.inject.Inject + +class TracingExplanationDialog @Inject constructor( + private val homeFragment: HomeFragment +) { + private val context: Context + get() = homeFragment.requireContext() + + fun show(onPositive: () -> Unit) { + + val infoPeriodLogged = + context.getString(R.string.risk_details_information_body_period_logged) + val infoPeriodLoggedAssessment = + context.getString(R.string.risk_details_information_body_period_logged_assessment) + val infoFAQ = context.getString(R.string.risk_details_explanation_dialog_faq_body) + + val data = DialogHelper.DialogInstance( + context = context, + title = context.getString(R.string.risk_details_explanation_dialog_title), + message = "$infoPeriodLogged\n$infoPeriodLoggedAssessment\n\n$infoFAQ", + positiveButton = context.getString(R.string.errors_generic_button_positive), + negativeButton = null, + cancelable = null, + positiveButtonFunction = onPositive, + negativeButtonFunction = {} + ) + DialogHelper.showDialog(data) + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt index d08a82cd6f66f888f36a0a9a95cdcc59b78b44a7..3c6852ad0031d6b01c70d7df4cc03e7b0b0510ee 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.HomeFragmentLayoutBinding +import de.rki.coronawarnapp.tracing.ui.TracingExplanationDialog import de.rki.coronawarnapp.ui.main.home.popups.DeviceTimeIncorrectDialog import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat import de.rki.coronawarnapp.util.DialogHelper @@ -40,6 +41,7 @@ class HomeFragment : Fragment(R.layout.home_fragment_layout), AutoInject { val binding: HomeFragmentLayoutBinding by viewBindingLazy() @Inject lateinit var homeMenu: HomeMenu + @Inject lateinit var tracingExplanationDialog: TracingExplanationDialog @Inject lateinit var deviceTimeIncorrectDialog: DeviceTimeIncorrectDialog private val homeAdapter = HomeAdapter() @@ -91,6 +93,11 @@ class HomeFragment : Fragment(R.layout.home_fragment_layout), AutoInject { HomeFragmentEvents.ShowReactivateRiskCheckDialog -> { showReactivateRiskCheckDialog() } + HomeFragmentEvents.ShowTracingExplanation -> { + tracingExplanationDialog.show { + vm.tracingExplanationWasShown() + } + } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt index c99db2506808087fa7d0f2a9a658bee8b84aafd7..45f581002f78709b070aa97ea686d628b72f9188 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt @@ -2,6 +2,8 @@ package de.rki.coronawarnapp.ui.main.home sealed class HomeFragmentEvents { + object ShowTracingExplanation : HomeFragmentEvents() + object ShowErrorResetDialog : HomeFragmentEvents() object ShowDeleteTestDialog : HomeFragmentEvents() diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt index 6cdae10cfd0f093d0643cc4778a6102cd5a8a48c..53da0dee2c310489f588b9cf8cfa137d1dcd7026 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt @@ -48,6 +48,7 @@ import de.rki.coronawarnapp.tracing.ui.homecards.TracingProgressCard import de.rki.coronawarnapp.tracing.ui.statusbar.TracingHeaderState import de.rki.coronawarnapp.tracing.ui.statusbar.toHeaderState import de.rki.coronawarnapp.ui.main.home.HomeFragmentEvents.ShowErrorResetDialog +import de.rki.coronawarnapp.ui.main.home.HomeFragmentEvents.ShowTracingExplanation import de.rki.coronawarnapp.ui.main.home.items.FAQCard import de.rki.coronawarnapp.ui.main.home.items.HomeItem import de.rki.coronawarnapp.ui.main.home.items.ReenableRiskCard @@ -99,6 +100,9 @@ class HomeFragmentViewModel @AssistedInject constructor( if (errorResetTool.isResetNoticeToBeShown) { popupEvents.postValue(ShowErrorResetDialog) } + if (!cwaSettings.wasTracingExplanationDialogShown) { + popupEvents.postValue(ShowTracingExplanation) + } } } @@ -311,6 +315,10 @@ class HomeFragmentViewModel @AssistedInject constructor( cwaSettings.wasDeviceTimeIncorrectAcknowledged = true } + fun tracingExplanationWasShown() { + cwaSettings.wasTracingExplanationDialogShown = true + } + @AssistedFactory interface Factory : SimpleCWAViewModelFactory<HomeFragmentViewModel> } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt index e5f9d81677ee0a601b55e6c9205ddda7050d228a..64929458b059e6c40a2ea3e1705d438707916f80 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt @@ -51,6 +51,7 @@ class EncryptedPreferencesMigration @Inject constructor( Timber.i("copyData(): EncryptedPreferences are available") SettingsLocalData(encryptedSharedPreferences).apply { cwaSettings.wasInteroperabilityShownAtLeastOnce = wasInteroperabilityShown() + cwaSettings.wasTracingExplanationDialogShown = wasTracingExplanationDialogShown() cwaSettings.isNotificationsRiskEnabled.update { isNotificationsRiskEnabled() } cwaSettings.isNotificationsTestEnabled.update { isNotificationsTestEnabled() } cwaSettings.numberOfRemainingSharePositiveTestResultReminders = @@ -101,7 +102,9 @@ class EncryptedPreferencesMigration @Inject constructor( @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) class SettingsLocalData(private val sharedPreferences: SharedPreferences) { - fun wasInteroperabilityShown() = sharedPreferences.getBoolean(PREFERENCE_INTEROPERABILITY_WAS_USED, false) + fun wasInteroperabilityShown() = sharedPreferences.getBoolean(PKEY_INTEROPERABILITY_WAS_USED, false) + + fun wasTracingExplanationDialogShown() = sharedPreferences.getBoolean(PKEY_TRACING_EXPLANATION_WAS_SHOWN, false) fun isNotificationsRiskEnabled(): Boolean = sharedPreferences.getBoolean(PKEY_NOTIFICATIONS_RISK_ENABLED, true) @@ -112,7 +115,10 @@ class EncryptedPreferencesMigration @Inject constructor( companion object { @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - const val PREFERENCE_INTEROPERABILITY_WAS_USED = "preference_interoperability_is_used_at_least_once" + const val PKEY_INTEROPERABILITY_WAS_USED = "preference_interoperability_is_used_at_least_once" + + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + const val PKEY_TRACING_EXPLANATION_WAS_SHOWN = "preference_risk_days_explanation_shown" @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) const val PKEY_NOTIFICATIONS_RISK_ENABLED = "preference_notifications_risk_enabled" diff --git a/Corona-Warn-App/src/main/res/values-bg/strings.xml b/Corona-Warn-App/src/main/res/values-bg/strings.xml index 6ffed9f20c0812164f24f069c311d24816a81d9f..7e78dc1d1d6d3422df73b54aeaf10a341303d4de 100644 --- a/Corona-Warn-App/src/main/res/values-bg/strings.xml +++ b/Corona-Warn-App/src/main/res/values-bg/strings.xml @@ -308,7 +308,7 @@ <!-- XTXT: risk details - infection period logged information body, over 14 days --> <string name="risk_details_information_body_period_logged_assessment_over_14_days">"Ðко региÑтрирането на контактите Ви е било активно, когато Ñте Ñе Ñрещали Ñ Ð´Ñ€ÑƒÐ³Ð¸ хора, риÑкът да Ñте Ñе заразили през този период ще бъде изчиÑлен."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> <!-- XTXT: risk details - infection period logged information body, under 14 days --> - <string name="risk_details_information_body_period_logged_assessment">"РегиÑтрирането на Ð¸Ð·Ð»Ð°Ð³Ð°Ð½Ð¸Ñ Ð½Ð° риÑк покрива поÑледните 14 дни. За този период от време функциÑта е била активна на Ð’Ð°ÑˆÐ¸Ñ Ñмартфон в продължение на %1$s дни. Приложението изтрива автоматично по-Ñтарите региÑтри, тъй като те вече не могат да Ñлужат за предотвратÑване на заразÑването."</string> + <string name="risk_details_information_body_period_logged_assessment">"Приложението изтрива автоматично по-Ñтарите региÑтри, тъй като те вече не могат да Ñлужат за предотвратÑване на заразÑването."</string> <!-- XTXT: risk details - infection period days logged/14 --> <string name="risk_details_information_active_tracing_days_circle_progress">"%s/14"</string> <!-- XHED: risk details - how your risk level was calculated, below behaviors --> @@ -321,8 +321,6 @@ <string name="risk_details_information_body_low_risk">"Вашето ниво на риÑк от заразÑване е ниÑко, защото нÑмате региÑтрирани контакти Ñ Ð»Ð¸Ñ†Ð°, които впоÑледÑтвие Ñа били диагноÑтицирани Ñ ÐºÐ¾Ñ€Ð¾Ð½Ð°Ð²Ð¸Ñ€ÑƒÑ, или ако Ñте имали такива, те Ñа били краткотрайни и от по-голÑмо разÑтоÑние."</string> <!-- YTXT: risk details - low risk explanation text with encounter with low risk --> <string name="risk_details_information_body_low_risk_with_encounter">"РиÑкът от заразÑване Ñе изчиÑлÑва локално на Ñмартфона Ви въз оÑнова на региÑтрираните данни за излагане. ИзчиÑлението включва Ñъщо така разÑтоÑнието от и продължителноÑтта на вÑички контакти Ñ Ð»Ð¸Ñ†Ð°, диагноÑтицирани Ñ ÐºÐ¾Ñ€Ð¾Ð½Ð°Ð²Ð¸Ñ€ÑƒÑ, както и възможноÑтта им да заразÑÑ‚ околните. Ðикой оÑвен Ð’Ð°Ñ Ð½Ðµ може да види или да получи данни за Вашето ниво на риÑк."</string> - <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> - <string name="risk_details_explanation_dialog_faq_body">"За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ Ñтраницата „ЧЗВ“."</string> <!-- XLNK: FAQ URL pointing to the faq page in german. Need to use the URL for english for all other languages--> <string name="risk_details_explanation_faq_link">"https://www.coronawarn.app/en/faq/#encounter_but_green"</string> <!-- YTXT: risk details - increased risk explanation text with variable date since last contact --> @@ -347,6 +345,10 @@ <!-- XACT: risk details page title --> <string name="risk_details_accessibility_title">"ВашиÑÑ‚ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° риÑк"</string> + <!-- XHED: one time risk explanation dialog title --> + <string name="risk_details_explanation_dialog_title">"Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñно функционалноÑтта за региÑтриране на Ð¸Ð·Ð»Ð°Ð³Ð°Ð½Ð¸Ñ Ð½Ð° риÑк"</string> + <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> + <string name="risk_details_explanation_dialog_faq_body">"За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð¸Ð¶Ñ‚Ðµ Ñтраницата „ЧЗВ“."</string> <!-- XHED: risk details - deadman notification title --> <string name="risk_details_deadman_notification_title">"ВашиÑÑ‚ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° риÑк"</string> <!-- YTXT: risk details - deadman notification text --> diff --git a/Corona-Warn-App/src/main/res/values-de/strings.xml b/Corona-Warn-App/src/main/res/values-de/strings.xml index 11b61f1b9e9201d1e7e7b9d42730aa89db318dc4..ca400a338630659144fa534ed9c3601b36d4b856 100644 --- a/Corona-Warn-App/src/main/res/values-de/strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/strings.xml @@ -303,13 +303,14 @@ <!-- XHED: risk details - infection period logged headling, below behaviors --> <string name="risk_details_subtitle_period_logged">"Dieser Zeitraum wird berücksichtigt."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> +<!-- Dialog part 1--> <string name="risk_details_information_body_period_logged">"Die Berechnung des Infektionsrisikos kann nur für die Zeiträume erfolgen, an denen die Risiko-Ermittlung aktiv war. Die Risiko- Ermittlung sollte daher dauerhaft aktiv sein. Für Ihre Risiko-Ermittlung wird der Zeitraum der letzten 14 Tage betrachtet."</string> <!-- XTXT: risk details - infection period logged information body, under 14 days --> <string name="risk_details_information_body_period_logged_assessment_under_14_days">"Die Corona-Warn-App ist seit %s Tagen installiert. Das Infektionsrisiko wird für Zeiträume berechnet, in denen die Risiko-Ermittlung aktiv ist. Wenn Sie andere Personen getroffen haben und die Risiko-Ermittlung aktiv war, wird Ihr Infektions-Risiko berechnet."</string> <!-- XTXT: risk details - infection period logged information body, over 14 days --> <string name="risk_details_information_body_period_logged_assessment_over_14_days">"Wenn die Risiko-Ermittlung zu Zeiten in denen sie andere Personen getroffen haben aktiv war, kann die Berechnung des Infektionsrisikos für diesen Zeitraum erfolgen."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> <!-- XTXT: risk details - infection period logged information body, under 14 days --> - <string name="risk_details_information_body_period_logged_assessment">"Für Ihre Risiko-Ermittlung wird nur der Zeitraum der letzten 14 Tage betrachtet. In diesem Zeitraum war Ihre Risiko-Ermittlung für eine Gesamtdauer von %1$s Tagen aktiv. Ältere Tage werden automatisch gelöscht, da sie aus Sicht des Infektionsschutzes nicht mehr relevant sind."</string> + <string name="risk_details_information_body_period_logged_assessment">"Ältere Tage werden automatisch gelöscht, da sie aus Sicht des Infektionsschutzes nicht mehr relevant sind."</string> <!-- XTXT: risk details - infection period days logged/14 --> <string name="risk_details_information_active_tracing_days_circle_progress">"%s/14"</string> <!-- XHED: risk details - how your risk level was calculated, below behaviors --> @@ -322,8 +323,6 @@ <string name="risk_details_information_body_low_risk">"Sie haben ein niedriges Infektionsrisiko, da keine Begegnung mit nachweislich Corona-positiv getesteten Personen aufgezeichnet wurde oder sich Ihre Begegnung auf kurze Zeit und einen größeren Abstand beschränkt hat."</string> <!-- YTXT: risk details - low risk explanation text with encounter with low risk --> <string name="risk_details_information_body_low_risk_with_encounter">"Das Infektionsrisiko wird anhand der Daten der Risiko-Ermittlung unter Berücksichtigung des Abstands und der Dauer von Begegnungen mit nachweislich Corona-positiv getesteten Personen sowie deren vermutlicher Infektiosität lokal auf Ihrem Smartphone berechnet. Ihr Infektionsrisiko ist für niemanden einsehbar und wird nicht weitergegeben."</string> - <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> - <string name="risk_details_explanation_dialog_faq_body">"Weitere Informationen finden Sie in den FAQ."</string> <!-- XLNK: FAQ URL pointing to the faq page in german. Need to use the URL for english for all other languages--> <string name="risk_details_explanation_faq_link">"https://www.coronawarn.app/de/faq/#encounter_but_green"</string> <!-- YTXT: risk details - increased risk explanation text with variable date since last contact --> @@ -348,6 +347,10 @@ <!-- XACT: risk details page title --> <string name="risk_details_accessibility_title">"Ihr Risikostatus"</string> + <!-- XHED: one time risk explanation dialog title --> + <string name="risk_details_explanation_dialog_title">"Information zur Funktionsweise der Risiko-Ermittlung"</string> + <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> + <string name="risk_details_explanation_dialog_faq_body">"Weitere Informationen finden Sie in den FAQ."</string> <!-- XHED: risk details - deadman notification title --> <string name="risk_details_deadman_notification_title">"Ihr Risikostatus"</string> <!-- YTXT: risk details - deadman notification text --> diff --git a/Corona-Warn-App/src/main/res/values-en/strings.xml b/Corona-Warn-App/src/main/res/values-en/strings.xml index efd09f6e5df74e3e3db5b25757930b8fa7a8b1ea..5f51cd11cc7fdb4de136f1e9676ee2729a008b60 100644 --- a/Corona-Warn-App/src/main/res/values-en/strings.xml +++ b/Corona-Warn-App/src/main/res/values-en/strings.xml @@ -308,7 +308,7 @@ <!-- XTXT: risk details - infection period logged information body, over 14 days --> <string name="risk_details_information_body_period_logged_assessment_over_14_days">"If exposure logging was active in times during which you encountered other people, your risk of infection can be calculated for this period."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> <!-- XTXT: risk details - infection period logged information body, under 14 days --> - <string name="risk_details_information_body_period_logged_assessment">"Exposure logging covers the past 14 days. During this time, the logging feature on your smartphone was active for %1$s days. The app automatically deletes older logs, as these are no longer relevant for infection prevention."</string> + <string name="risk_details_information_body_period_logged_assessment">"The app automatically deletes older logs, as these are no longer relevant for infection prevention."</string> <!-- XTXT: risk details - infection period days logged/14 --> <string name="risk_details_information_active_tracing_days_circle_progress">"%s/14"</string> <!-- XHED: risk details - how your risk level was calculated, below behaviors --> @@ -321,8 +321,6 @@ <string name="risk_details_information_body_low_risk">"You have a low risk of infection because no exposure to people later diagnosed with coronavirus was logged, or because your encounters were only for a short time and at a greater distance."</string> <!-- YTXT: risk details - low risk explanation text with encounter with low risk --> <string name="risk_details_information_body_low_risk_with_encounter">"The risk of infection is calculated locally on your smartphone, using exposure logging data. The calculation also takes into account distance and duration of any exposure to persons diagnosed with coronavirus, as well as their potential infectiousness. Your risk of infection cannot be seen by or passed on to anyone else."</string> - <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> - <string name="risk_details_explanation_dialog_faq_body">"For further information, please see our FAQ page."</string> <!-- XLNK: FAQ URL pointing to the faq page in german. Need to use the URL for english for all other languages--> <string name="risk_details_explanation_faq_link">"https://www.coronawarn.app/en/faq/#encounter_but_green"</string> <!-- YTXT: risk details - increased risk explanation text with variable date since last contact --> @@ -347,6 +345,10 @@ <!-- XACT: risk details page title --> <string name="risk_details_accessibility_title">"Your Risk Status"</string> + <!-- XHED: one time risk explanation dialog title --> + <string name="risk_details_explanation_dialog_title">"Information about exposure logging functionality"</string> + <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> + <string name="risk_details_explanation_dialog_faq_body">"For further information, please see our FAQ page."</string> <!-- XHED: risk details - deadman notification title --> <string name="risk_details_deadman_notification_title">"Your Risk Status"</string> <!-- YTXT: risk details - deadman notification text --> diff --git a/Corona-Warn-App/src/main/res/values-pl/strings.xml b/Corona-Warn-App/src/main/res/values-pl/strings.xml index 12e5fc17fe6b1fbc5449c58c38e0b96a210bc882..dac049c9a67601679a613ddeb0152cb9023bf379 100644 --- a/Corona-Warn-App/src/main/res/values-pl/strings.xml +++ b/Corona-Warn-App/src/main/res/values-pl/strings.xml @@ -308,7 +308,7 @@ <!-- XTXT: risk details - infection period logged information body, over 14 days --> <string name="risk_details_information_body_period_logged_assessment_over_14_days">"JeÅ›li rejestrowanie narażenia byÅ‚o aktywne podczas kontaktowania siÄ™ z innymi ludźmi, można obliczyć ryzyko zakażenia dla tego okresu."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> <!-- XTXT: risk details - infection period logged information body, under 14 days --> - <string name="risk_details_information_body_period_logged_assessment">"Rejestrowanie narażenia obejmuje ostatnie 14 dni. W tym czasie funkcja rejestrowania w Twoim smartfonie byÅ‚a aktywna przez %1$s dni. Aplikacja automatycznie usuwa starsze dzienniki, ponieważ nie sÄ… one już istotne dla zapobiegania zakażeniom."</string> + <string name="risk_details_information_body_period_logged_assessment">"Aplikacja automatycznie usuwa starsze dzienniki, ponieważ nie sÄ… one już istotne dla zapobiegania zakażeniom."</string> <!-- XTXT: risk details - infection period days logged/14 --> <string name="risk_details_information_active_tracing_days_circle_progress">"%s/14"</string> <!-- XHED: risk details - how your risk level was calculated, below behaviors --> @@ -321,8 +321,6 @@ <string name="risk_details_information_body_low_risk">"Masz niskie ryzyko zakażenia, ponieważ nie zarejestrowano narażenia na kontakt z osobami, u których później zdiagnozowano koronawirusa, lub ponieważ Twoje kontakty trwaÅ‚y krótko przy zachowaniu odpowiednio dużej odlegÅ‚oÅ›ci."</string> <!-- YTXT: risk details - low risk explanation text with encounter with low risk --> <string name="risk_details_information_body_low_risk_with_encounter">"Ryzyko zakażenia jest obliczane lokalnie na Twoim smartfonie na podstawie danych rejestrowania narażenia. Ta kalkulacja uwzglÄ™dnia również dystans i czas trwania narażenia na kontakt z osobami, u których zdiagnozowano koronawirusa, a także ich potencjalnÄ… zakaźność. Twoje ryzyko zakażenia nie jest widoczne dla nikogo ani nikomu przekazywane."</string> - <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> - <string name="risk_details_explanation_dialog_faq_body">"WiÄ™cej informacji znajduje siÄ™ na naszej stronie „CzÄ™sto zadawane pytaniaâ€."</string> <!-- XLNK: FAQ URL pointing to the faq page in german. Need to use the URL for english for all other languages--> <string name="risk_details_explanation_faq_link">"https://www.coronawarn.app/en/faq/#encounter_but_green"</string> <!-- YTXT: risk details - increased risk explanation text with variable date since last contact --> @@ -347,6 +345,10 @@ <!-- XACT: risk details page title --> <string name="risk_details_accessibility_title">"Twój status ryzyka"</string> + <!-- XHED: one time risk explanation dialog title --> + <string name="risk_details_explanation_dialog_title">"Informacje o funkcjonalnoÅ›ci rejestrowania narażenia"</string> + <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> + <string name="risk_details_explanation_dialog_faq_body">"WiÄ™cej informacji znajduje siÄ™ na naszej stronie „CzÄ™sto zadawane pytaniaâ€."</string> <!-- XHED: risk details - deadman notification title --> <string name="risk_details_deadman_notification_title">"Twój status ryzyka"</string> <!-- YTXT: risk details - deadman notification text --> diff --git a/Corona-Warn-App/src/main/res/values-ro/strings.xml b/Corona-Warn-App/src/main/res/values-ro/strings.xml index 03b55ce8e9c5c96f3fb49a3735dbf1a783ae8799..f4274158250087cd7d2ceb26d23d502e5285207e 100644 --- a/Corona-Warn-App/src/main/res/values-ro/strings.xml +++ b/Corona-Warn-App/src/main/res/values-ro/strings.xml @@ -308,7 +308,7 @@ <!-- XTXT: risk details - infection period logged information body, over 14 days --> <string name="risk_details_information_body_period_logged_assessment_over_14_days">"Dacă înregistrarea în jurnal a expunerilor a fost activă pe durata în care v-aÈ›i întâlnit cu alte persoane, riscul dvs. de infectare poate fi calculat pentru această perioadă."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> <!-- XTXT: risk details - infection period logged information body, under 14 days --> - <string name="risk_details_information_body_period_logged_assessment">"ÃŽnregistrarea în jurnal a expunerilor acoperă ultimele 14 zile. ÃŽn această perioadă, caracteristica de înregistrare în jurnal de pe smartphone-ul dvs. a fost activă timp de %1$s zile. AplicaÈ›ia È™terge automat înregistrările mai vechi din jurnal, întrucât acestea nu mai sunt relevante pentru prevenirea infectării."</string> + <string name="risk_details_information_body_period_logged_assessment">"AplicaÈ›ia È™terge automat înregistrările mai vechi din jurnal, întrucât acestea nu mai sunt relevante pentru prevenirea infectării."</string> <!-- XTXT: risk details - infection period days logged/14 --> <string name="risk_details_information_active_tracing_days_circle_progress">"%s/14"</string> <!-- XHED: risk details - how your risk level was calculated, below behaviors --> @@ -321,8 +321,6 @@ <string name="risk_details_information_body_low_risk">"AveÈ›i un risc redus de infectare deoarece nu a fost înregistrată nicio expunere la persoane diagnosticate ulterior cu coronavirus sau întâlnirile dvs. au fost limitate la o perioadă scurtă È™i la o distanță mai mare."</string> <!-- YTXT: risk details - low risk explanation text with encounter with low risk --> <string name="risk_details_information_body_low_risk_with_encounter">"Riscul de infectare este calculat local pe smartphone-ul dvs., utilizând datele de înregistrare în jurnal a expunerilor. Calculul poate È›ine cont È™i de distanÈ›a È™i durata expunerii la persoane diagnosticate cu coronavirus, precum È™i de potenÈ›iala contagiozitate a acestora. Riscul dvs. de infectare nu poate fi observat sau transmis mai departe niciunei alte persoane."</string> - <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> - <string name="risk_details_explanation_dialog_faq_body">"Pentru mai multe informaÈ›ii, consultaÈ›i pagina noastră de întrebări frecvente."</string> <!-- XLNK: FAQ URL pointing to the faq page in german. Need to use the URL for english for all other languages--> <string name="risk_details_explanation_faq_link">"https://www.coronawarn.app/en/faq/#encounter_but_green"</string> <!-- YTXT: risk details - increased risk explanation text with variable date since last contact --> @@ -347,6 +345,10 @@ <!-- XACT: risk details page title --> <string name="risk_details_accessibility_title">"Starea riscului dvs."</string> + <!-- XHED: one time risk explanation dialog title --> + <string name="risk_details_explanation_dialog_title">"InformaÈ›ii despre funcÈ›ionalitatea de înregistrare în jurnal a expunerilor"</string> + <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> + <string name="risk_details_explanation_dialog_faq_body">"Pentru mai multe informaÈ›ii, consultaÈ›i pagina noastră de întrebări frecvente."</string> <!-- XHED: risk details - deadman notification title --> <string name="risk_details_deadman_notification_title">"Starea riscului dvs."</string> <!-- YTXT: risk details - deadman notification text --> diff --git a/Corona-Warn-App/src/main/res/values-tr/strings.xml b/Corona-Warn-App/src/main/res/values-tr/strings.xml index 6fcb04f07dc27ac117e09e551b3792ec178d6718..708c1d7514ddf488bca8b77b38eaec01feab2b95 100644 --- a/Corona-Warn-App/src/main/res/values-tr/strings.xml +++ b/Corona-Warn-App/src/main/res/values-tr/strings.xml @@ -308,7 +308,7 @@ <!-- XTXT: risk details - infection period logged information body, over 14 days --> <string name="risk_details_information_body_period_logged_assessment_over_14_days">"Maruz kalma günlüğü baÅŸka insanlarla karşılaÅŸtığınız sırada etkindiyse bu dönem için enfeksiyon riskiniz hesaplanabilir."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> <!-- XTXT: risk details - infection period logged information body, under 14 days --> - <string name="risk_details_information_body_period_logged_assessment">"Maruz kalma günlüğü son 14 günü kapsar. Bu süre boyunca akıllı telefonunuzdaki günlüğe kaydetme özelliÄŸi %1$s gün etkindi. Uygulama, enfeksiyondan korunma için artık ilgili olmadığından daha eski kayıtları otomatik olarak siler."</string> + <string name="risk_details_information_body_period_logged_assessment">"Uygulama, enfeksiyondan korunma için artık ilgili olmadığından daha eski kayıtları otomatik olarak siler."</string> <!-- XTXT: risk details - infection period days logged/14 --> <string name="risk_details_information_active_tracing_days_circle_progress">"%s/14"</string> <!-- XHED: risk details - how your risk level was calculated, below behaviors --> @@ -321,8 +321,6 @@ <string name="risk_details_information_body_low_risk">"Daha sonra koronavirüs tanısı konan kiÅŸilere maruz kaldığınıza dair bir günlük kaydı oluÅŸturulmadığı veya bu kiÅŸilerle yalnızca kısa süreyle ve uzak mesafeden karşılaÅŸtığınız için enfeksiyon riskiniz düşüktür."</string> <!-- YTXT: risk details - low risk explanation text with encounter with low risk --> <string name="risk_details_information_body_low_risk_with_encounter">"Enfeksiyon riskiniz, maruz kalma günlüğünün verileri kullanılarak yerel olarak akıllı telefonunuzda hesaplanır. Hesaplamada koronavirüs tanısı konan kiÅŸilere maruz kalma mesafesi ve süresinin yanında potansiyel enfeksiyon bulaÅŸtırma durumu da göz önünde bulundurulur. Enfeksiyon riskiniz bir baÅŸkası tarafından görüntülenemez ya da bir baÅŸkasına aktarılamaz."</string> - <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> - <string name="risk_details_explanation_dialog_faq_body">"Daha fazla bilgi için lütfen SSS sayfamıza bakın."</string> <!-- XLNK: FAQ URL pointing to the faq page in german. Need to use the URL for english for all other languages--> <string name="risk_details_explanation_faq_link">"https://www.coronawarn.app/en/faq/#encounter_but_green"</string> <!-- YTXT: risk details - increased risk explanation text with variable date since last contact --> @@ -347,6 +345,10 @@ <!-- XACT: risk details page title --> <string name="risk_details_accessibility_title">"Risk Durumunuz"</string> + <!-- XHED: one time risk explanation dialog title --> + <string name="risk_details_explanation_dialog_title">"Maruz kalma günlüğü iÅŸlevi hakkında bilgi"</string> + <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> + <string name="risk_details_explanation_dialog_faq_body">"Daha fazla bilgi için lütfen SSS sayfamıza bakın."</string> <!-- XHED: risk details - deadman notification title --> <string name="risk_details_deadman_notification_title">"Risk Durumunuz"</string> <!-- YTXT: risk details - deadman notification text --> diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index 4d15d836c72e0f0a8ad50f6fd663f2b77fd51e3e..b130661cc095d571d67b47e545d8dedd2dd6eed7 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -313,7 +313,7 @@ <!-- XTXT: risk details - infection period logged information body, over 14 days --> <string name="risk_details_information_body_period_logged_assessment_over_14_days">"If exposure logging was active in times during which you encountered other people, your risk of infection can be calculated for this period."</string> <!-- XHED: risk details - infection period logged information body, below behaviors --> <!-- XTXT: risk details - infection period logged information body, under 14 days --> - <string name="risk_details_information_body_period_logged_assessment">"Exposure logging covers the past 14 days. During this time, the logging feature on your smartphone was active for %1$s days. The app automatically deletes older logs, as these are no longer relevant for infection prevention."</string> + <string name="risk_details_information_body_period_logged_assessment">"The app automatically deletes older logs, as these are no longer relevant for infection prevention."</string> <!-- XTXT: risk details - infection period days logged/14 --> <string name="risk_details_information_active_tracing_days_circle_progress">"%s/14"</string> <!-- XHED: risk details - how your risk level was calculated, below behaviors --> @@ -348,6 +348,11 @@ <!-- XACT: risk details page title --> <string name="risk_details_accessibility_title">"Your Risk Status"</string> + <!-- XHED: one time risk explanation dialog title --> + <string name="risk_details_explanation_dialog_title">"Information about exposure logging functionality"</string> + <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> + <string name="risk_details_explanation_dialog_faq_body">"For further information, please see our FAQ page."</string> + <!-- XHED: risk details - deadman notification title --> <string name="risk_details_deadman_notification_title">"Your Risk Status"</string> <!-- YTXT: risk details - deadman notification text --> @@ -638,8 +643,6 @@ <string name="settings_tracing_status_connection_headline">"Open Internet connection"</string> <!-- XTXT: settings(tracing) - explains user what to do on card if connection is disabled --> <string name="settings_tracing_status_connection_body">"Exposure logging requires an Internet connection to calculate your risk of infection. Please turn on Wi-Fi or mobile data in your device settings."</string> - <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information--> - <string name="risk_details_explanation_dialog_faq_body">"For further information, please see our FAQ page."</string> <!-- XLNK: FAQ URL pointing to the faq page in german. Need to use the URL for english for all other languages--> <string name="risk_details_explanation_faq_link">"https://www.coronawarn.app/en/faq/#encounter_but_green"</string> <!-- XBUT: settings(tracing) - go to operating system settings button on card --> diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt index c4b671d9e27857ea7738ea1bf37adce39273d4fc..bc18a0cf95c56e371fc70394f66f767ce40f307d 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt @@ -61,7 +61,8 @@ class EncryptedPreferencesMigrationTest : BaseIOTest() { private fun createOldPreferences() = MockSharedPreferences().also { it.edit { // SettingsLocalData - putBoolean(EncryptedPreferencesMigration.SettingsLocalData.PREFERENCE_INTEROPERABILITY_WAS_USED, true) + putBoolean(EncryptedPreferencesMigration.SettingsLocalData.PKEY_INTEROPERABILITY_WAS_USED, true) + putBoolean(EncryptedPreferencesMigration.SettingsLocalData.PKEY_TRACING_EXPLANATION_WAS_SHOWN, true) putBoolean(EncryptedPreferencesMigration.SettingsLocalData.PKEY_NOTIFICATIONS_RISK_ENABLED, false) putBoolean(EncryptedPreferencesMigration.SettingsLocalData.PKEY_NOTIFICATIONS_TEST_ENABLED, false) putInt( @@ -98,6 +99,7 @@ class EncryptedPreferencesMigrationTest : BaseIOTest() { // SettingsLocalData every { cwaSettings.wasInteroperabilityShownAtLeastOnce = true } just Runs + every { cwaSettings.wasTracingExplanationDialogShown = true } just Runs val mockRiskPreference = mockFlowPreference(true) every { cwaSettings.isNotificationsRiskEnabled } returns mockRiskPreference val mockTestPreference = mockFlowPreference(true) @@ -145,7 +147,7 @@ class EncryptedPreferencesMigrationTest : BaseIOTest() { val mockPrefs = mockk<SharedPreferences>() every { mockPrefs.getBoolean( - EncryptedPreferencesMigration.SettingsLocalData.PREFERENCE_INTEROPERABILITY_WAS_USED, + EncryptedPreferencesMigration.SettingsLocalData.PKEY_INTEROPERABILITY_WAS_USED, false ) } throws Exception("No one expects the spanish inquisition")