From 21b7d770c389de52cc7935ffcef250f2c214d5ce Mon Sep 17 00:00:00 2001 From: Kolya Opahle <k.opahle@sap.com> Date: Mon, 26 Oct 2020 17:48:26 +0100 Subject: [PATCH] =?UTF-8?q?Cannot=20delete=20tests=20older=20than=2021=20d?= =?UTF-8?q?ays=20-=20DE:=20Tests=20die=20=C3=A4lter=20als=2021=20Tage=20si?= =?UTF-8?q?nd,=20k=C3=B6nnen=20nicht=20gel=C3=B6scht=20werden=20(EXPOSUREA?= =?UTF-8?q?PP-2398)=20(#1481)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added new card to show redeemed tests on the home screen Signed-off-by: Kolya Opahle <k.opahle@sap.com> * Fixed linting and unit tests Signed-off-by: Kolya Opahle <k.opahle@sap.com> Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> --- .../ui/main/home/HomeFragment.kt | 28 ++++ .../ui/main/home/HomeFragmentEvents.kt | 2 + .../ui/main/home/HomeFragmentViewModel.kt | 13 ++ .../ui/main/home/SubmissionCardState.kt | 23 +-- .../ui/view/TestResultCardFetchFailed.kt | 18 +++ .../src/main/res/layout/fragment_home.xml | 13 +- ...ew_submission_status_card_fetch_failed.xml | 65 +++++++++ .../src/main/res/values-de/strings.xml | 6 + .../src/main/res/values/strings.xml | 6 + .../main/home/SubmissionCardStateTest.kt | 137 ++++++++++++++---- 10 files changed, 273 insertions(+), 38 deletions(-) create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultCardFetchFailed.kt create mode 100644 Corona-Warn-App/src/main/res/layout/view_submission_status_card_fetch_failed.xml diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt index 5498587c0..1c5a321dd 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt @@ -1,11 +1,13 @@ package de.rki.coronawarnapp.ui.main.home +import android.app.AlertDialog 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.FragmentHomeBinding +import de.rki.coronawarnapp.util.DialogHelper import de.rki.coronawarnapp.util.ExternalActionHelper import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.errors.RecoveryByResetDialogFactory @@ -82,6 +84,9 @@ class HomeFragment : Fragment(R.layout.fragment_home), AutoInject { onDismiss = { vm.errorResetDialogDismissed() } ) } + HomeFragmentEvents.ShowDeleteTestDialog -> { + showRemoveTestDialog() + } } } } @@ -93,6 +98,23 @@ class HomeFragment : Fragment(R.layout.fragment_home), AutoInject { binding.mainScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT) } + private fun showRemoveTestDialog() { + val removeTestDialog = DialogHelper.DialogInstance( + requireActivity(), + R.string.submission_test_result_dialog_remove_test_title, + R.string.submission_test_result_dialog_remove_test_message, + R.string.submission_test_result_dialog_remove_test_button_positive, + R.string.submission_test_result_dialog_remove_test_button_negative, + positiveButtonFunction = { + vm.deregisterWarningAccepted() + } + ) + DialogHelper.showDialog(removeTestDialog).apply { + getButton(AlertDialog.BUTTON_POSITIVE) + .setTextColor(context.getColor(R.color.colorTextSemanticRed)) + } + } + private fun setupRiskCard() { binding.mainRisk.apply { riskCard.setOnClickListener { @@ -133,6 +155,12 @@ class HomeFragment : Fragment(R.layout.fragment_home), AutoInject { submissionStatusCardPositive.setOnClickListener { toSubmissionResult() } submissionStatusCardPositiveButton.setOnClickListener { toSubmissionResult() } } + + mainTestFailed.apply { + setOnClickListener { + vm.removeTestPushed() + } + } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt index cb0ea79e3..26bee23f2 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt @@ -8,4 +8,6 @@ sealed class HomeFragmentEvents { ) : HomeFragmentEvents() object ShowErrorResetDialog : HomeFragmentEvents() + + object ShowDeleteTestDialog : HomeFragmentEvents() } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt index ff9ea4079..5e76fb27c 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.asLiveData import com.squareup.inject.assisted.AssistedInject import de.rki.coronawarnapp.risk.TimeVariables +import de.rki.coronawarnapp.service.submission.SubmissionService import de.rki.coronawarnapp.storage.LocalData import de.rki.coronawarnapp.storage.SubmissionRepository import de.rki.coronawarnapp.storage.TracingRepository @@ -94,6 +95,18 @@ class HomeFragmentViewModel @AssistedInject constructor( tracingRepository.refreshDiagnosisKeys() } + fun removeTestPushed() { + popupEvents.postValue(HomeFragmentEvents.ShowDeleteTestDialog) + } + + fun deregisterWarningAccepted() { + SubmissionService.deleteTestGUID() + SubmissionService.deleteRegistrationToken() + LocalData.isAllowedToSubmitDiagnosisKeys(false) + LocalData.initialTestResultReceivedTimestamp(0L) + SubmissionRepository.refreshDeviceUIState() + } + @AssistedInject.Factory interface Factory : SimpleCWAViewModelFactory<HomeFragmentViewModel> } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/SubmissionCardState.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/SubmissionCardState.kt index 8ec5f5556..6592ad0ba 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/SubmissionCardState.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/SubmissionCardState.kt @@ -25,18 +25,23 @@ data class SubmissionCardState( fun isUnregisteredCardVisible(): Boolean = !isDeviceRegistered - fun isFetchingCardVisible(): Boolean = isDeviceRegistered && - (uiStateState == ApiRequestState.STARTED || uiStateState == ApiRequestState.FAILED) + fun isFetchingCardVisible(): Boolean = + isDeviceRegistered && (uiStateState == ApiRequestState.STARTED || uiStateState == ApiRequestState.FAILED) - fun isPositiveSubmissionCardVisible(): Boolean = deviceUiState == PAIRED_POSITIVE || - deviceUiState == PAIRED_POSITIVE_TELETAN + fun isFailedCardVisible(): Boolean = + isDeviceRegistered && uiStateState == ApiRequestState.SUCCESS && deviceUiState == PAIRED_REDEEMED - fun isSubmissionDoneCardVisible(): Boolean = deviceUiState == SUBMITTED_FINAL + fun isPositiveSubmissionCardVisible(): Boolean = uiStateState == ApiRequestState.SUCCESS && + (deviceUiState == PAIRED_POSITIVE || + deviceUiState == PAIRED_POSITIVE_TELETAN) - fun isContentCardVisible(): Boolean = deviceUiState == PAIRED_ERROR || - deviceUiState == PAIRED_NEGATIVE || - deviceUiState == PAIRED_NO_RESULT || - deviceUiState == PAIRED_REDEEMED + fun isSubmissionDoneCardVisible(): Boolean = + uiStateState == ApiRequestState.SUCCESS && deviceUiState == SUBMITTED_FINAL + + fun isContentCardVisible(): Boolean = + uiStateState == ApiRequestState.SUCCESS && (deviceUiState == PAIRED_ERROR || + deviceUiState == PAIRED_NEGATIVE || + deviceUiState == PAIRED_NO_RESULT) fun getContentCardTitleText(c: Context): String = when (deviceUiState) { PAIRED_ERROR, PAIRED_REDEEMED, PAIRED_NEGATIVE -> R.string.submission_status_card_title_available diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultCardFetchFailed.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultCardFetchFailed.kt new file mode 100644 index 000000000..c0ca58e56 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultCardFetchFailed.kt @@ -0,0 +1,18 @@ +package de.rki.coronawarnapp.ui.view + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import de.rki.coronawarnapp.databinding.ViewSubmissionStatusCardFetchFailedBinding + +class TestResultCardFetchFailed(context: Context, attrs: AttributeSet) : + ConstraintLayout(context, attrs) { + private val inflater = LayoutInflater.from(context) + private val binding = ViewSubmissionStatusCardFetchFailedBinding.inflate(inflater, this) + + override fun setOnClickListener(l: OnClickListener?) { + super.setOnClickListener(l) + binding.submissionStatusCardFetchFailedButton.setOnClickListener(l) + } +} diff --git a/Corona-Warn-App/src/main/res/layout/fragment_home.xml b/Corona-Warn-App/src/main/res/layout/fragment_home.xml index e8e4db7c7..2ea113515 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_home.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_home.xml @@ -173,6 +173,17 @@ app:layout_constraintStart_toStartOf="@+id/guideline_card_start" app:layout_constraintTop_toBottomOf="@id/main_test_result" /> + <de.rki.coronawarnapp.ui.view.TestResultCardFetchFailed + android:id="@+id/main_test_failed" + style="@style/cardNoPadding" + gone="@{submissionCard == null || !submissionCard.isFailedCardVisible()}" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_small" + app:layout_constraintEnd_toStartOf="@+id/guideline_card_end" + app:layout_constraintStart_toStartOf="@+id/guideline_card_start" + app:layout_constraintTop_toBottomOf="@id/main_test_fetching" /> + <include android:id="@+id/main_test_positive" layout="@layout/include_submission_status_card_positive" @@ -182,7 +193,7 @@ gone="@{submissionCard == null || !submissionCard.isPositiveSubmissionCardVisible()}" app:layout_constraintEnd_toStartOf="@+id/guideline_card_end" app:layout_constraintStart_toStartOf="@+id/guideline_card_start" - app:layout_constraintTop_toBottomOf="@+id/main_test_fetching" /> + app:layout_constraintTop_toBottomOf="@+id/main_test_failed" /> <include android:id="@+id/main_test_done" diff --git a/Corona-Warn-App/src/main/res/layout/view_submission_status_card_fetch_failed.xml b/Corona-Warn-App/src/main/res/layout/view_submission_status_card_fetch_failed.xml new file mode 100644 index 000000000..1b4ca59e1 --- /dev/null +++ b/Corona-Warn-App/src/main/res/layout/view_submission_status_card_fetch_failed.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + <TextView + android:id="@+id/submission_status_card_fetch_failed_title" + style="@style/headline5" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/card_padding" + android:layout_marginTop="@dimen/card_padding" + android:layout_marginEnd="@dimen/spacing_small" + android:accessibilityHeading="true" + android:focusable="false" + android:text="@string/submission_status_card_title_failed" + app:layout_constraintEnd_toStartOf="@+id/submission_status_card_fetch_failed_icon" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + + <TextView + android:id="@+id/submission_status_card_fetch_failed_body" + style="@style/subtitleMedium" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/card_padding" + android:layout_marginTop="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/spacing_small" + android:focusable="false" + android:text="@string/submission_status_card_body_failed" + app:layout_constraintEnd_toStartOf="@+id/submission_status_card_fetch_failed_icon" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/submission_status_card_fetch_failed_title" /> + + <Button + android:id="@+id/submission_status_card_fetch_failed_button" + style="@style/buttonPrimary" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/card_padding" + android:layout_marginTop="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/card_padding" + android:layout_marginBottom="@dimen/card_padding" + android:text="@string/submission_status_card_button_failed" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/submission_status_card_unregistered_barrier" /> + + <ImageView + android:id="@+id/submission_status_card_fetch_failed_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:importantForAccessibility="no" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="@+id/submission_status_card_fetch_failed_title" + app:srcCompat="@drawable/ic_main_illustration_invalid" /> + + <androidx.constraintlayout.widget.Barrier + android:id="@+id/submission_status_card_unregistered_barrier" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:barrierDirection="bottom" + app:constraint_referenced_ids="submission_status_card_fetch_failed_icon,submission_status_card_fetch_failed_body" /> +</merge> 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 d94c6c476..31f2f4bba 100644 --- a/Corona-Warn-App/src/main/res/values-de/strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/strings.xml @@ -1089,6 +1089,8 @@ <string name="submission_status_card_title_available">"Ihr Ergebnis liegt vor"</string> <!-- XHED: Page title for the various submission status: positive --> <string name="submission_status_card_title_positive">"Befund positiv"</string> + <!-- XHED: Page title for the various submission status fetch failed --> + <string name="submission_status_card_title_failed">"Test nicht mehr gültig"</string> <!-- XHED: Subtitle for the submission status card: invalid --> <string name="submission_status_card_subtitle_invalid">"Fehlerhafter Test"</string> <!-- XHED: Subtitle for the submission status card: negative --> @@ -1105,10 +1107,14 @@ <string name="submission_status_card_body_positive">"Sie wurden positiv auf SARS-CoV-2 getestet."</string> <!-- YTXT: Body text for submission status: negative --> <string name="submission_status_card_body_negative">"Sie wurden negativ auf SARS-CoV-2 getestet."</string> + <!-- YTXT: Body text for submission status fetch failed --> + <string name="submission_status_card_body_failed">"Ihr Test liegt länger als 21 Tage zurück und ist daher nicht länger relevant. Bitte löschen Sie den Test. Danach können Sie einen neuen Test hinzufügen."</string> <!-- XBUT: submission status card unregistered button --> <string name="submission_status_card_button_unregistered">"Informieren & helfen"</string> <!-- XBUT: submission status card show results button --> <string name="submission_status_card_button_show_results">"Test anzeigen"</string> + <!-- XBUT: submission status card fetch failed button --> + <string name="submission_status_card_button_failed">"Test löschen"</string> <!-- XHED: submission status card positive result subtitle --> <string name="submission_status_card_positive_result_subtitle">"Bitte beachten Sie:"</string> <!-- YTXT: text for contagious card --> diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index 1d99b90a8..89a3039fb 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -1095,6 +1095,8 @@ <string name="submission_status_card_title_available">"Your result is available"</string> <!-- XHED: Page title for the various submission status: positive --> <string name="submission_status_card_title_positive">"Positive Diagnosis"</string> + <!-- XHED: Page title for the various submission status fetch failed --> + <string name="submission_status_card_title_failed"></string> <!-- XHED: Subtitle for the submission status card: invalid --> <string name="submission_status_card_subtitle_invalid">"Invalid test"</string> <!-- XHED: Subtitle for the submission status card: negative --> @@ -1111,10 +1113,14 @@ <string name="submission_status_card_body_positive">"You have been diagnosed positive for SARS-CoV-2."</string> <!-- YTXT: Body text for submission status: negative --> <string name="submission_status_card_body_negative">"You have been diagnosed negative for SARS-CoV-2."</string> + <!-- YTXT: Body text for submission status fetch failed --> + <string name="submission_status_card_body_failed"></string> <!-- XBUT: submission status card unregistered button --> <string name="submission_status_card_button_unregistered">"Learn More and Help"</string> <!-- XBUT: submission status card show results button --> <string name="submission_status_card_button_show_results">"Display Test"</string> + <!-- XBUT: submission status card fetch failed button --> + <string name="submission_status_card_button_failed"></string> <!-- XHED: submission status card positive result subtitle --> <string name="submission_status_card_positive_result_subtitle">"Please note:"</string> <!-- YTXT: text for contagious card --> diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/SubmissionCardStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/SubmissionCardStateTest.kt index b35d5d573..37d908b10 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/SubmissionCardStateTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/SubmissionCardStateTest.kt @@ -83,32 +83,59 @@ class SubmissionCardStateTest : BaseTest() { @Test fun `content card visibility`() { - instance(deviceUiState = DeviceUIState.PAIRED_NEGATIVE).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_NEGATIVE, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe true } - instance(deviceUiState = DeviceUIState.PAIRED_ERROR).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_NEGATIVE, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe true } - instance(deviceUiState = DeviceUIState.PAIRED_NO_RESULT).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_NO_RESULT, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe true } - instance(deviceUiState = DeviceUIState.PAIRED_POSITIVE).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_POSITIVE, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_POSITIVE_TELETAN).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_POSITIVE_TELETAN, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.SUBMITTED_FINAL).apply { + instance( + deviceUiState = DeviceUIState.SUBMITTED_FINAL, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.SUBMITTED_INITIAL).apply { + instance( + deviceUiState = DeviceUIState.SUBMITTED_INITIAL, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.UNPAIRED).apply { + instance( + deviceUiState = DeviceUIState.UNPAIRED, + uiStateState = ApiRequestState.SUCCESS + ).apply { isContentCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_REDEEMED).apply { - isContentCardVisible() shouldBe true + instance( + deviceUiState = DeviceUIState.PAIRED_REDEEMED, + uiStateState = ApiRequestState.SUCCESS + ).apply { + isContentCardVisible() shouldBe false } } @@ -142,62 +169,116 @@ class SubmissionCardStateTest : BaseTest() { @Test fun `submission positive result card visibility`() { - instance(deviceUiState = DeviceUIState.PAIRED_NEGATIVE).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_NEGATIVE, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_REDEEMED).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_REDEEMED, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_ERROR).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_ERROR, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_NO_RESULT).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_NO_RESULT, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_POSITIVE).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_POSITIVE, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe true } - instance(deviceUiState = DeviceUIState.PAIRED_POSITIVE_TELETAN).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_POSITIVE_TELETAN, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe true } - instance(deviceUiState = DeviceUIState.SUBMITTED_FINAL).apply { + instance( + deviceUiState = DeviceUIState.SUBMITTED_FINAL, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.SUBMITTED_INITIAL).apply { + instance( + deviceUiState = DeviceUIState.SUBMITTED_INITIAL, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.UNPAIRED).apply { + instance( + deviceUiState = DeviceUIState.UNPAIRED, + uiStateState = ApiRequestState.SUCCESS + ).apply { isPositiveSubmissionCardVisible() shouldBe false } } @Test fun `submission done card visibility`() { - instance(deviceUiState = DeviceUIState.UNPAIRED).apply { + instance( + deviceUiState = DeviceUIState.UNPAIRED, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_NEGATIVE).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_NEGATIVE, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_ERROR).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_ERROR, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_NO_RESULT).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_NO_RESULT, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_POSITIVE).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_POSITIVE, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_POSITIVE_TELETAN).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_POSITIVE_TELETAN, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.SUBMITTED_FINAL).apply { + instance( + deviceUiState = DeviceUIState.SUBMITTED_FINAL, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe true } - instance(deviceUiState = DeviceUIState.SUBMITTED_INITIAL).apply { + instance( + deviceUiState = DeviceUIState.SUBMITTED_INITIAL, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } - instance(deviceUiState = DeviceUIState.PAIRED_REDEEMED).apply { + instance( + deviceUiState = DeviceUIState.PAIRED_REDEEMED, + uiStateState = ApiRequestState.SUCCESS + ).apply { isSubmissionDoneCardVisible() shouldBe false } } -- GitLab