diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..8a918bfad256615ff081bfd5d0748bb8a06e4d43 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningFragment.kt @@ -0,0 +1,40 @@ +package de.rki.coronawarnapp.ui.submission.deletionwarning + +import android.os.Bundle +import android.view.View +import android.view.accessibility.AccessibilityEvent +import androidx.fragment.app.Fragment +import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.databinding.FragmentSubmissionDeletionWarningBinding +import de.rki.coronawarnapp.util.di.AutoInject +import de.rki.coronawarnapp.util.ui.viewBindingLazy +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider +import de.rki.coronawarnapp.util.viewmodel.cwaViewModels +import javax.inject.Inject + +class SubmissionDeletionWarningFragment : Fragment(R.layout.fragment_submission_deletion_warning), AutoInject { + + @Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory + private val viewModel: SubmissionDeletionWarningFragmentViewModel by cwaViewModels { viewModelFactory } + private val binding: FragmentSubmissionDeletionWarningBinding by viewBindingLazy() + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + binding.apply { + + cancelButton.setOnClickListener { /* TODO */ } + + continueButton.setOnClickListener { /* TODO */ } + + toolbar.apply { + setNavigationOnClickListener { /* TODO */ } + } + } + } + + override fun onResume() { + super.onResume() + binding.contentContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT) + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningFragmentViewModel.kt new file mode 100644 index 0000000000000000000000000000000000000000..a2e1e24371ff9b72a431b46e7077baf17205aeb3 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningFragmentViewModel.kt @@ -0,0 +1,12 @@ +package de.rki.coronawarnapp.ui.submission.deletionwarning + +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import de.rki.coronawarnapp.util.viewmodel.CWAViewModel +import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory + +class SubmissionDeletionWarningFragmentViewModel @AssistedInject constructor() : CWAViewModel() { + + @AssistedFactory + interface Factory : SimpleCWAViewModelFactory<SubmissionDeletionWarningFragmentViewModel> +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningModule.kt new file mode 100644 index 0000000000000000000000000000000000000000..ac2010cd75d8413c47987c5c1533d2294831b4a6 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/deletionwarning/SubmissionDeletionWarningModule.kt @@ -0,0 +1,19 @@ +package de.rki.coronawarnapp.ui.submission.deletionwarning + +import dagger.Binds +import dagger.Module +import dagger.multibindings.IntoMap +import de.rki.coronawarnapp.util.viewmodel.CWAViewModel +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelKey + +@Module +abstract class SubmissionDeletionWarningModule { + + @Binds + @IntoMap + @CWAViewModelKey(SubmissionDeletionWarningFragmentViewModel::class) + abstract fun submissionDeletionWarningFragmentVM( + factory: SubmissionDeletionWarningFragmentViewModel.Factory + ): CWAViewModelFactory<out CWAViewModel> +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt index 946d29e401586715a68e50aaf99a615f8388dede..e89a06d0dabe6cc67283b8f1c0cd657c3e8b384e 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt @@ -4,6 +4,8 @@ import dagger.Module import dagger.android.ContributesAndroidInjector import de.rki.coronawarnapp.ui.submission.fragment.SubmissionContactFragment import de.rki.coronawarnapp.ui.submission.fragment.SubmissionDispatcherFragment +import de.rki.coronawarnapp.ui.submission.deletionwarning.SubmissionDeletionWarningFragment +import de.rki.coronawarnapp.ui.submission.deletionwarning.SubmissionDeletionWarningModule import de.rki.coronawarnapp.ui.submission.qrcode.consent.SubmissionConsentFragment import de.rki.coronawarnapp.ui.submission.qrcode.consent.SubmissionConsentModule import de.rki.coronawarnapp.ui.submission.qrcode.scan.SubmissionQRCodeScanFragment @@ -90,4 +92,7 @@ internal abstract class SubmissionFragmentModule { @ContributesAndroidInjector(modules = [SubmissionResultPositiveOtherWarningNoConsentModule::class]) abstract fun SubmissionResultPositiveOtherWarningNoConsentScreen(): SubmissionResultPositiveOtherWarningNoConsentFragment + + @ContributesAndroidInjector(modules = [SubmissionDeletionWarningModule::class]) + abstract fun submissionDeletionWarningScreen(): SubmissionDeletionWarningFragment } diff --git a/Corona-Warn-App/src/main/res/drawable/ic_deletion_warning.xml b/Corona-Warn-App/src/main/res/drawable/ic_deletion_warning.xml new file mode 100644 index 0000000000000000000000000000000000000000..cc5d4595e53252c7e92dfe8b066968d29ed9b7d0 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_deletion_warning.xml @@ -0,0 +1,153 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="357dp" + android:height="212dp" + android:viewportWidth="357" + android:viewportHeight="212"> + <path + android:pathData="M182.944,186.265C230.264,186.265 268.624,149.008 268.624,103.049C268.624,57.09 230.264,19.832 182.944,19.832C135.625,19.832 97.264,57.09 97.264,103.049C97.264,149.008 135.625,186.265 182.944,186.265Z" + android:fillColor="#F6FBFF" + android:fillType="evenOdd"/> + <group> + <clip-path + android:pathData="M97.264,103.049C97.264,149.008 135.624,186.265 182.944,186.265C230.264,186.265 268.624,149.008 268.624,103.049C268.624,57.09 230.264,19.832 182.944,19.832C135.624,19.832 97.264,57.09 97.264,103.049Z" + android:fillType="evenOdd"/> + <path + android:pathData="M91.589,191.777H274.298V14.321H91.589V191.777Z" + android:fillColor="#F6FBFF" + android:fillType="evenOdd"/> + </group> + <group> + <clip-path + android:pathData="M0,0h357v211.74h-357z"/> + </group> + <group> + <clip-path + android:pathData="M50,40h80v112h-80z"/> + <path + android:pathData="M58.222,57.425V152H129.425V75.442L112.328,57.425H58.222Z" + android:fillColor="#E2E2E2" + android:fillType="evenOdd"/> + <path + android:pathData="M112.374,75.442H129.37L112.374,57.439V75.442Z" + android:fillColor="#657888" + android:fillType="evenOdd"/> + <path + android:pathData="M75.409,121.667H114.443C115.209,121.727 115.689,122.264 115.689,123C115.689,123.647 115.209,124.367 114.443,124.333H75.409C74.404,124.367 73.924,123.736 73.924,123C73.924,122.264 74.404,121.727 75.409,121.667Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M75.409,113H114.443C115.209,113.06 115.689,113.597 115.689,114.333C115.689,114.979 115.209,115.7 114.443,115.665H75.409C74.404,115.7 73.924,115.068 73.924,114.333C73.924,113.597 74.404,113.06 75.409,113Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M75.409,130.334H114.443C115.209,130.394 115.689,130.931 115.689,131.667C115.689,132.313 115.209,133.034 114.443,132.999H75.409C74.404,133.034 73.924,132.402 73.924,131.667C73.924,130.931 74.404,130.394 75.409,130.334Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M84,89.889H92.889V81H84V89.889ZM86.222,83.222H90.667V87.667H86.222V83.222Z" + android:fillColor="#657888"/> + <path + android:pathData="M84,101H92.889V92.111H84V101ZM86.222,94.333H90.667V98.778H86.222V94.333Z" + android:fillColor="#657888"/> + <path + android:pathData="M95.111,81V89.889H104V81H95.111ZM101.778,87.667H97.334V83.222H101.778V87.667Z" + android:fillColor="#657888"/> + <path + android:pathData="M104.001,98.778H101.778V101H104.001V98.778Z" + android:fillColor="#657888"/> + <path + android:pathData="M97.334,92.111H95.111V94.333H97.334V92.111Z" + android:fillColor="#657888"/> + <path + android:pathData="M99.556,94.334H97.334V96.556H99.556V94.334Z" + android:fillColor="#657888"/> + <path + android:pathData="M97.334,96.557H95.111V98.779H97.334V96.557Z" + android:fillColor="#657888"/> + <path + android:pathData="M99.556,98.778H97.334V101H99.556V98.778Z" + android:fillColor="#657888"/> + <path + android:pathData="M101.778,96.557H99.556V98.779H101.778V96.557Z" + android:fillColor="#657888"/> + <path + android:pathData="M101.778,92.111H99.556V94.333H101.778V92.111Z" + android:fillColor="#657888"/> + <path + android:pathData="M104.001,94.334H101.778V96.556H104.001V94.334Z" + android:fillColor="#657888"/> + </group> + <group> + <clip-path + android:pathData="M174,15h112v156.8h-112z"/> + <path + android:pathData="M185.511,39.396V171.801H285.195V64.619L261.26,39.396H185.511Z" + android:fillColor="#D8ECF9" + android:fillType="evenOdd"/> + <path + android:pathData="M261.323,64.619H285.117L261.323,39.415V64.619Z" + android:fillColor="#657888" + android:fillType="evenOdd"/> + <path + android:pathData="M209.572,129.333H264.22C265.292,129.417 265.964,130.169 265.964,131.199C265.964,132.105 265.292,133.113 264.22,133.066H209.572C208.165,133.113 207.493,132.23 207.493,131.199C207.493,130.169 208.165,129.417 209.572,129.333Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M209.572,117.2H264.22C265.292,117.284 265.964,118.036 265.964,119.066C265.964,119.971 265.292,120.98 264.22,120.931H209.572C208.165,120.98 207.493,120.095 207.493,119.066C207.493,118.036 208.165,117.284 209.572,117.2Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M209.572,141.467H264.22C265.292,141.551 265.964,142.303 265.964,143.334C265.964,144.238 265.292,145.247 264.22,145.198H209.572C208.165,145.247 207.493,144.363 207.493,143.334C207.493,142.303 208.165,141.551 209.572,141.467Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M221.6,84.845H234.044V72.4H221.6V84.845ZM224.711,75.511H230.933V81.733H224.711V75.511Z" + android:fillColor="#657888"/> + <path + android:pathData="M221.6,100.4H234.044V87.955H221.6V100.4ZM224.711,91.066H230.933V97.289H224.711V91.066Z" + android:fillColor="#657888"/> + <path + android:pathData="M237.156,72.4V84.845H249.601V72.4H237.156ZM246.489,81.733H240.267V75.511H246.489V81.733Z" + android:fillColor="#657888"/> + <path + android:pathData="M249.6,97.289H246.489V100.4H249.6V97.289Z" + android:fillColor="#657888"/> + <path + android:pathData="M240.266,87.955H237.155V91.066H240.266V87.955Z" + android:fillColor="#657888"/> + <path + android:pathData="M243.378,91.067H240.267V94.178H243.378V91.067Z" + android:fillColor="#657888"/> + <path + android:pathData="M240.266,94.179H237.155V97.29H240.266V94.179Z" + android:fillColor="#657888"/> + <path + android:pathData="M243.378,97.289H240.267V100.4H243.378V97.289Z" + android:fillColor="#657888"/> + <path + android:pathData="M246.49,94.179H243.378V97.29H246.49V94.179Z" + android:fillColor="#657888"/> + <path + android:pathData="M246.49,87.955H243.378V91.066H246.49V87.955Z" + android:fillColor="#657888"/> + <path + android:pathData="M249.6,91.067H246.489V94.178H249.6V91.067Z" + android:fillColor="#657888"/> + </group> + <path + android:pathData="M276.5,196.357C295.554,196.357 311,181.279 311,162.679C311,144.078 295.554,129 276.5,129C257.446,129 242,144.078 242,162.679C242,181.279 257.446,196.357 276.5,196.357Z" + android:fillColor="#657888"/> + <path + android:pathData="M260.737,163.485C262.177,162.051 264.513,162.051 265.948,163.485L270.858,168.381C271.259,168.78 271.915,168.78 272.315,168.381L289.038,151.696C290.584,150.152 293.092,150.152 294.644,151.696C296.19,153.24 296.19,155.743 294.644,157.287L274.44,177.448C273.083,178.806 270.881,178.806 269.518,177.448L260.737,168.687C259.302,167.253 259.302,164.925 260.737,163.485Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M146,107m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0" + android:fillColor="#C4C4C4"/> + <path + android:pathData="M157,107m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0" + android:fillColor="#C4C4C4"/> + <path + android:pathData="M170,107m-4,0a4,4 0,1 1,8 0a4,4 0,1 1,-8 0" + android:fillColor="#C4C4C4"/> +</vector> diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_deletion_warning.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_deletion_warning.xml new file mode 100644 index 0000000000000000000000000000000000000000..56a83c008188580c8de15fb748a69241c9a55ba3 --- /dev/null +++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_deletion_warning.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/content_container" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:contentDescription="@string/submission_deletion_warning_title" + android:focusable="true"> + + <androidx.appcompat.widget.Toolbar + android:id="@+id/toolbar" + android:layout_width="0dp" + android:layout_height="wrap_content" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:navigationIcon="@drawable/ic_close" + app:title="@string/submission_deletion_warning_title" /> + + <ScrollView + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_marginBottom="@dimen/spacing_small" + app:layout_constraintBottom_toTopOf="@id/continue_button" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/toolbar"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/deletion_warning_illustration" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:focusable="true" + android:src="@drawable/ic_deletion_warning" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:src="@drawable/ic_deletion_warning" /> + + <TextView + android:id="@+id/headline" + style="@style/headline5" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + android:accessibilityHeading="true" + android:focusable="true" + android:text="@string/submission_deletion_warning_headline_pcr_test" + app:layout_constraintEnd_toEndOf="@id/guideline_end" + app:layout_constraintStart_toStartOf="@id/guideline_start" + app:layout_constraintTop_toBottomOf="@id/deletion_warning_illustration" + tools:text="@string/submission_deletion_warning_headline_pcr_test" /> + + <TextView + android:id="@+id/body" + style="@style/subtitleMedium" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + android:focusable="true" + android:text="@string/submission_deletion_warning_body_antigen_test" + app:layout_constraintEnd_toEndOf="@id/guideline_end" + app:layout_constraintStart_toStartOf="@id/guideline_start" + app:layout_constraintTop_toBottomOf="@id/headline" + tools:text="@string/submission_deletion_warning_body_pcr_test" /> + + <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" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </ScrollView> + + <Button + android:id="@+id/continue_button" + style="@style/buttonPrimary" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/spacing_normal" + android:layout_marginBottom="8dp" + android:text="@string/submission_deletion_warning_continue_button" + app:layout_constraintBottom_toTopOf="@id/cancel_button" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + tools:text="@string/submission_deletion_warning_continue_button" /> + + <Button + android:id="@+id/cancel_button" + style="@style/buttonLight" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/spacing_normal" + android:layout_marginBottom="4dp" + android:text="@string/submission_deletion_warning_cancel_button" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + tools:text="@string/submission_deletion_warning_cancel_button" /> + +</androidx.constraintlayout.widget.ConstraintLayout> + 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 5e76c5740c29d83e7f88e404d4fd7c668277a559..1c44b7cb590f80e1f6ec25b83366bbf828c6e603 100644 --- a/Corona-Warn-App/src/main/res/values-de/strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/strings.xml @@ -1367,6 +1367,23 @@ <!-- YTXT: text for share result card--> <string name="submission_status_card_positive_result_share">"Teilen Sie Ihre Zufalls-IDs, damit andere gewarnt werden können."</string> + + <!-- XBUT: submission deletion warning button continue --> + <string name="submission_deletion_warning_continue_button">"Weiter"</string> + <!-- XBUT: submission deletion warning button cancel --> + <string name="submission_deletion_warning_cancel_button">"Abbrechen"</string> + <!-- XHED: submission deletion warning title --> + <string name="submission_deletion_warning_title">"Hinweis"</string> + <!-- YTXT: Headline for rapid test submission deletion warning --> + <string name="submission_deletion_warning_headline_antigen_test">"Sie haben bereits einen Schnelltest registriert."</string> + <!-- YTXT: Body for rapid test submission deletion warning --> + <string name="submission_deletion_warning_body_antigen_test">"Sie haben bereits einen Schnelltest registriert. Die App kann maximal einen Schnelltest und einen PCR-Test gleichzeitig verwalten. Wenn Sie einen weiteren Schnelltest registrieren, wird der erste Schnelltest aus der App gelöscht."</string> + <!-- YTXT: Headline for PCR test submission deletion warning --> + <string name="submission_deletion_warning_headline_pcr_test">"Sie haben bereits einen PCR-Test registriert."</string> + <!-- YTXT: Body for PCR test submission deletion warning --> + <string name="submission_deletion_warning_body_pcr_test">"Sie haben bereits einen PCR-Test registriert. Die App kann maximal einen Schnelltest und einen PCR-Test gleichzeitig verwalten. Wenn Sie einen weiteren PCR-Test registrieren, wird der erste PCR-Test aus der App gelöscht."</string> + + <!-- Reenable risk card --> <!-- XHED: Card title for re-enable risk card --> <string name="reenable_risk_card_title">"Risiko-Überprüfung beendet"</string> @@ -1974,4 +1991,5 @@ <string name="trace_location_organiser_poster_share">"Teilen"</string> <!-- XHED: Trace location poster title --> <string name="trace_location_organiser_poster_title">"Druckversion"</string> + </resources> diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index ced53c0830fe16fd8fffe0e7348008df28fb0198..0d6a785821099345fbd57d5192707d9d26b2a4f6 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -1375,6 +1375,23 @@ <!-- YTXT: text for share result card--> <string name="submission_status_card_positive_result_share">"Share your random IDs so that others can be warned."</string> + + <!-- XBUT: submission deletion warning button continue --> + <string name="submission_deletion_warning_continue_button">"Weiter"</string> + <!-- XBUT: submission deletion warning button cancel --> + <string name="submission_deletion_warning_cancel_button">"Abbrechen"</string> + <!-- XHED: submission deletion warning title --> + <string name="submission_deletion_warning_title">"Hinweis"</string> + <!-- YTXT: Headline for rapid test submission deletion warning --> + <string name="submission_deletion_warning_headline_antigen_test">"Sie haben bereits einen Schnelltest registriert."</string> + <!-- YTXT: Body for rapid test submission deletion warning --> + <string name="submission_deletion_warning_body_antigen_test">"Sie haben bereits einen Schnelltest registriert. Die App kann maximal einen Schnelltest und einen PCR-Test gleichzeitig verwalten. Wenn Sie einen weiteren Schnelltest registrieren, wird der erste Schnelltest aus der App gelöscht."</string> + <!-- YTXT: Headline for PCR test submission deletion warning --> + <string name="submission_deletion_warning_headline_pcr_test">"Sie haben bereits einen PCR-Test registriert."</string> + <!-- YTXT: Body for PCR test submission deletion warning --> + <string name="submission_deletion_warning_body_pcr_test">"Sie haben bereits einen PCR-Test registriert. Die App kann maximal einen Schnelltest und einen PCR-Test gleichzeitig verwalten. Wenn Sie einen weiteren PCR-Test registrieren, wird der erste PCR-Test aus der App gelöscht."</string> + + <!-- Reenable risk card --> <!-- XHED: Card title for re-enable risk card --> <string name="reenable_risk_card_title">"Exposure Check Ended"</string>