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..20413ed00a2 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 = it } + viewModel.events.observe(viewLifecycleOwner) { when (it) { SrsSymptomsCalendarNavigation.ShowCloseDialog -> showCloseDialog { viewModel.goHome() } @@ -114,7 +116,7 @@ class SrsSymptomsCalendarFragment : Fragment(R.layout.fragment_submission_sympto } symptomButtonNext.apply { - isEnabled = symptomStart != null + isActive = symptomStart != null setOnClickListener { viewModel.onDone() } } } 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..0dcb23e0803 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(true) submitSrs() } @@ -65,6 +67,8 @@ class SrsSymptomsCalendarViewModel @AssistedInject constructor( events.postValue(SrsSymptomsCalendarNavigation.GoToThankYouScreen(submissionType)) } catch (e: Exception) { events.postValue(SrsSymptomsCalendarNavigation.Error(e)) + } finally { + showLoadingIndicator.postValue(false) } } 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..ba073f773d4 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 = it } + viewModel.events.observe(viewLifecycleOwner) { when (it) { SrsSymptomsIntroductionNavigation.ShowCloseDialog -> showCloseDialog { viewModel.goHome() } @@ -105,8 +107,8 @@ class SrsSymptomsIntroductionFragment : Fragment(R.layout.fragment_submission_sy } binding.symptomButtonNext.apply { - isEnabled = symptomIndication != null - setText( + isActive = symptomIndication != null + 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..5c7692e997c 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(true) when (symptomIndication.value) { Symptoms.Indication.NEGATIVE -> { submitSRS(Symptoms.Indication.NEGATIVE) @@ -76,6 +78,8 @@ class SrsSymptomsIntroductionViewModel @AssistedInject constructor( events.postValue(SrsSymptomsIntroductionNavigation.GoToThankYouScreen(submissionType)) } catch (e: Exception) { events.postValue(SrsSymptomsIntroductionNavigation.Error(e)) + } finally { + showLoadingIndicator.postValue(false) } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarFragment.kt index b94b9eebab1..3a3632ea757 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarFragment.kt @@ -95,7 +95,7 @@ class SubmissionSymptomCalendarFragment : } symptomButtonNext.apply { - isEnabled = symptomStart != null + isActive = symptomStart != null setOnClickListener { viewModel.onDone() } } } 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..6d37a6c487e 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 @@ -85,8 +85,8 @@ class SubmissionSymptomIntroductionFragment : } binding.symptomButtonNext.apply { - isEnabled = symptomIndication != null - setText( + isActive = symptomIndication != null + 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/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 @@ -