From b83b9a533b1610068a88c3267478b8db6f6cf39d Mon Sep 17 00:00:00 2001 From: Mohamed <mohamed.metwalli@sap.com> Date: Wed, 5 May 2021 08:36:26 +0200 Subject: [PATCH] Set auto submission in onStop to cover all cases (#3050) --- .../checkins/consent/CheckInsConsentFragment.kt | 5 +++++ .../checkins/consent/CheckInsConsentViewModel.kt | 8 +++++--- .../checkins/consent/CheckInsConsentViewModelTest.kt | 11 +++++++---- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentFragment.kt index 8b014f565..509c63832 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentFragment.kt @@ -81,6 +81,11 @@ class CheckInsConsentFragment : Fragment(R.layout.check_ins_consent_fragment), A } } + override fun onStop() { + super.onStop() + viewModel.setAutoSubmission() + } + private fun showSkipDialog() { MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.trace_location_attendee_consent_dialog_title) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModel.kt index ee398a815..6d1311770 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModel.kt @@ -51,8 +51,6 @@ class CheckInsConsentViewModel @AssistedInject constructor( resetPreviousSubmissionConsents() Timber.d("Navigate to shareSelectedCheckIns") - autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) - // Update CheckIns for new submission val idsWithConsent = selectedSetFlow.value checkInRepository.updateSubmissionConsents( @@ -75,7 +73,6 @@ class CheckInsConsentViewModel @AssistedInject constructor( resetPreviousSubmissionConsents() Timber.d("Navigate to doNotShareCheckIns") - autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) val event = if (coronaTest.first().isViewed) { Timber.d("Navigate to SubmissionResultReadyFragment") CheckInsConsentNavigation.ToSubmissionResultReadyFragment @@ -86,6 +83,11 @@ class CheckInsConsentViewModel @AssistedInject constructor( events.postValue(event) } + fun setAutoSubmission() { + Timber.d("setAutoSubmission") + autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) + } + fun onCloseClick() = launch { val event = if (coronaTest.first().isViewed) { Timber.d("openSkipDialog") diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModelTest.kt index bf5f2ee7a..d2e41bd45 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModelTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/attendee/checkins/consent/CheckInsConsentViewModelTest.kt @@ -15,6 +15,7 @@ import io.mockk.every import io.mockk.impl.annotations.MockK import io.mockk.just import io.mockk.mockk +import io.mockk.verify import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.flowOf import okio.ByteString.Companion.decodeBase64 @@ -288,7 +289,6 @@ class CheckInsConsentViewModelTest : BaseTest() { coVerify { checkInRepository.updateSubmissionConsents(any(), false) - autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) checkInRepository.updateSubmissionConsents(any(), true) } } @@ -303,7 +303,6 @@ class CheckInsConsentViewModelTest : BaseTest() { coVerify { checkInRepository.updateSubmissionConsents(any(), false) - autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) checkInRepository.updateSubmissionConsents(any(), true) } } @@ -318,7 +317,6 @@ class CheckInsConsentViewModelTest : BaseTest() { coVerify { checkInRepository.updateSubmissionConsents(any(), false) - autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) } } @@ -332,10 +330,15 @@ class CheckInsConsentViewModelTest : BaseTest() { coVerify { checkInRepository.updateSubmissionConsents(any(), false) - autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) } } + @Test + fun setAutoSubmission() { + createViewModel().setAutoSubmission() + verify { autoSubmission.updateMode(AutoSubmission.Mode.MONITOR) } + } + private fun createViewModel() = CheckInsConsentViewModel( savedState = savedState, dispatcherProvider = TestDispatcherProvider(), -- GitLab