From be27e9e660b81899f10af0efa207ef4e82205608 Mon Sep 17 00:00:00 2001 From: Alexandru Paulescu Date: Tue, 15 Nov 2022 12:29:05 +0200 Subject: [PATCH 1/3] Add progress loading button to end of srs submission. --- .../ui/symptoms/calendar/SrsSymptomsCalendarFragment.kt | 2 ++ .../ui/symptoms/calendar/SrsSymptomsCalendarViewModel.kt | 2 ++ .../ui/symptoms/intro/SrsSymptomsIntroductionFragment.kt | 4 +++- .../symptoms/intro/SrsSymptomsIntroductionViewModel.kt | 2 ++ .../SubmissionSymptomIntroductionFragment.kt | 7 +++++-- .../res/layout/fragment_submission_symptom_calendar.xml | 9 +++++---- .../res/layout/fragment_submission_symptom_intro.xml | 9 +++++---- 7 files changed, 24 insertions(+), 11 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarFragment.kt index af3ed069b7d..bed2e814f84 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarFragment.kt @@ -66,6 +66,8 @@ class SrsSymptomsCalendarFragment : Fragment(R.layout.fragment_submission_sympto binding.toolbar.setNavigationOnClickListener { viewModel.onCancelConfirmed() } + viewModel.showLoadingIndicator.observe(viewLifecycleOwner) { binding.symptomButtonNext.isLoading = true } + viewModel.events.observe(viewLifecycleOwner) { when (it) { SrsSymptomsCalendarNavigation.ShowCloseDialog -> showCloseDialog { viewModel.goHome() } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarViewModel.kt index 079cef8fb57..20cd111362a 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarViewModel.kt @@ -32,6 +32,7 @@ class SrsSymptomsCalendarViewModel @AssistedInject constructor( val symptomStart = symptomStartInternal.asLiveData(context = dispatcherProvider.Default) val events = SingleLiveEvent() + val showLoadingIndicator = SingleLiveEvent() fun onCancelConfirmed() { Timber.d("Canceled SRS submission") @@ -47,6 +48,7 @@ class SrsSymptomsCalendarViewModel @AssistedInject constructor( return } Timber.tag(TAG).d("onDone() clicked on calender screen.") + showLoadingIndicator.postValue(Unit) submitSrs() } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionFragment.kt index 2aeff2a13bc..7a84ef150c2 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionFragment.kt @@ -56,6 +56,8 @@ class SrsSymptomsIntroductionFragment : Fragment(R.layout.fragment_submission_sy updateButtons(it) } + viewModel.showLoadingIndicator.observe(viewLifecycleOwner) { binding.symptomButtonNext.isLoading = true } + viewModel.events.observe(viewLifecycleOwner) { when (it) { SrsSymptomsIntroductionNavigation.ShowCloseDialog -> showCloseDialog { viewModel.goHome() } @@ -106,7 +108,7 @@ class SrsSymptomsIntroductionFragment : Fragment(R.layout.fragment_submission_sy binding.symptomButtonNext.apply { isEnabled = symptomIndication != null - setText( + defaultButton.setText( when (symptomIndication) { Symptoms.Indication.NEGATIVE -> R.string.submission_done_button_done Symptoms.Indication.NO_INFORMATION -> R.string.submission_done_button_done diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionViewModel.kt index 9282395ce4f..ba3a351a710 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionViewModel.kt @@ -26,6 +26,7 @@ class SrsSymptomsIntroductionViewModel @AssistedInject constructor( ) : CWAViewModel(dispatcherProvider) { val events = SingleLiveEvent() + val showLoadingIndicator = SingleLiveEvent() private val symptomIndicationInternal = MutableStateFlow(null) val symptomIndication = symptomIndicationInternal.asLiveData(context = dispatcherProvider.Default) @@ -47,6 +48,7 @@ class SrsSymptomsIntroductionViewModel @AssistedInject constructor( } fun onWarningClicked() { + showLoadingIndicator.postValue(Unit) when (symptomIndication.value) { Symptoms.Indication.NEGATIVE -> { submitSRS(Symptoms.Indication.NEGATIVE) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionFragment.kt index 04fc3397d60..76d8b8d4b20 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionFragment.kt @@ -86,14 +86,17 @@ class SubmissionSymptomIntroductionFragment : binding.symptomButtonNext.apply { isEnabled = symptomIndication != null - setText( + defaultButton.setText( when (symptomIndication) { Symptoms.Indication.NEGATIVE -> R.string.submission_done_button_done Symptoms.Indication.NO_INFORMATION -> R.string.submission_done_button_done else -> R.string.submission_symptom_further_button } ) - setOnClickListener { viewModel.onNextClicked() } + setOnClickListener { + isLoading = true + viewModel.onNextClicked() + } } } diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_symptom_calendar.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_symptom_calendar.xml index a986117117e..dad1688e49c 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_submission_symptom_calendar.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_symptom_calendar.xml @@ -108,19 +108,20 @@ -