diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt index 023b07e91f91db49428e98edfb71b3c12c408b06..3ff6a0f5df3011912bc89d09f734a9766a7a8e4b 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt @@ -6,11 +6,17 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AlertDialog +import androidx.lifecycle.lifecycleScope import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentOnboardingTracingBinding +import de.rki.coronawarnapp.exception.ExceptionCategory +import de.rki.coronawarnapp.exception.reporting.report +import de.rki.coronawarnapp.nearby.InternalExposureNotificationClient import de.rki.coronawarnapp.nearby.InternalExposureNotificationPermissionHelper +import de.rki.coronawarnapp.storage.LocalData import de.rki.coronawarnapp.ui.BaseFragment import de.rki.coronawarnapp.util.DialogHelper +import kotlinx.coroutines.launch /** * This fragment ask the user if he wants to enable tracing. @@ -59,6 +65,7 @@ class OnboardingTracingFragment : BaseFragment(), override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setButtonOnClickListener() + resetTracing() } private fun setButtonOnClickListener() { @@ -100,4 +107,23 @@ class OnboardingTracingFragment : BaseFragment(), OnboardingTracingFragmentDirections.actionOnboardingTracingFragmentToOnboardingTestFragment() ) } + + private fun resetTracing() { + // Reset tracing state in onboarding + lifecycleScope.launch { + if (InternalExposureNotificationClient.asyncIsEnabled()) { + try { + InternalExposureNotificationClient.asyncStop() + // Reset initial activation timestamp + LocalData.initialTracingActivationTimestamp(0L) + } catch (exception: Exception) { + exception.report( + ExceptionCategory.EXPOSURENOTIFICATION, + OnboardingTracingFragment.TAG, + null + ) + } + } + } + } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt index 0eb9d83e9995f15c58907c94f68e680d819f341a..0c97c73a4f9f4fbb962aa04f345d8df15a62ab53 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt @@ -8,16 +8,19 @@ import android.view.ViewGroup import android.widget.Toast import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope +import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentSettingsTracingBinding import de.rki.coronawarnapp.exception.ExceptionCategory import de.rki.coronawarnapp.exception.reporting.report import de.rki.coronawarnapp.nearby.InternalExposureNotificationClient import de.rki.coronawarnapp.nearby.InternalExposureNotificationPermissionHelper +import de.rki.coronawarnapp.storage.LocalData import de.rki.coronawarnapp.ui.BaseFragment import de.rki.coronawarnapp.ui.ViewBlocker import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel +import de.rki.coronawarnapp.util.DialogHelper import de.rki.coronawarnapp.util.SettingsNavigationHelper import de.rki.coronawarnapp.worker.BackgroundWorkScheduler import kotlinx.coroutines.launch @@ -142,8 +145,32 @@ class SettingsTracingFragment : BaseFragment(), tracingViewModel.refreshIsTracingEnabled() BackgroundWorkScheduler.stopWorkScheduler() } else { - internalExposureNotificationPermissionHelper.requestPermissionToStartTracing() + // tracing was already activated + if (LocalData.initialTracingActivationTimestamp() != null) { + internalExposureNotificationPermissionHelper.requestPermissionToStartTracing() + } else { + // tracing was never activated + // ask for consent via dialog for initial tracing activation when tracing was not + // activated during onboarding + showConsentDialog() + } } } } + + private fun showConsentDialog() { + val dialog = DialogHelper.DialogInstance( + requireActivity(), + R.string.onboarding_tracing_headline_consent, + R.string.onboarding_tracing_body_consent, + R.string.onboarding_button_enable, + R.string.onboarding_button_cancel, + true, + { + internalExposureNotificationPermissionHelper.requestPermissionToStartTracing() + }, { + tracingViewModel.refreshIsTracingEnabled() + }) + DialogHelper.showDialog(dialog) + } } diff --git a/Corona-Warn-App/src/main/res/layout/fragment_information.xml b/Corona-Warn-App/src/main/res/layout/fragment_information.xml index 2d53533aa11775bba97e37bbd88857b1ef42d6dc..931078c802bac1001a36c96cbdbc84dda88550af 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_information.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_information.xml @@ -46,7 +46,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:title="@{@string/information_about_title}" /> + app:subtitle="@{@string/information_about_title}" /> <include android:id="@+id/information_help" @@ -56,7 +56,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/information_about" - app:title="@{@string/information_help_title}" /> + app:subtitle="@{@string/information_help_title}" /> <include android:id="@+id/information_terms" @@ -66,7 +66,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/information_help" - app:title="@{@string/information_terms_title}" /> + app:subtitle="@{@string/information_terms_title}" /> <include android:id="@+id/information_privacy" @@ -76,7 +76,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/information_terms" - app:title="@{@string/information_privacy_title}" /> + app:subtitle="@{@string/information_privacy_title}" /> <include android:id="@+id/information_technical" @@ -86,7 +86,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/information_privacy" - app:title="@{@string/information_technical_title}" /> + app:subtitle="@{@string/information_technical_title}" /> <include android:id="@+id/information_contact" @@ -96,7 +96,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/information_technical" - app:title="@{@string/information_contact_title}" /> + app:subtitle="@{@string/information_contact_title}" /> <include android:id="@+id/information_legal" @@ -106,7 +106,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/information_contact" - app:title="@{@string/information_legal_title}" /> + app:subtitle="@{@string/information_legal_title}" /> <TextView android:id="@+id/information_version" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_information_legal.xml b/Corona-Warn-App/src/main/res/layout/fragment_information_legal.xml index 8cfe965ddc6c82dd4eab3bbc3daed82b25280a7a..fa547c7c5332bcb01dd930db9d91bfd8cb276607 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_information_legal.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_information_legal.xml @@ -38,24 +38,73 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - <ImageView - android:id="@+id/information_legal_illustration" - android:layout_width="@dimen/match_constraint" + <include + android:id="@+id/information_legal_header_details" + layout="@layout/include_information_details" + android:layout_width="0dp" android:layout_height="wrap_content" - android:contentDescription="@string/information_legal_illustration_description" - android:src="@drawable/ic_information_illustration_legal" + app:body="@{@string/information_legal_subtitle_publisher}" + app:headline="@{@string/information_legal_headline_publisher}" + app:illustration="@{@drawable/ic_information_illustration_legal}" + app:illustrationDescription="@{@string/information_legal_illustration_description}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView - android:id="@+id/information_legal_body" - android:layout_width="@dimen/match_constraint" + android:id="@+id/information_legal_body_publisher" + style="@style/subtitle" + android:layout_width="0dp" android:layout_height="wrap_content" - android:text="@{FormatterHelper.formatStringAsHTML(R.string.information_legal_body)}" + android:layout_marginTop="@dimen/spacing_tiny" + android:text="@string/information_legal_body_publisher" app:layout_constraintEnd_toStartOf="@+id/guideline_end" app:layout_constraintStart_toEndOf="@+id/guideline_start" - app:layout_constraintTop_toBottomOf="@+id/information_legal_illustration" /> + app:layout_constraintTop_toBottomOf="@+id/information_legal_header_details" /> + + <TextView + android:id="@+id/information_legal_headline_contact" + style="@style/headline6" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_small" + android:text="@string/information_legal_headline_contact" + app:layout_constraintEnd_toStartOf="@+id/guideline_end" + app:layout_constraintStart_toEndOf="@+id/guideline_start" + app:layout_constraintTop_toBottomOf="@+id/information_legal_body_publisher" /> + + <TextView + android:id="@+id/information_legal_subtitle_contact" + style="@style/subtitle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_tiny" + android:text="@string/information_legal_subtitle_contact" + app:layout_constraintEnd_toStartOf="@+id/guideline_end" + app:layout_constraintStart_toEndOf="@+id/guideline_start" + app:layout_constraintTop_toBottomOf="@+id/information_legal_headline_contact" /> + + <TextView + android:id="@+id/information_legal_headline_taxid" + style="@style/headline6" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_small" + android:text="@string/information_legal_headline_taxid" + app:layout_constraintEnd_toStartOf="@+id/guideline_end" + app:layout_constraintStart_toEndOf="@+id/guideline_start" + app:layout_constraintTop_toBottomOf="@+id/information_legal_subtitle_contact" /> + + <TextView + android:id="@+id/information_legal_subtitle_taxid" + style="@style/subtitle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_tiny" + android:text="@string/information_legal_subtitle_taxid" + app:layout_constraintEnd_toStartOf="@+id/guideline_end" + app:layout_constraintStart_toEndOf="@+id/guideline_start" + app:layout_constraintTop_toBottomOf="@+id/information_legal_headline_taxid" /> <include layout="@layout/merge_guidelines_side" /> diff --git a/Corona-Warn-App/src/main/res/layout/fragment_information_privacy.xml b/Corona-Warn-App/src/main/res/layout/fragment_information_privacy.xml index 32ab4e322f7f08ac35aa8e8f8743cb169da12d31..637c7cee80dfd7ece080deda51a04fb102fdc382 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_information_privacy.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_information_privacy.xml @@ -38,24 +38,26 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - <ImageView - android:id="@+id/information_privacy_illustration" - android:layout_width="@dimen/match_constraint" + <include + android:id="@+id/information_privacy_header_details" + layout="@layout/include_information_details" + android:layout_width="0dp" android:layout_height="wrap_content" - android:contentDescription="@string/information_privacy_illustration_description" - android:src="@drawable/ic_illustration_privacy" + app:illustration="@{@drawable/ic_illustration_privacy}" + app:illustrationDescription="@{@string/information_privacy_illustration_description}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/information_privacy_body" + style="@style/subtitle" android:layout_width="@dimen/match_constraint" android:layout_height="wrap_content" android:text="@{FormatterHelper.formatStringAsHTML(R.string.information_privacy_body)}" app:layout_constraintEnd_toStartOf="@+id/guideline_end" app:layout_constraintStart_toEndOf="@+id/guideline_start" - app:layout_constraintTop_toBottomOf="@+id/information_privacy_illustration" /> + app:layout_constraintTop_toBottomOf="@+id/information_privacy_header_details" /> <include layout="@layout/merge_guidelines_side" /> diff --git a/Corona-Warn-App/src/main/res/layout/fragment_information_technical.xml b/Corona-Warn-App/src/main/res/layout/fragment_information_technical.xml index d0a5668bd54a99d9745e3bf73f4aa1b8bd0edf66..50b2021336c90e147b28d1b066c92d8962da5187 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_information_technical.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_information_technical.xml @@ -38,24 +38,26 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - <ImageView - android:id="@+id/information_technical_illustration" - android:layout_width="@dimen/match_constraint" + <include + android:id="@+id/information_technical_header_details" + layout="@layout/include_information_details" + android:layout_width="0dp" android:layout_height="wrap_content" - android:contentDescription="@string/information_technical_illustration_description" - android:src="@drawable/ic_information_illustration_technical" + app:illustration="@{@drawable/ic_information_illustration_technical}" + app:illustrationDescription="@{@string/information_technical_illustration_description}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/information_technical_body" + style="@style/subtitle" android:layout_width="@dimen/match_constraint" android:layout_height="wrap_content" android:text="@{FormatterHelper.formatStringAsHTML(R.string.information_technical_body)}" app:layout_constraintEnd_toStartOf="@+id/guideline_end" app:layout_constraintStart_toEndOf="@+id/guideline_start" - app:layout_constraintTop_toBottomOf="@+id/information_technical_illustration" /> + app:layout_constraintTop_toBottomOf="@+id/information_technical_header_details" /> <include layout="@layout/merge_guidelines_side" /> diff --git a/Corona-Warn-App/src/main/res/layout/fragment_information_terms.xml b/Corona-Warn-App/src/main/res/layout/fragment_information_terms.xml index 214347b3dd97504c396d9cb183ce6bb79de1e516..17885b9567df5be213bc3c6bf2cc265093897634 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_information_terms.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_information_terms.xml @@ -2,6 +2,14 @@ <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> + <data> + + <import type="de.rki.coronawarnapp.util.formatter.FormatterHelper" /> + + <import type="de.rki.coronawarnapp.R" /> + + </data> + <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent"> @@ -44,32 +52,16 @@ app:layout_constraintTop_toTopOf="parent" /> <TextView - android:id="@+id/text_sample_1" + android:id="@+id/information_terms_body" + style="@style/subtitle" android:layout_width="0dp" android:layout_height="wrap_content" - android:text="@string/lorem_ipsum" + android:layout_marginTop="@dimen/spacing_small" + android:text="@{FormatterHelper.formatStringAsHTML(R.string.information_terms_body)}" app:layout_constraintEnd_toStartOf="@+id/guideline_end" app:layout_constraintStart_toEndOf="@+id/guideline_start" app:layout_constraintTop_toBottomOf="@+id/information_terms_header_details" /> - <TextView - android:id="@+id/text_sample_2" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:text="@string/lorem_ipsum" - app:layout_constraintEnd_toStartOf="@+id/guideline_end" - app:layout_constraintStart_toEndOf="@+id/guideline_start" - app:layout_constraintTop_toBottomOf="@+id/text_sample_1" /> - - <TextView - android:id="@+id/text_sample_3" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:text="@string/lorem_ipsum" - app:layout_constraintEnd_toStartOf="@+id/guideline_end" - app:layout_constraintStart_toEndOf="@+id/guideline_start" - app:layout_constraintTop_toBottomOf="@+id/text_sample_2" /> - <androidx.constraintlayout.widget.Guideline android:id="@+id/guideline_start" android:layout_width="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml index 7bbf40dd22c45466d79ce539070fd604d64e3ad4..a2d3826e64a3646e21ff182a6d7819e70cd72e1f 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml @@ -101,7 +101,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_subtitle" - app:title="@{@string/main_overview_subtitle_increased_risk}" /> + app:subtitle="@{@string/main_overview_subtitle_increased_risk}" /> <include android:id="@+id/main_overview_risk_low_risk" @@ -113,7 +113,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_increased_risk" - app:title="@{@string/main_overview_subtitle_low_risk}" /> + app:subtitle="@{@string/main_overview_subtitle_low_risk}" /> <include android:id="@+id/main_overview_risk_unknown_risk" @@ -125,7 +125,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_low_risk" - app:title="@{@string/main_overview_subtitle_unknown_risk}" /> + app:subtitle="@{@string/main_overview_subtitle_unknown_risk}" /> <include android:id="@+id/main_overview_test" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml index 1f1cd1f7e50a09068db7aa2d2f1dc27c70075951..c46d695cdd9d2602d5a19c0cf94da81115170c95 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml @@ -22,8 +22,10 @@ android:layout_height="0dp" android:layout_marginBottom="@dimen/spacing_normal" app:body="@{@string/onboarding_tracing_body}" + app:bodyCard="@{@string/onboarding_tracing_body_consent}" app:bodyEmphasized="@{@string/onboarding_tracing_body_emphasized}" app:headline="@{@string/onboarding_tracing_headline}" + app:headlineCard="@{@string/onboarding_tracing_headline_consent}" app:illustration="@{@drawable/ic_illustration_tracing_on}" app:illustrationDescription="@{@string/onboarding_tracing_illustration_description}" app:layout_constraintBottom_toTopOf="@+id/onboarding_button_next" @@ -38,7 +40,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/spacing_small" - android:text="@string/onboarding_button_next" + android:text="@string/onboarding_tracing_button_next" app:layout_constraintBottom_toTopOf="@id/onboarding_button_disable" app:layout_constraintEnd_toEndOf="@id/guideline_end" app:layout_constraintStart_toStartOf="@id/guideline_start" /> diff --git a/Corona-Warn-App/src/main/res/layout/include_onboarding.xml b/Corona-Warn-App/src/main/res/layout/include_onboarding.xml index 065e9dc6c15f61be2b0627ece0b249578c20d8d0..b7628a823e98f21e2dc50e08f95753cd5f65eed7 100644 --- a/Corona-Warn-App/src/main/res/layout/include_onboarding.xml +++ b/Corona-Warn-App/src/main/res/layout/include_onboarding.xml @@ -19,6 +19,14 @@ name="headline" type="String" /> + <variable + name="headlineCard" + type="String" /> + + <variable + name="bodyCard" + type="String" /> + <variable name="subtitle" type="String" /> @@ -30,6 +38,7 @@ <variable name="bodyEmphasized" type="String" /> + </data> <ScrollView @@ -101,6 +110,19 @@ app:layout_constraintTop_toBottomOf="@id/onboarding_body" tools:text="@string/onboarding_body_emphasized" /> + <include + android:id="@+id/onboarding_card" + layout="@layout/include_tracing_status_card" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + android:visibility="@{FormatterHelper.formatVisibilityText(headlineCard)}" + app:body="@{bodyCard}" + app:headline="@{headlineCard}" + app:layout_constraintEnd_toEndOf="@id/guideline_end" + app:layout_constraintStart_toStartOf="@id/guideline_start" + app:layout_constraintTop_toBottomOf="@+id/onboarding_body_emphasized" /> + <androidx.constraintlayout.widget.Guideline android:id="@+id/guideline_start" android:layout_width="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/include_row.xml b/Corona-Warn-App/src/main/res/layout/include_row.xml index 8de928fde488e8b11f2d44695253d15231578a62..8dede7fa24580dd8988417c100610913c6ce54fe 100644 --- a/Corona-Warn-App/src/main/res/layout/include_row.xml +++ b/Corona-Warn-App/src/main/res/layout/include_row.xml @@ -11,7 +11,7 @@ type="de.rki.coronawarnapp.ui.viewmodel.TracingViewModel" /> <variable - name="title" + name="subtitle" type="String" /> <variable @@ -26,13 +26,8 @@ name="iconStart" type="android.graphics.drawable.Drawable" /> - <variable - name="subtitle" - type="String" /> - </data> - <!-- todo element naming, rename title + subtitle accordingly to convention --> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" @@ -67,22 +62,10 @@ style="@style/subtitle" android:layout_width="0dp" android:layout_height="wrap_content" - android:text="@{title}" - app:layout_constraintEnd_toStartOf="@+id/main_row_item_icon" - app:layout_constraintStart_toEndOf="@+id/guideline_body" - app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/main_row_item_subtitle" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:paddingTop="@dimen/spacing_mega_tiny" android:text="@{subtitle}" - android:visibility="@{FormatterHelper.formatVisibilityText(subtitle)}" - app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/main_row_item_icon" app:layout_constraintStart_toEndOf="@+id/guideline_body" - app:layout_constraintTop_toBottomOf="@+id/main_row_item_headline" /> + app:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@+id/main_row_item_icon" diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index 070c1c2b310b3046622eaf4c1230a560146f20d8..e24cb16b0d903f6c1631f692e448caaacbd6d231 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -145,10 +145,14 @@ <string name="notification_id"> <xliff:g id="notification_id">1</xliff:g> </string> - <string name="notification_name">Corona Warn App</string> - <string name="notification_description">Benachrichtigungen aus der Corona Warn App.</string> - <string name="notification_headline">Corona-Warn App</string> - <string name="notification_body">Es gibt Neuigkeiten von Ihrer Corona-Warn-App</string> + <!-- XTXT: Notification channel name for os settings --> + <string name="notification_name">Corona-Warn-App</string> + <!-- XTXT: Notification channel description for os settings --> + <string name="notification_description">Benachrichtigungen aus der Corona-Warn-App.</string> + <!-- XHED: Notification title --> + <string name="notification_headline">Corona-Warn-App</string> + <!-- XTXT: Notification body --> + <string name="notification_body">Es gibt Neuigkeiten von ihrer Corona-Warn-App</string> <!-- #################################### App Auto Update @@ -215,8 +219,8 @@ <string name="main_about_headline">Häufige Fragen</string> <!-- XTXT: main, explains faq on card --> <string name="main_about_body">Hier finden Sie Antworten auf häufig gestellte Fragen rund um die Corona-Warn-App.</string> - <!-- NOTR todo insert english link in translation file http://www.bundesregierung.de/corona-warn-app-faq-englisch --> - <string name="main_about_link">http://www.bundesregierung.de/corona-warn-app-faq</string> + <!-- NOTR todo insert english link in translation file https://www.bundesregierung.de/corona-warn-app-faq-englisch --> + <string name="main_about_link">https://www.bundesregierung.de/corona-warn-app-faq</string> <!-- #################################### Main - Share @@ -338,7 +342,12 @@ ###################################### --> <string name="onboarding_image_description">IS MISSING</string> + <!-- XBUT: onboarding - forward and deny --> <string name="onboarding_button_disable">Nicht aktivieren</string> + <!-- XBUT: onboarding - forward and allow --> + <string name="onboarding_button_enable">Aktivieren</string> + <!-- XBUT: onboarding - back and cancel --> + <string name="onboarding_button_cancel">Abbrechen</string> <!-- XBUT: onboarding - next --> <string name="onboarding_button_next">Weiter</string> <!-- XBUT: onboarding - start --> @@ -369,6 +378,12 @@ <string name="onboarding_tracing_body">Die Risiko-Ermittlung funktioniert, indem Ihr Handy per Bluetooth verschlüsselte Zufallscodes anderer Nutzerinnen und Nutzer empfängt und Ihren eigenen Zufallscode an deren Smartphones weitergibt. Die Funktion lässt sich jederzeit wieder deaktivieren.</string> <!-- YTXT: onboarding(tracing) - explain tracing --> <string name="onboarding_tracing_body_emphasized">Die verschlüsselten Zufallscodes geben nur Auskunft über das Datum, die Dauer und die anhand der Signalstärke berechnete Entfernung zu Ihren Mitmenschen. Persönliche Daten wie Name, Adresse oder Aufenthaltsort werden zu keiner Zeit erfasst. Konkrete Rückschlüsse auf Personen sind nicht möglich.</string> + <!-- XHED: onboarding(tracing) - headline for consent information --> + <string name="onboarding_tracing_headline_consent">Einwilligungserklärung</string> + <!-- YTXT: onboarding(tracing) - body for consent information --> + <string name="onboarding_tracing_body_consent">Um zu erfahren, ob Sie Kontakt mit einer infizierten Person hatten und für Sie ein Infektionsrisiko besteht, müssen Sie die Funktion Risiko-Ermittlung in der App aktivieren. Der Aktivierung der Risiko-Ermittlung und der damit im Zusammenhang stehenden Datenverarbeitung stimmen Sie mit Antippen des Buttons: Risiko-Ermittlung aktivieren zu.<xliff:g id="line_break">\n</xliff:g><xliff:g id="line_break">\n</xliff:g>Um die Risiko-Ermittlung nutzen zu können müssen Sie zudem auf Ihrem Smartphone die von Google bereitgestellte Kontaktaufzeichnungs-Funktion „Benachrichtigungen zu möglicher Begegnung mit COVID-19-Infizierten“ aktivieren und für die Corona-Warn-App freigeben.<xliff:g id="line_break">\n</xliff:g><xliff:g id="line_break">\n</xliff:g>Ihr Smartphone erzeugt und versendet bei aktivierter Kontaktaufzeichnung kontinuierlich Zufalls-IDs per Bluetooth, die von anderen Apple- und Android-Smartphones mit ebenfalls aktivierter Kontaktaufzeichnung in Ihrer Umgebung empfangen werden können. Umgekehrt empfängt Ihr Smartphone die Zufalls-IDs der anderen Smartphones. Die eigenen und die von anderen Smartphones empfangenen Zufalls-IDs werden im Kontaktprotokoll der Kontaktaufzeichnungs-Funktion aufgezeichnet und dort für 14 Tage gespeichert.<xliff:g id="line_break">\n</xliff:g><xliff:g id="line_break">\n</xliff:g>Zur Ermittlung Ihres Infektionsrisikos lädt die App mehrmals täglich oder auf Abfrage eine Liste mit den Zufalls-IDs aller Nutzer, die Ihre Infektion mit dem Corona-Virus in der App geteilt haben. Diese Liste wird dann mit den im Kontaktprotokoll der Kontaktaufzeichnungs-Funktion gespeicherten Zufalls-IDs verglichen. Wenn die App dabei feststellt, dass Sie möglicherweise Kontakt zu einem infizierten Nutzer gehabt haben, werden Sie von der App informiert, dass Sie mit einer infizierten Person in Kontakt waren und insoweit ein Infektionsrisiko besteht. In diesem Fall erhält die App außerdem Zugriff auf weitere im Kontaktprotokoll der Kontaktaufzeichnungs-Funktion Ihres Smartphones gespeicherte Daten (Datum und Dauer sowie Bluetooth-Signalstärke des Kontakts).<xliff:g id="line_break">\n</xliff:g><xliff:g id="line_break">\n</xliff:g>Aus der Bluetooth-Signalstärke wird der räumliche Abstand abgeleitet (je stärker das Signal, desto geringer der Abstand). Diese Angaben werden von der App ausgewertet, um Ihr Gesundheitsrisiko durch eine Infektion mit dem Corona-Virus abzuschätzen und Ihnen Empfehlungen für die nächsten Schritte zu geben. Diese Auswertung wird ausschließlich lokal auf Ihrem Smartphone durchgeführt. Außer Ihnen erfährt niemand (auch nicht das RKI), ob Sie mit einer infizierten Person Kontakt hatten und welches Risiko für Sie ermittelt wird.<xliff:g id="line_break">\n</xliff:g><xliff:g id="line_break">\n</xliff:g>Zum Widerruf Ihrer Einwilligung in die Risiko-Ermittlung können Sie die Funktion über den Schieberegler innerhalb der App deaktivieren oder die App löschen. Wenn Sie die Risiko-Ermittlung wieder nutzen möchten, können Sie den Schieberegler erneut aktivieren oder die App erneut installieren. Wenn Sie die Risiko-Ermittlung deaktivieren, prüft die App nicht mehr, ob Sie Kontakt zu einem infizierten Nutzer gehabt haben. Um auch die Aussendung und den Empfang der Zufalls-IDs anzuhalten, müssen Sie das Kontaktprotokoll der Kontaktaufzeichnungs-Funktion in den Einstellungen Ihres Smartphones deaktivieren. Bitte beachten Sie, dass die im Kontaktprotokoll aufgezeichneten fremden und eigenen Zufalls-Kennungen nicht in der App gelöscht werden. Die im Kontaktprotokoll gespeicherten Daten können Sie nur in den Einstellungen Ihres Smartphones dauerhaft löschen.<xliff:g id="line_break">\n</xliff:g><xliff:g id="line_break">\n</xliff:g>Die Datenschutzhinweise der App (einschließlich Informationen zur Datenverarbeitung für die Risiko-Ermittlung) finden Sie unter dem Menüpunkt „Datenschutzinformation“.</string> + <!-- XBUT: onboarding(tracing) - button enable tracing --> + <string name="onboarding_tracing_button_next">Risiko-Ermittlung aktivieren</string> <!-- XTXT: onboarding(tracing) - dialog about tracing permission declined --> <string name="onboarding_tracing_dialog_headline">Berechtigung</string> <!-- YMSI: onboarding(tracing) - dialog about tracing --> @@ -710,9 +725,7 @@ ist das Robert Koch-Institut, Nordufer 20, 13353 Berlin (im Folgenden „<strong <p> Weitere Informationen zu der Kontaktaufzeichnungs-Funktion von Android-Smartphones finden Sie unter: - <a href="https://support.google.com/android/answer/9888358?hl=de"> https://support.google.com/android/answer/9888358?hl=de - </a> . </p> <p> @@ -1267,10 +1280,7 @@ ist das Robert Koch-Institut, Nordufer 20, 13353 Berlin (im Folgenden „<strong </li> <li> das Recht, den behördlichen - <a href="https://www.rki.de/DE/Content/Institut/OrgEinheiten/Datenschutz/Datenschutz_node.html" - title="Datenschutzbeauftragter"> Datenschutzbeauftragten des RKI - </a> zu kontaktieren und Ihr Anliegen vorzubringen (Artikel 38 Abs. 4 DSGVO) und </li> @@ -1302,12 +1312,821 @@ ist das Robert Koch-Institut, Nordufer 20, 13353 Berlin (im Folgenden „<strong <p> Stand: 05.06.2020 </p>]]></string> - <string name="information_privacy_headline">@string/lorem_ipsum</string> <!-- XACT: describes illustration --> <string name="information_privacy_illustration_description">Eine Frau mit einem Handy benutzt die Corona-Warn-App, ein Vorhängeschloss auf einem Schild steht als Symbol für verschlüsselte Daten.</string> <!-- XHED: Page title for terms of use information page, also menu item / button text --> <string name="information_terms_title">Nutzungsbedingungen</string> - <string name="information_terms_headline">@string/lorem_ipsum</string> + <!-- XHED: Page headline for terms of use information page --> + <string name="information_terms_headline">Inhalt</string> + <!-- YTXT: Body for terms of use information page --> + <string name="information_terms_body"> + <![CDATA[ +<p> + 1...... Welche Funktionen hat die APP? +</p> +<p> + 2...... Was bedeutet niedriges oder erhöhtes Risiko?. +</p> +<p> + 3...... Risiko-Begegnung – was tun?. +</p> +<p> + 4...... Kein Infektionsschutz durch die App. +</p> +<p> + 5...... Abrufen von Testergebnissen. +</p> +<p> + 6...... Auslösen einer Warnung. +</p> +<p> + 7...... Voraussetzungen für die Nutzung der App. +</p> +<p> + 8...... Grenzen der App. +</p> +<p> + 9...... Nutzungsrechte. +</p> +<p> + 10.... Wichtige Hinweise zu Verfügbarkeit und Änderungen. +</p> +<p> + 11.... Keine Gewährleistung. +</p> +<p> + 12.... Besondere Bedingungen für die iOS-Version der App. +</p> +<p> + 13.... Schlussbestimmungen. +</p> +<p> + Herausgeber der App ist das +</p> +<p> + Robert Koch-Institut +</p> +<p> + Nordufer 20 +</p> +<p> + 13353 Berlin ("<strong>RKI</strong>") +</p> +<p> + vertreten durch den Präsidenten. Für Fragen, Beschwerden und Ansprüche im + Zusammenhang mit diesen Nutzungsbedingungen können Sie das RKI telefonisch + unter +49 30 18754-5100 und per E-Mail unter CoronaWarnApp@rki.de + erreichen. +</p> +<p> + Bitte lesen Sie diese Nutzungsbedingungen sorgfältig. Diese + Nutzungsbedingungen regeln Ihre Nutzung der Corona Warn App einschließlich +der Nutzung zukünftiger Versionen (Patches, Updates und Upgrades) ("<strong>App</strong>") und der Nutzung weiterer Dienste (" <a name="_Hlk41947003"><strong>CWA-Dienste</strong></a>"), die derzeit oder + zukünftig vom RKI im Zusammenhang mit der App bereitgestellt werden. Die + separate Datenschutzerklärung (siehe <strong>[<em>Link</em>]</strong>) ist + Bestandteil dieser Nutzungsbedingungen. Bitte lesen Sie auch die + Datenschutzerklärung sorgfältig. +</p> +<p> + Die App ist für die Nutzung auf iOS-Geräten im Apple App Store verfügbar + und für die Nutzung auf Android-Geräten bei Google Play. Allgemeine + Nutzungsbedingungen für Applikationen von Apple oder Google finden im + Verhältnis zum RKI keine Anwendung. Das RKI ist allein verantwortlich für + die Inhalte der App sowie deren Wartung und Pflege und für Ansprüche, die + Sie ggf. in Bezug auf die App haben. +</p> +<p> + Mit der Installation und Nutzung der App erklären Sie sich mit diesen + Nutzungsbedingungen einverstanden. Sollten Sie mit den Nutzungsbedingungen + nicht einverstanden sein, dürfen Sie die App nicht installieren oder nutzen + (bzw. müssen diese wieder löschen) und dürfen auch die die damit + verbundenen Dienste und Systeme nicht nutzen. Etwaige Rechte unter Open + Source-Lizenzen in Bezug auf den Quellcode der App bleiben hiervon + unberührt. +</p> +<p> + Sie sind für die Einhaltung dieser Nutzungsbedingungen auch dann + verantwortlich, wenn Sie das Endgerät, auf dem Sie die App installiert + haben, Dritten überlassen und diese die App verwenden. +</p> +<p> + Die App richtet sich an Personen, die mindestens 16 Jahre alt sind. + Personen unter 16 Jahren dürfen die App nur mit Zustimmung ihres/ihrer + Sorgeberechtigten verwenden. +</p> +<p> + <a name="_Toc42328034">1. Welche Funktionen hat die APP?</a> +</p> +<p> + Ziel der Corona Warn App ist es, SARS-CoV-2-Infektionsketten frühzeitig zu + durchbrechen. Personen sollen möglichst zuverlässig und schnell über + Begegnungen mit infizierten Personen und damit mögliche Übertragungen des + Virus informiert werden, damit sie sich freiwillig isolieren können, um + damit zu einer Eindämmung der SARS-CoV-2-Pandemie beizutragen. +</p> +<p> + Die wesentlichen Funktionen der App sind nachstehend beschrieben. Hierbei + handelt es sich um eine Beschreibung zu Ihrer Information und nicht um eine + Beschaffenheitsvereinbarung oder die Vereinbarung bestimmter Funktionen, + bitte beachten Sie die diesbezüglichen Hinweise und Vorbehalte unter Ziffer + 10. +</p> +<p> + Hintergrund +</p> +<p> + Die App läuft auf dem Endgerät im Hintergrund und speichert automatisiert + und verschlüsselt die Zufallscodes (<em>rolling proximity identifier</em>) + anderer in der Nähe befindlicher Endgeräte. In regelmäßigen Abständen holt +sich die App über die CWA-Dienste eine Liste der Zufallscodes (<em>t</em> <em>emporary exposure keys</em>) der Personen, die sich freiwillig + infiziert gemeldet haben, und vergleicht diese mit den gespeicherten + Zufallscodes im Gerät, um eine Risiko-Begegnung zu ermitteln. +</p> +<p> + Die App kann nur Begegnungen mit Personen registrieren, die ihrerseits ein + Endgerät mit installierter App bei sich führen und alle Voraussetzungen für + die Nutzung der App erfüllen (siehe unten Ziffer 7). Begegnungen mit + anderen Personen kann die App nicht registrieren. +</p> +<p> + Risikobenachrichtigung +</p> +<p> + Bei einer festgestellten Risiko-Begegnung zu positiv getesteten Personen + erhalten Sie eine Benachrichtigung und verhaltensbezogene Empfehlungen. + Hier kann zum Beispiel die Kontaktaufnahme mit ärztlichem Fachpersonal, mit + dem zuständigen Gesundheitsamt und/oder die freiwillige häusliche Isolation + empfohlen werden. +</p> +<p> + Benachrichtigung über Testergebnisse +</p> +<p> + Ab dem Zeitpunkt der Probenabgabe für einen Test auf eine + SARS-CoV-2-Infektion können Sie über die App den digitalen + Testinformationsprozess starten und damit über das Testergebnis + benachrichtigt werden. Die App übermittelt lediglich das vom jeweiligen + Labor mitgeteilte Testergebnis. Das RKI ist weder für die Durchführung des + Tests noch für den Inhalt des Testergebnisses verantwortlich. +</p> +<p> + Infektfall +</p> +<p> + Im Fall eines positiven SARS-CoV-2-Befunds können Sie freiwillig die in der + App gespeicherten eigenen Zufallscodes der letzten 14 Tage als + Positivkennungen (<em>diagnosis keys</em>) veröffentlichen, damit andere + Personen, die die App nutzen, auf ihrem eigenen Endgerät abgleichen können, + ob sie mit Ihnen eine Risiko-Begegnung hatten. +</p> +<p> + Technische Beschreibung der App +</p> +<p> + Die technischen Funktionen der App sowie der damit verbundenen Dienste und + Systeme sind unter folgendem Link detailliert beschrieben: +</p> +<p> + https://github.com/Corona-Warn-App +</p> +<p> + Diese technische Beschreibung dient lediglich der Erläuterung und ist nicht + Bestandteil dieser Nutzungsbedingungen. Sie stellt auch keine + Beschaffenheitsvereinbarung in Bezug auf die App dar. +</p> +<p> + Weiterführende Informationen +</p> +<p> +Weiterführende Informationen zur App finden Sie unter folgendem Link: <strong>[<em>Link</em>]</strong> +</p> +<p> + Weiterführende Informationen zur SARS-CoV-2-Pandemie finden Sie unter + folgendem Link: + https://www.zusammengegencorona.de/ +</p> +<p> + Diese weiterführenden Informationen dienen lediglich der Erläuterung und + sind nicht Bestandteil dieser Nutzungsbedingungen. +</p> +<p> + <a name="_Toc42328035">2. Was bedeutet niedriges oder erhöhtes Risiko?</a> +</p> +<p> + Die App berechnet auf Basis der festgestellten Begegnungen ein indikatives + individuelles Risiko. Hierbei werden Faktoren wie der Zeitraum seit der +Begegnung (<em>days since exposure</em>), die Dauer der Begegnung ( <em>exposure duration</em>), die ungefähre Nähe zur infizierten Person, +basierend auf der gemessenen Dämpfung des Bluetooth-Signals (<em>signal attenuation</em>) sowie ggf. Übertragungsrisiken ( <em>transmission risk</em> berücksichtigt. Auf dieser Basis wird Ihnen in + der App entweder ein "niedriges Risiko" oder ein "erhöhtes Risiko" + angezeigt. Es handelt sich hierbei um einen rein indikativen Wert auf der + Grundlage der erfassten Daten. + <strong> + Eine Aussage über das Vorliegen einer tatsächlichen Infektion mit + SARS-CoV-2 ist hiermit nicht verbunden. + </strong> + Auch bei der Angabe eines "niedrigen Risikos" kann eine Infektion + vorliegen, während auch bei Angabe eines "erhöhten Risikos" eine Infektion + nicht gegeben sein kann. +</p> +<p> + <strong> + Andere Faktoren können Ihr persönliches Infektionsrisiko erheblich + beeinflussen. Diese werden von der App nicht berücksichtigt. + </strong> + Das sind insbesondere Ihre persönlichen Umstände, die äußeren Umstände + einer Risiko-Begegnung mit einer infizierten Person, Ihr persönliches + Verhalten sowie Begegnungen mit Dritten, die von der App nicht erfasst + wurden. Bitte beachten Sie die Hinweise in Ziffer 4. +</p> +<p> + <a name="_Toc42328036">3. Risiko-Begegnung – was tun?</a> +</p> +<p> + Wenn Sie über die App eine Benachrichtigung über eine festgestellte + Risiko-Begegnung mit infizierten Personen erhalten, erhalten Sie + verhaltensbezogene Empfehlungen in der Benachrichtigung. Diese Empfehlungen + sind rechtlich nicht verbindlich, ihre Befolgung wird aber vom RKI + empfohlen. Gesetzliche und vertragliche Pflichten sowie behördliche + Anordnungen für den Fall einer Risiko-Begegnung mit infizierten Personen + bleiben unberührt und müssen von Ihnen unabhängig von diesen Empfehlungen + befolgt werden. +</p> +<p> + <strong> + Innerhalb oder über die App erfolgt keinerlei medizinische Diagnose. + </strong> +</p> +<p> + <strong> + Die Benachrichtigung bedeutet nicht, dass Sie sich mit SARS-CoV-2 + infiziert haben. + </strong> + Sie besagt lediglich, dass sie während der letzten 14 Tage eine + Risiko-Begegnung mit einer anderen Person hatten, bei der eine + SARS-CoV-2-Infektion positiv festgestellt wurde. Hieraus ergibt sich für + Sie zunächst nur eine Möglichkeit, dass Sie sich ebenfalls infiziert haben + könnten. Die Einstufung des diesbezüglichen Risikos als "niedrig" oder + "erhöht" erfolgt allein auf der Basis der ermittelten Daten und lässt keine + Aussage über das tatsächliche Vorliegen einer Infektion zu. +</p> +<p> + <strong> + Die Benachrichtigung über eine Risiko-Begegnung kann unzutreffend sein. + </strong> + Die Risiko-Begegnung kann von Ihrem Endgerät beispielsweise zu einem + Zeitpunkt registriert worden sein, zu dem Sie sich nicht in der Nähe Ihres + Endgeräts aufgehalten haben oder während eine andere Person Ihr Endgerät + verwendet hat. Die Risiko-Begegnung kann auch aufgrund bestehender Grenzen + bei der Kontaktmessung fälschlicherweise registriert worden sein (siehe + unten Ziffer 8). +</p> +<p> + <a name="_Toc42328037"></a> + <a name="_Ref41775531">4. Kein Infektionsschutz durch die App</a> +</p> +<p> + Die App dient der Unterbrechung von Infektionsketten. +</p> +<ul> + <li> + <strong> + Die App schützt Sie nicht vor einer SARS-CoV-2-Infektion. + </strong> + </li> + <li> + <strong> + Die App reduziert Ihr persönliches Infektionsrisiko nicht. + </strong> + </li> + <li> + <strong> + Sie können sich auch mit SARS-CoV-2 infizieren, ohne dass die App + Sie über die Risiko-Begegnung mit der Person benachrichtigt, die + Sie infiziert hat: + </strong> + </li> +</ul> +<p> + o Die App registriert nicht alle Ihre Begegnungen mit anderen Personen, + z.B. weil andere Personen die App nicht verwenden, Sie Ihr Endgerät nicht + immer bei sich tragen oder die App nicht immer in Betrieb haben oder weil + die Kontaktmessung gewissen Grenzen unterliegt (siehe unten Ziffer 8). +</p> +<p> + o Die App informiert Sie nur über festgestellte Risiko-Begegnungen mit + infizierten Personen. Das setzt voraus, dass die App die Begegnung mit der + infizierten Person registriert hat <u>und</u> die infizierte Person eine + Warnung über die App auslöst. Das Auslösen der Warnung ist freiwillig und + erfolgt möglicherweise nicht durch alle infizierten Personen. +</p> +<p> + Bitte halten Sie auch bei Verwendung der App die sonstigen + Vorsichtsmaßnahmen und behördlichen Anordnungen ein. Verlässliche + Informationen über die SARS-CoV-2-Pandemie und Vorsichtsmaßnahmen finden + Sie unter anderem auf: +</p> +<p> + www.infektionsschutz.de/coronavirus +</p> +<p> + www.zusammengegencorona.de +</p> +<p> + www.rki.de/covid-19 +</p> +<p> + Diese weiterführenden Informationen dienen lediglich Ihrer Information und + sind nicht Bestandteil dieser Nutzungsbedingungen. +</p> +<p> +Halten Sie sich auch bei Verwendung der App an die <strong>AHA-Regeln</strong>: +</p> +<p> + <strong>A</strong> + ✋ - Halten Sie mindestens 1,5m Abstand zu Ihren Mitmenschen +</p> +<p> + <strong>H</strong> + � - Waschen Sie sich regelmäßig für mindestens 20 Sekunden die Hände +</p> +<p> + <strong>A</strong> + � - Tragen Sie beim Einkauf und in öffentlichen Verkehrsmitteln eine + Alltagsmaske +</p> +<p> + So schützen Sie sich selbst und andere vor dem Virus. +</p> +<p> + <a name="_Toc42328038">5. Abrufen von Testergebnissen</a> +</p> +<p> + Sie dürfen über die App ausschließlich Ihre eigenen Testergebnisse abrufen. +</p> +<p> + Wenn Sie auf Testergebnisse warten und die CWA-Dienste nicht zur Verfügung + stehen oder der Abruf der Testergebnisse über die App aus sonstigen Gründen + nicht funktioniert, dann informieren Sie sich bitte über andere Kontaktwege + über das Testergebnis, z.B. über die jeweilige Teststelle wie Ihren + Hausarzt oder das örtliche Gesundheitsamt. Warten Sie nicht darauf, dass + die App wieder zur Verfügung steht. +</p> +<p> + <a name="_Toc42328039">6. Auslösen einer Warnung</a> +</p> +<p> + Sie können über die App andere Kontaktpersonen warnen, wenn Sie mit +SARS-CoV-2 infiziert wurden. <strong>Sie dürfen diese Warnung nur auslösen, wenn </strong> + <strong> + die Infektion durch einen Test in einem zugelassenen Testlabor positiv + bestätigt wurde. + </strong> +</p> +<p> + Falls das zugelassene Testlabor noch nicht an die CWA-Dienste angeschlossen + ist, erfolgt eine Überprüfung Ihres Infektionsstatus über eine vom RKI + eingerichtete Verifikations-Hotline. Das Auslösen einer Warnung über die + App auf der Grundlage einer bloßen Risiko-Mitteilung ist nicht zulässig. +</p> +<p> + Bei Unsicherheit: erst Hausarzt oder Gesundheitsamt kontaktieren +</p> +<p> + Wenn Sie nicht sicher sind, ob Sie sich infiziert haben oder nicht, dann + kontaktieren Sie bitte Ihren Hausarzt oder das zuständige Gesundheitsamt, + bevor Sie eine Warnung auslösen. Hier erhalten Sie weitere Beratung und + können sich erforderlichenfalls auf eine Infektion testen lassen. In der + Zwischenzeit befolgen Sie die allgemein gültigen Empfehlungen für das + Verhalten bei dem Verdacht einer SARS-CoV-2-Infektion. +</p> +<p> + Missbrauchsverbot +</p> +<p> + <strong> + Das missbräuchliche Auslösen einer Warnung ist untersagt und kann + schwerwiegende Konsequenzen nach sich ziehen. + </strong> + Insbesondere können Sie sich eventuell gegenüber anderen betroffenen + Personen schadenersatzpflichtig machen. +</p> +<p> + Das RKI behält sich vor, Sie bei Feststellung eines missbräuchlichen + Verhaltens von der weiteren Nutzung der App und der CWA-Dienste + auszuschließen. +</p> +<p> + <a name="_Toc42328040"></a> + <a name="_Ref41851933">7. Voraussetzungen für die Nutzung der App</a> +</p> +<p> + Folgende technische Voraussetzungen sind für die Nutzung der App + erforderlich: +</p> +<p> + Sie benötigen eine Datenverbindung +</p> +<p> + Bestimmte Funktionen der App setzen auf zentrale Dienste und Systeme auf, + die über die CWA-Dienste zur Verfügung gestellt werden. Diese Funktionen + stehen daher nur zur Verfügung, wenn Ihr Endgerät über eine Datenverbindung + mit dem Internet verfügt, z.B. über UMTS, LTE oder WLAN, um hierüber auf + die CWA-Dienste zugreifen zu können. Ohne Datenverbindung stehen einige + oder alle Funktionen der App nicht zur Verfügung. Dies gilt auch, wenn Sie + Ihr Endgerät in den Flugmodus versetzen oder ausschalten. +</p> +<p> + Die App muss auf dem Endgerät laufen und eingeschaltet sein +</p> +<p> + Die App muss auf Ihrem Endgerät im Vorder- oder Hintergrund laufen und + eingeschaltet sein. Hierzu müssen Sie die App starten. Wenn Sie die App + nicht starten, ausschalten oder beenden, speichert die App keine + Begegnungen mit anderen Personen und erzeugt keine Zufallscodes zur + Speicherung durch andere Personen. Wenn Sie das Endgerät neu starten (z.B. + nach dem Ausschalten, nachdem die Batterie leer war oder nach einem Update + des Betriebssystems), müssen Sie auch die App neu starten. +</p> +<p> + Einstellungen im Endgerät +</p> +<p> + Für die Nutzung der App müssen Sie ferner die Bluetooth (BLE)-Funktionen + auf Ihrem Endgerät aktivieren und ggf. zur Verwendung durch die App + freigegeben. +</p> +<p> + Für die Nutzung der App empfiehlt das RKI ferner folgende Funktionen auf + Ihrem Endgerät zu aktivieren und ggf. zur Verwendung durch die App + freizugegeben, auch wenn diese nicht Voraussetzung für die Nutzung der + grundlegenden Funktionen der App sind: +</p> +<ul> + <li> + Benachrichtigungen + </li> + <li> + Kamerafunktion + </li> +</ul> +<p> + Bitte prüfen Sie in den Einstellungen ihres Endgeräts, ob diese Funktionen + aktiviert und für die Verwendung der App freigegeben sind. +</p> +<p> + Eine ausführliche Anleitung zur Einrichtung der App unter iOS und Android + finden Sie unter [<em>Link</em>]. Die Anleitung dient lediglich der + Erläuterung und ist nicht Teil dieser Nutzungsbedingungen. +</p> +<p> + Sie müssen immer die aktuelle Version der App verwenden +</p> +<p> + Das RKI wird von Zeit zu Zeit Updates der App zur Verfügung stellen. Sie + müssen diese Updates unverzüglich installieren und immer die neueste + verfügbare Version der App verwenden. Beim Verwenden älterer Versionen kann + es zu Fehlfunktionen und Störungen kommen. +</p> +<p> + <strong> + <em>Sie benötigen aktuelle Versionen von iOS bzw. Android</em> + </strong> +</p> +<p> + Die App verwendet eigens von Apple in iOS und Google in Android + implementierte Funktionen (<em>sog. Exposure Notification</em>). Diese +stehen in iOS erst ab Version 13.5 und in Android erst ab Version <strong>[x]</strong><strong> </strong>zur Verfügung. Die App funktioniert + daher leider nicht mit früheren Versionen der beiden Betriebssysteme. +</p> +<p> + <a name="_Toc42328041"></a> + <a name="_Ref42018297">8. Grenzen der App</a> +</p> +<p> + Die App kann Sie dabei unterstützen, Risiko-Begegnungen mit Personen zu + erkennen, die später positiv getestet wurden. Die App hat aber auch + Grenzen, die berücksichtigt werden müssen. +</p> +<p> +Eine dieser Grenzen ist, dass die App zwar laufend eigene Zufallscodes ( <em>Rolling Proximity Identifiers</em>) aussendet, aber andere Zufallscodes + nur in bestimmten Intervallen empfängt. Diese Empfangsfenster liegen + derzeit noch bis zu fünf Minuten auseinander und sind nur als sehr kurz + spezifiziert. In der App sind die Empfangsfenster vier Sekunden lang. +</p> +<p> + Für die Entfernungsmessung wird die Dämpfung des Bluetooth-Signals + verwendet. Eine geringere Dämpfung bedeutet dabei grundsätzlich, dass das + andere Endgerät näher ist. Eine höhere Dämpfung kann entweder bedeuten, + dass das andere Endgerät weiter entfernt ist (also eine Entfernung von mehr + als zwei Metern) oder dass sich zwischen den beiden Endgeräten etwas + befindet, was das Signal blockiert. Das können Objekte wie eine Wand oder + eine Tasche, in der sich das Endgerät befindet, sein, aber genauso Personen + oder Tiere. +</p> +<p> + <a name="_Toc42328042">9. Nutzungsrechte</a> +</p> +<p> + <strong><em>Einfaches Nutzungsrecht</em></strong> +</p> +<p> + Hiermit wird Ihnen eine eingeschränkte, nicht ausschließliche, nicht + übertragbare, nicht unterlizenzierbare, widerrufliche Lizenz zur Nutzung + der App für Ihre persönlichen, nicht kommerziellen Zwecke gewährt. +</p> +<p> + Die Lizenz für die iOS-Version der App umfasst die Nutzung auf jedem + Apple-Gerät, an dem Sie Eigentum haben oder über das Sie Kontrolle ausüben, + im Rahmen der geltenden Nutzungsbedingungen des App Stores, wobei auch über + andere Apple Accounts, die mit Ihrem Apple Account via Family Sharing oder + Volumenkauf verbunden sind, auf die App zugegriffen und diese genutzt + werden kann. +</p> +<p> + Sie dürfen im Rahmen von Datensicherungen Kopien der App anfertigen. + Darüberhinausgehende Rechte an der App werden Ihnen nicht eingeräumt. +</p> +<p> + <strong><em>Eigentum an der App</em></strong> +</p> +<p> + Die App (einschließlich des Quellcodes) ist das alleinige und + ausschließliche Eigentum von SAP SE, Dietmar Hopp Allee 16, 69190 Walldorf + („<strong>SAP</strong>“) oder deren Lizenzgebern, vorbehaltlich der Ihnen + nach Ziffer 9 eingeräumten Rechte sowie sonstiger Rechte an der App, die + SAP der Bundesrepublik Deutschland vertraglich eingeräumt hat. +</p> +<p> + <strong><em>Open Source-Lizenzhinweise</em></strong> +</p> +<p> + Information über die Verwendung von Drittkomponenten in der App und die + anwendbaren Lizenzbestimmungen finden Sie in den Open + Source-Lizenzhinweisen in der App. +</p> +<p> + Der Quellcode der App ist unter den Lizenzbedingungen der "Apache 2.0 + License" veröffentlicht und kann unter " + https://github.com/corona-warn-app + " heruntergeladen werden. Die Lizenzbedingungen der "Apache 2.0 License" + sind unter " + https://www.apache.org/licenses/LICENSE-2.0 + " abrufbar. +</p> +<p> + Die auf den Quellcode der App sowie auf in der App enthaltene + Drittkomponenten jeweils anwendbaren Lizenzbestimmungen bleiben von der + Rechteeinräumung nach dieser Ziffer 9 unberührt. +</p> +<p> + <strong><em>Was nicht erlaubt ist</em></strong> +</p> +<p> + Sie dürfen die App nicht manipulieren oder verändern. +</p> +<p> + Sie dürfen die App und die Schnittstellen zu den CWA-Diensten nicht + missbräuchlich verwenden. Sie dürfen die CWA-Dienste nicht für andere + Zwecke nutzen als den bestimmungsgemäßen Betrieb der App auf Ihrem + Endgerät. Sie dürfen auf die CWA-Dienste ausschließlich über die App + zugreifen. +</p> +<p> + <a name="_Toc42328043"></a> + <a name="_Ref41856586"> + 10. Wichtige Hinweise zu Verfügbarkeit und Änderungen + </a> +</p> +<p> + Kein Anspruch auf bestimmte Funktionalität +</p> +<p> + Die App wird Ihnen so zur Verfügung gestellt, wie sie vom RKI herausgegeben + wird. Das RKI übernimmt keine Gewähr für die Funktionsfähigkeit der App + oder der CWA-Dienste und vereinbart mit Ihnen keine bestimmte + Beschaffenheit. Sie haben keinen Anspruch auf eine bestimmte Funktionalität + oder anderweitige Beschaffenheit der App oder der CWA-Dienste. Das RKI kann + die App jederzeit ändern und Funktionen ganz oder teilweise entfernen oder + die App um zusätzliche Funktionen erweitern. +</p> +<p> + Keine Verfügbarkeitszusage +</p> +<p> + Das RKI kann den Betrieb der App und der CWA-Dienste jederzeit einschränken + oder einstellen. Es besteht Ihrerseits kein Anspruch auf die weitergehende + Verfügbarkeit der App oder der damit verbundenen Dienste und Systeme + einschließlich der CWA-Dienste, weder in Bezug auf einzelne Funktionen noch + in Bezug auf das System als Ganzes. +</p> +<p> + Das RKI macht keine Zusagen über die Verfügbarkeit oder Leistungsfähigkeit + der CWA-Dienste. Diese können aufgrund von Wartungsarbeiten oder Störungen + vorübergehend und ggf. auch für längere Zeiträume nicht zur Verfügung + stehen. In diesen Fällen ist die Funktionalität der App ganz oder teilweise + eingeschränkt. +</p> +<p> + Änderung der Nutzungsbedingungen +</p> +<p> + Das RKI behält sich vor, diese Nutzungsbedingungen zu ändern. In diesem + Fall werden Sie beim Start der App aufgefordert, den geänderten + Nutzungsbedingungen zuzustimmen. Wenn Sie den geänderten + Nutzungsbedingungen nicht zustimmen, können Sie die App und die CWA- + Dienste nicht mehr nutzen und müssen die App von Ihrem Endgerät löschen. +</p> +<p> + Risk Score +</p> +<p> +Das RKI behält sich ferner vor, die im Rahmen der Risikobewertung ( <em>risk score</em>) verwendeten Parameter jederzeit zu ändern, um dadurch + jeweils aktuellen Forschungsergebnissen zur Virusübertragung zu + entsprechen. Das RKI bestimmt die verwendeten Parameter jeweils nach seinem + Ermessen. +</p> +<p> + <a name="_Toc42328044">11. Keine Gewährleistung</a> +</p> +<p> + Das RKI bestimmt die Funktionen der App und der CWA-Dienste sowie deren + Ausgestaltung. Das RKI vereinbart mit Ihnen keine bestimmte Beschaffenheit + und Sie haben keinen Anspruch darauf, dass die App bestimmte Funktionen hat + oder diese in bestimmter Weise ausgestaltet sind. Die App wird in dem + Zustand und mit den Funktionen zur Verfügung gestellt, wie sie beim + Veröffentlichen der App im Apple App Store oder bei Google Play durch das + RKI implementiert sind. +</p> +<p> + Das RKI wird die App mit angemessener Sorgfalt zur Verfügung stellen und + angemessene Sorgfalt hinsichtlich der CWA-Dienste anwenden. Das RKI gibt + keine sonstigen Versprechen oder Zusicherungen im Hinblick auf die App oder + die CWA-Dienste ab und gewährleistet insbesondere nicht, dass: +</p> +<p> + · Ihre Nutzung der App oder der CWA-Dienste ohne Unterbrechung möglich oder + fehlerfrei sein wird, +</p> +<p> + · die App oder die CWA-Dienste frei von Verlusten, Korruption, Angriffen, + Viren, Eingriffen, Hacking oder anderen sicherheitsrelevanten Störungen + sein werden. +</p> +<p> + Für die Datensicherung Ihres Endgeräts sowie ggf. damit verbundener Systeme + sind Sie verantwortlich, inklusive der Datensicherung sämtlicher anderer + Apps, welche auf Ihrem Endgerät gespeichert sind. +</p> +<p> + <a name="_Toc42328045"> + 12. Besondere Bedingungen für die iOS-Version der App + </a> +</p> +<p> + Die folgenden Bedingungen gelten für den Bezug der App über den Apple App + Store und die Nutzung der App unter dem Betriebssystem iOS. +</p> +<p> + Einwilligung zur Nutzung von Daten +</p> +<p> + Sie erklären sich damit einverstanden, dass das RKI technische Daten und + zugehörige Informationen – insbesondere technische Informationen über Ihr + Gerät, System und Ihre Anwendungssoftware sowie Peripheriegeräte – erheben + und nutzen darf, die in regelmäßigen Abständen erfasst werden, um die + Bereitstellung von Software-Aktualisierungen, Produkt-Support und anderen + im Zusammenhang mit der App gegenüber Ihnen erbrachten Dienstleistungen + (soweit gegeben) zu erleichtern. Das RKI darf diese Informationen nutzen, + um seine Produkte zu verbessern oder Ihnen Dienstleistungen oder + Technologien zur Verfügung zu stellen, solange dies in einer Form erfolgt, + die Ihre Identität nicht preisgibt. +</p> +<p> + Wartung und Support +</p> +<p> + Das RKI ist als Herausgeber der App allein verantwortlich für Wartung und + Support der App nach Maßgabe dieser Nutzungsbedingungen. Apple übernimmt + keinerlei Verpflichtung zur Erbringung irgendwelcher Wartungs- und + Supportleistungen in Bezug auf die App. +</p> +<p> + Keine Haftung von Apple für Störungen +</p> +<p> + Im Fall von Störungen der App steht es Ihnen frei, Apple hierüber zu + informieren. Soweit gesetzlich zulässig hat Apple keine weitergehenden + Pflichten wegen Störungen der App. +</p> +<p> + Produkthaftung +</p> +<p> + Apple ist nicht verantwortlich für etwaige Ansprüche Ihrerseits oder von + Dritten in Bezug auf die App oder deren Besitz oder Verwendung + einschließlich +</p> +<ul> + <li> + Ansprüchen wegen Produkthaftung, + </li> +</ul> +<p> + · Ansprüchen auf der Basis, dass die App anwendbare gesetzliche oder + regulatorische Anforderungen nicht erfüllt und +</p> +<p> + · Ansprüchen unter Verbrauchschutz- und Datenschutzgesetzen oder ähnlichen + Gesetzen, +</p> +<p> + einschließlich im Zusammenhang mit der Nutzung der HealthKit und + HomeKit-Frameworks. +</p> +<p> + Verletzung von Schutzrechten Dritter +</p> +<p> + Für den Fall, dass Dritte Ansprüche wegen der Verletzung von Schutzrechten + durch die App oder den Besitz oder die Verwendung der App durch Sie geltend + machen, ist Apple nicht verantwortlich für Untersuchungen, Verteidigung, + Beilegung oder Erfüllung solcher Ansprüche wegen der Verletzung von + Schutzrechten. +</p> +<p> + US Embargos und Sanktionen +</p> +<p> + Mit Anerkennen dieser Nutzungsbedingungen bestätigten Sie, +</p> +<p> + · dass Sie sich nicht in einem Land aufhalten, das einem Embargo der + Regierung der Vereinigten Staaten von Amerika unterliegt oder von der + Regierung der Vereinigten Staaten von Amerika als Unterstützer von + Terroristen (<em>"terrorist supporting" country</em>) designiert wurde und +</p> +<p> + · dass Sie nicht auf einer Liste der Regierung der Vereinigten Staaten von + Amerika als sog. <em>Prohibited or Restricted Party</em> geführt werden. +</p> +<p> + Drittbegünstigung von Apple +</p> +<p> + Sie erkennen an und erklären sich damit einverstanden, dass Apple ein + Drittbegünstigter unter diesen Nutzungsbedingungen ist und Apple daher + diese Nutzungsbedingungen Ihnen gegenüber durchsetzen kann. Die Änderung + und Aufhebung dieser Nutzungsbedingungen einschließlich der Rechte von + Apple hierunter bleibt den Vertragsparteien vorbehalten und bedarf nicht + der Zustimmung von Apple. +</p> +<p> + <a name="_Toc42328046">13. Schlussbestimmungen</a> +</p> +<p> + Bestimmungsgemäße Nutzung / Sperrung bei missbräuchlicher Verwendung +</p> +<p> + Sie dürfen die App und die CWA-Dienste nur bestimmungsgemäß nutzen. Das RKI + behält sich vor, Sie bei missbräuchlicher Verwendung der App oder nicht + bestimmungsgemäßem Zugriff auf die CWA-Dienste von der Nutzung der App und + der CWA-Dienste auszuschließen. +</p> +<p> + Dienste Dritter +</p> +<p> + Sofern Sie im Zusammenhang mit der Nutzung der App Dienste Dritter in + Anspruch nehmen, insbesondere die Dienste von + Telekommunikationsdienstleistern für die Bereitstellung einer + Datenverbindung, sind Sie für damit im Zusammenhang stehenden Kosten und + die Einhaltung der jeweiligen Vertragsbedingungen selbst verantwortlich. +</p> +<p> + Anwendbares Recht +</p> +<p> + Diese Nutzungsbedingungen unterliegen dem Recht der Bundesrepublik + Deutschland. Das Übereinkommen der Vereinten Nationen über Verträge über + den internationalen Warenkauf findet keine Anwendung. Die gesetzlichen + Vorschriften zur Beschränkung der Rechtswahl und zur Anwendbarkeit + zwingender Vorschriften insbesondere des Staates, in dem Sie als + Verbraucher Ihren gewöhnlichen Aufenthalt haben, bleiben unberührt. +</p> +<p> + Teilunwirksamkeit +</p> +<p> + Diese Nutzungsbedingungen bleiben auch bei rechtlicher Unwirksamkeit + einzelner Punkte in ihren übrigen Teilen verbindlich. Anstelle der + unwirksamen Punkte treten, soweit vorhanden, die gesetzlichen Vorschriften. + Soweit dies für eine Vertragspartei eine unzumutbare Härte darstellen + würde, werden die Nutzungsbedingungen jedoch im Ganzen unwirksam. +</p> +<p align="center"> + * * * +</p> +]]></string> <!-- XACT: describes illustration --> <string name="information_terms_illustration_description">Eine Hand hält ein Smartphone mit viel Text, daneben ist ein Haken als Symbol für akzeptierte Nutzungsbedingungen.</string> <!-- XHED: Page title for technical contact and hotline information page, also menu item / button text --> @@ -1346,75 +2165,75 @@ ist das Robert Koch-Institut, Nordufer 20, 13353 Berlin (im Folgenden „<strong <h2>Components:</h2> <p>Component: JUnit 4 Licensor: The JUnit Team - Website: <a href="https://junit.org/junit4/">https://junit.org/junit4/</a> + Website: https://junit.org/junit4/ License: Eclipse Public License 1.0</p> <p>Component: Java Hamcrest Licensor: www.hamcrest.org - Website: <a href="https://github.com/hamcrest/JavaHamcrest">https://github.com/hamcrest/JavaHamcrest</a> + Website: https://github.com/hamcrest/JavaHamcrest License: BSD-style license</p> <p>Component: android-database-sqlcipher Licensor: Zetetic LLC - Website: <a href="https://www.zetetic.net/sqlcipher/">https://www.zetetic.net/sqlcipher/</a> + Website: https://www.zetetic.net/sqlcipher/ License: BSD-style license</p> <p>Component: guava Licensor: Google - Website: <a href="https://github.com/google/guava">https://github.com/google/guava</a> + Website: https://github.com/google/guava License: Apache 2.0</p> <p>Component: joda-time Licensor: Joda.org - Website: <a href="https://www.joda.org/joda-time/">https://www.joda.org/joda-time/</a> + Website: https://www.joda.org/joda-time/ License: Apache 2.0</p> <p>Component: Mockito Licensor: Mockito contributors - Website: <a href="https://site.mockito.org/">https://site.mockito.org/</a> + Website: https://site.mockito.org/ License: MIT</p> <p>Component: MockK Licensor: github.com/mockk - Website: <a href="https://github.com/mockk/mockk">https://github.com/mockk/mockk</a> + Website: https://github.com/mockk/mockk License: Apache 2.0</p> <p>Component: Robolectric Licensor: Xtreme Labs, Pivotal Labs and Google Inc. - Website: <a href="http://robolectric.org/">http://robolectric.org/</a> + Website: https://robolectric.org/ License: MIT</p> <p>Component: RootBeer Licensor: Scott Alexander-Bown, Mat Rollings - Website: <a href="https://github.com/scottyab/rootbeer">https://github.com/scottyab/rootbeer</a> + Website: https://github.com/scottyab/rootbeer License: Apache 2.0</p> <p>Component: Zxing Licensor: zxing - Website: <a href="https://github.com/zxing/zxing/">https://github.com/zxing/zxing/</a> + Website: https://github.com/zxing/zxing/ License: Apache 2.0</p> <p>Component: ZXing Android Embedded Licensor: ZXing authors, Journey Mobile - Website: <a href="https://github.com/journeyapps/zxing-android-embedded">https://github.com/journeyapps/zxing-android-embedded</a> + Website: https://github.com/journeyapps/zxing-android-embedded License: Apache 2.0</p> <p>Component: Detekt Licensor: detekt - Website: <a href="https://detekt.github.io/detekt/">https://detekt.github.io/detekt/</a> + Website: https://detekt.github.io/detekt/ License: Apache 2.0</p> <p>Component: gson Licensor: Google - Website: <a href="https://github.com/google/gson">https://github.com/google/gson</a> + Website: https://github.com/google/gson License: Apache 2.0</p> <p>Component: okhttp Licensor: square - Website: <a href="https://square.github.io/okhttp/">https://square.github.io/okhttp/</a> + Website: https://square.github.io/okhttp/ License: Apache 2.0</p> <p>Component: kotlinx.coroutines Licensor: Kotlin - Website: <a href="https://github.com/Kotlin/kotlinx.coroutines">https://github.com/Kotlin/kotlinx.coroutines</a> + Website: https://github.com/Kotlin/kotlinx.coroutines License: Apache 2.0</p> <p>Component: Ktlint Gradle Licensor: Jonathan Leitschuh - Website: <a href="https://github.com/JLLeitschuh/ktlint-gradle">https://github.com/JLLeitschuh/ktlint-gradle</a> + Website: https://github.com/JLLeitschuh/ktlint-gradle License: MIT</p> <p>Component: Retrofit Licensor: square - Website: <a href="https://square.github.io/retrofit/">https://square.github.io/retrofit/</a> + Website: https://square.github.io/retrofit/ License: Apache 2.0</p> <p>Component: Protobuf gradle plugin Licensor: Google - Website: <a href="https://github.com/google/protobuf-gradle-plugin">https://github.com/google/protobuf-gradle-plugin</a> + Website: https://github.com/google/protobuf-gradle-plugin License: BSD 3-Clause</p> <p>Copyright (c) 2008-2020 Zetetic LLC All rights reserved.</p> @@ -1689,30 +2508,20 @@ as modifying the License. <string name="information_technical_illustration_description">Eine Hand hält ein Smartphone mit viel Text, daneben ist eine Balkenwaage als Symbol für rechtliche Hinweise.</string> <!-- XHED: Page title for legal information page, also menu item / button text --> <string name="information_legal_title">Impressum</string> - <!-- YTXT: Body text for legal information page --> - <string name="information_legal_body"><![CDATA[ -<p> - <strong>Herausgeber</strong> - <br />(verantwortlich nach § 5 Abs. 1 TMG, § 55 Abs. 1 RStV, DS-GVO, BDSG) -</p> -<p> - <strong>Robert Koch-Institut</strong> - <br />Nordufer 20 - <br />13353 Berlin -</p> -<p> - vertreten durch den Präsidenten -</p> -<p> - <strong>Kontakt</strong> - <br />E-Mail: CoronaWarnApp@rki.de - <br />Telefon: 030 18754 – 5100 -</p> -<p> - Umsatzsteueridentifikationsnummer - <br />DE 165 893 430 -</p> -]]></string> + <!-- XHED: Headline for legal information page, publisher section --> + <string name="information_legal_headline_publisher">Herausgeber</string> + <!-- YTXT: subtitle for legal information page, publisher section --> + <string name="information_legal_subtitle_publisher">(verantwortlich nach § 5 Abs. 1 TMG, § 55 Abs. 1 RStV, DS-GVO, BDSG)</string> + <!-- YTXT: body for legal information page, publisher section --> + <string name="information_legal_body_publisher">Robert Koch-Institut<xliff:g id="line_break">\n</xliff:g>Nordufer 20<xliff:g id="line_break">\n</xliff:g>13353 Berlin<xliff:g id="line_break">\n</xliff:g><xliff:g id="line_break">\n</xliff:g>vertreten durch den Präsidenten</string> + <!-- XHED: Headline for legal information page, contact section --> + <string name="information_legal_headline_contact">Kontakt</string> + <!-- YTXT: subtitle for legal information page, contact section --> + <string name="information_legal_subtitle_contact">E-Mail: CoronaWarnApp@rki.de<xliff:g id="line_break">\n</xliff:g>Telefon: 030 18754 – 5100</string> + <!-- XHED: Headline for legal information page, tax section --> + <string name="information_legal_headline_taxid">Umsatzsteueridentifikationsnummer</string> + <!-- YTXT: subtitle for legal information page, tax section --> + <string name="information_legal_subtitle_taxid">DE 165 893 430</string> <!-- XACT: describes illustration --> <string name="information_legal_illustration_description">Eine Hand hält ein Smartphone mit viel Text, daneben ist ein Paragraphenzeichen als Symbol für das Impressum.</string> diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/VersionComparatorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/VersionComparatorTest.kt index 421e73c5ad404152e5a23cc0408f688aad8d7ffc..28cf86195c874ed1e1145ff61732f6cf77de0c3a 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/VersionComparatorTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/VersionComparatorTest.kt @@ -47,5 +47,4 @@ class VerificationServiceTest { val result = VersionComparator.isVersionOlder("1.0.1", "1.0.1") assertThat(result, `is`(false)) } - -} \ No newline at end of file +}