Skip to content
This repository was archived by the owner on Jun 20, 2023. It is now read-only.

Update Consent legal text of EN and TR (EXPOSUREAPP-14294) #5751

Merged
merged 3 commits into from
Dec 9, 2022
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import dagger.Module
import dagger.android.ContributesAndroidInjector
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.presencetracing.TraceLocationSettings
import de.rki.coronawarnapp.presencetracing.checkins.CheckInRepository
import de.rki.coronawarnapp.presencetracing.storage.repo.TraceLocationRepository
import de.rki.coronawarnapp.ui.presencetracing.organizer.list.TraceLocationsFragment
Expand All @@ -35,6 +36,7 @@ class TraceLocationsFragmentTest : BaseUITest() {

@MockK private lateinit var checkInsRepository: CheckInRepository
@MockK private lateinit var traceLocationRepository: TraceLocationRepository
@MockK lateinit var traceLocationSettings: TraceLocationSettings

private val timeZone = TimeZone.getTimeZone("Europe/Berlin")

Expand All @@ -44,6 +46,8 @@ class TraceLocationsFragmentTest : BaseUITest() {
MockKAnnotations.init(this, relaxed = true)

every { checkInsRepository.allCheckIns } returns flowOf(listOf())
every { traceLocationSettings.onboardingStatus } returns
flowOf(TraceLocationSettings.OnboardingStatus.ONBOARDED_2_0)

setupMockViewModel(
object : TraceLocationsViewModel.Factory {
Expand Down Expand Up @@ -94,10 +98,11 @@ class TraceLocationsFragmentTest : BaseUITest() {
}

private fun createViewModel() = TraceLocationsViewModel(
appScope = TestScope(),
dispatcherProvider = TestDispatcherProvider(),
checkInsRepository = checkInsRepository,
traceLocationRepository = traceLocationRepository,
dispatcherProvider = TestDispatcherProvider(),
appScope = TestScope()
settings = traceLocationSettings
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package de.rki.coronawarnapp.srs.ui.consent

import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.databinding.SrsConsentDetailFragmentBinding
import de.rki.coronawarnapp.util.ui.popBackStack
import de.rki.coronawarnapp.util.ui.viewBinding

class SrsConsentDetailFragment : Fragment(R.layout.srs_consent_detail_fragment) {

private val binding: SrsConsentDetailFragmentBinding by viewBinding()

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.toolbar.setNavigationOnClickListener { popBackStack() }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@ class SrsSubmissionConsentFragment : Fragment(R.layout.fragment_srs_submission_c
viewModel.event.observe2(this) {
when (it) {
SrsSubmissionConsentNavigationEvents.NavigateToDataPrivacy ->
findNavController().navigate(R.id.surveyConsentDetailFragment)
findNavController().navigate(
SrsSubmissionConsentFragmentDirections
.actionSrsSubmissionConsentFragmentToSrsConsentDetailFragment()
)

SrsSubmissionConsentNavigationEvents.NavigateToMainScreen ->
findNavController().navigate(
Expand Down
108 changes: 108 additions & 0 deletions Corona-Warn-App/src/main/res/layout/srs_consent_detail_fragment.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/content_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/contact_diary_onboarding_background"
android:focusable="true">

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/CWAMaterialToolbar.Close"
android:layout_width="0dp"
android:focusable="true"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:paddingBottom="29dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar"
app:layout_constraintBottom_toBottomOf="parent">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/survey_details_headline"
style="@style/headline6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_tiny"
android:accessibilityHeading="true"
android:focusable="true"
android:text="@string/srs_details_survey_consent_details_title"
app:layout_constraintEnd_toEndOf="@id/guideline_end"
app:layout_constraintStart_toStartOf="@id/guideline_start"
app:layout_constraintTop_toTopOf="parent" />

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/consent_layout"
style="@style/cardTracing"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="45dp"
android:layout_marginBottom="45dp"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
app:layout_constraintTop_toBottomOf="@+id/survey_details_headline"
app:layout_constraintBottom_toBottomOf="parent">

<TextView
android:id="@+id/legal_title"
style="@style/headline6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_small"
android:focusable="true"
android:text="@string/srs_survey_consent_details_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/legal_body"
style="@style/body1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:focusable="true"
android:text="@string/srs_survey_consent_details_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/legal_title" />

</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="@dimen/guideline_start" />

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_end="@dimen/guideline_end" />

<include layout="@layout/merge_guidelines_card" />

</androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

</layout>
9 changes: 9 additions & 0 deletions Corona-Warn-App/src/main/res/navigation/srs_nav_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
<action
android:id="@+id/action_srsSubmissionConsentFragment_to_srsSymptomsFragment"
app:destination="@id/srsSymptomsIntroductionFragment" />
<action
android:id="@+id/action_srsSubmissionConsentFragment_to_srsConsentDetailFragment"
app:destination="@id/srsConsentDetailFragment" />
<action
android:id="@+id/action_srsSubmissionConsentFragment_to_mainFragment"
app:destination="@id/status_nav_graph"
Expand Down Expand Up @@ -140,4 +143,10 @@
android:name="submissionType"
app:argType="de.rki.coronawarnapp.srs.core.model.SrsSubmissionType" />
</fragment>
<fragment
android:id="@+id/srsConsentDetailFragment"
android:name="de.rki.coronawarnapp.srs.ui.consent.SrsConsentDetailFragment"
android:label="SrsConsentDetailFragment"
tools:layout="@layout/fragment_submission_done" />

</navigation>
10 changes: 9 additions & 1 deletion Corona-Warn-App/src/main/res/values-de/legal_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
<!-- XHED: Title for the information box in the survey consent detail screen -->
<string name="datadonation_survey_consent_details_title">"Prüfung der Echtheit und Drittlandsübermittlung"</string>
<!-- XTXT: Text for the information box in the survey consent detail screen -->
<string name="datadonation_survey_consent_details_text">"Um die Echtheit Ihrer App zu bestätigen, erzeugt Ihr Smartphone eine eindeutige Kennung, die Informationen über die Version Ihres Smartphones und der App enthält. Das ist erforderlich, um sicherzustellen, dass nur Nutzer eine Warnung nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, auslösen, die tatsächlich die Corona-Warn-App nutzen und nicht manipulierte Warnungen bereitstellen. Das Verfahren dient außerdem dazu, sicherzustellen, dass Warnungen nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, nur alle drei Monate möglich sind.\n\n\Die bei der Echtheitsprüfung erzeugte eindeutige Kennung wird beim Auslösen der Warnung einmalig an Apple übermittelt. Dabei kann es auch zu einer Datenübermittlung in die USA oder andere Drittländer kommen. Dort besteht möglicherweise kein dem europäischen Recht entsprechendes Datenschutzniveau und Ihre europäischen Datenschutzrechte können eventuell nicht durchgesetzt werden. Insbesondere besteht die Möglichkeit, dass Sicherheitsbehörden im Drittland, auch ohne einen konkreten Verdacht, auf die übermittelten Daten bei Apple zugreifen und diese auswerten, beispielsweise indem sie Daten mit anderen Informationen verknüpfen. Dies betrifft nur die an Apple übermittelte Kennung. Möglicherweise kann Apple jedoch anhand der Kennung auf Ihre Identität schließen und nachvollziehen, dass die Echtheitsprüfung Ihres Smartphones im Rahmen einer Warnung anderer stattgefunden hat.\n\n\Wenn Sie mit der Drittlandsübermittlung nicht einverstanden sind, tippen Sie bitte nicht „Einverstanden“ an. Sie können die App weiterhin nutzen, eine Warnung anderer nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, ist dann jedoch nicht möglich."</string>
<string name="datadonation_survey_consent_details_text">"Um die Echtheit Ihrer App zu bestätigen, erzeugt Ihr Smartphone eine eindeutige Kennung, die Informationen über die Version Ihres Smartphones und der App enthält. Das ist erforderlich, um sicherzustellen, dass nur Nutzer eine Warnung nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, auslösen, die tatsächlich die Corona-Warn-App nutzen und nicht manipulierte Warnungen bereitstellen. Das Verfahren dient außerdem dazu, sicherzustellen, dass Warnungen nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, nur alle drei Monate möglich sind.\n\n\Die bei der Echtheitsprüfung erzeugte eindeutige Kennung wird beim Auslösen der Warnung einmalig an Apple übermittelt. Dabei kann es auch zu einer Datenübermittlung in die USA oder andere Drittländer kommen. Dort besteht möglicherweise kein dem europäischen Recht entsprechendes Datenschutzniveau und Ihre europäischen Datenschutzrechte können eventuell nicht durchgesetzt werden. Insbesondere besteht die Möglichkeit, dass Sicherheitsbehörden im Drittland, auch ohne einen konkreten Verdacht, auf die übermittelten Daten bei Google zugreifen und diese auswerten, beispielsweise indem sie Daten mit anderen Informationen verknüpfen. Dies betrifft nur die an Google übermittelte Kennung. Möglicherweise kann Google jedoch anhand der Kennung auf Ihre Identität schließen und nachvollziehen, dass die Echtheitsprüfung Ihres Smartphones im Rahmen einer Warnung anderer stattgefunden hat.\n\n\Wenn Sie mit der Drittlandsübermittlung nicht einverstanden sind, tippen Sie bitte nicht „Einverstanden“ an. Sie können die App weiterhin nutzen, eine Warnung anderer nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, ist dann jedoch nicht möglich."</string>

<!-- XTXT: onboarding privacy preserving analytics (ppa) - consent title -->
<string name="ppa_onboarding_consent_title">"Ihr Einverständnis"</string>
Expand Down Expand Up @@ -249,4 +249,12 @@
<string name="srs_privacy_card_second_bulletpoint_text" translatable="false">Bevor das Testergebnis geteilt werden kann, wird die <b>Echtheit Ihrer App einmalig geprüft</b>. Dazu wird durch Ihr Smartphone eine eindeutige Kennung erzeugt und an Google in die USA oder andere Drittländer übermittelt, damit Google die Echtheit Ihrer App gegenüber dem RKI bestätigen kann. Die Kennung enthält Informationen über die Version Ihres Smartphones und der App. Google kann damit möglicherweise auf Ihre Identität schließen und nachvollziehen, dass die Echtheitsprüfung Ihres Smartphones stattgefunden hat. Weitere Angaben aus der App erhält Google hierbei nicht.</string>
<!-- XTXT: Submission consent privacy card third bulletpoint -->
<string name="srs_privacy_card_third_bulletpoint_text" translatable="false"><b>Wenn Sie zusätzlich Angaben zum Beginn Ihrer Symptome machen, werden auch diese geteilt.</b></string>

<!-- SRS Submission Consent Detail Screen -->
<!-- XHED: Title above the information box in the srs consent detail screen -->
<string name="srs_details_survey_consent_details_title">"Ausführliche Informationen zur Echtheitsprüfung und den Datenschutzrisiken in den USA und anderen Drittländern"</string>
<!-- XHED: Title for the information box in the srs consent detail screen -->
<string name="srs_survey_consent_details_title">"Prüfung der Echtheit und Drittlandsübermittlung"</string>
<!-- XTXT: Text for the information box in the srs consent detail screen -->
<string name="srs_survey_consent_details_text">"Um die Echtheit Ihrer App zu bestätigen, erzeugt Ihr Smartphone eine eindeutige Kennung, die Informationen über die Version Ihres Smartphones und der App enthält. Das ist erforderlich, um sicherzustellen, dass nur Nutzer eine Warnung nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, auslösen, die tatsächlich die Corona-Warn-App nutzen und nicht manipulierte Warnungen bereitstellen. Das Verfahren dient außerdem dazu, sicherzustellen, dass Warnungen nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, nur alle drei Monate möglich sind.\n\n\Die bei der Echtheitsprüfung erzeugte eindeutige Kennung wird beim Auslösen der Warnung einmalig an Apple übermittelt. Dabei kann es auch zu einer Datenübermittlung in die USA oder andere Drittländer kommen. Dort besteht möglicherweise kein dem europäischen Recht entsprechendes Datenschutzniveau und Ihre europäischen Datenschutzrechte können eventuell nicht durchgesetzt werden. Insbesondere besteht die Möglichkeit, dass Sicherheitsbehörden im Drittland, auch ohne einen konkreten Verdacht, auf die übermittelten Daten bei Google zugreifen und diese auswerten, beispielsweise indem sie Daten mit anderen Informationen verknüpfen. Dies betrifft nur die an Google übermittelte Kennung. Möglicherweise kann Google jedoch anhand der Kennung auf Ihre Identität schließen und nachvollziehen, dass die Echtheitsprüfung Ihres Smartphones im Rahmen einer Warnung anderer stattgefunden hat.\n\n\Wenn Sie mit der Drittlandsübermittlung nicht einverstanden sind, tippen Sie bitte nicht „Einverstanden“ an. Sie können die App weiterhin nutzen, eine Warnung anderer nach einem positiven Selbsttest oder mit einem Testergebnis, das nicht in der App vorliegt, ist dann jedoch nicht möglich."</string>
</resources>
Loading