Skip to content
Snippets Groups Projects
Unverified Commit df4f9b54 authored by axelherbstreith's avatar axelherbstreith Committed by GitHub
Browse files

Add warning deletion screen for Antigen and PCR (EXPOSUREAPP-6032) (#2787)

* added basic files

* updated layout

* added strings

* changed string naming

* linting

* addressed comments

* updated strings
parent 69500593
No related branches found
No related tags found
No related merge requests found
Showing with 383 additions and 0 deletions
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)
}
}
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>
}
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>
}
......@@ -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
}
<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>
<?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>
......@@ -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>
......@@ -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>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment