From cf471dca0e972f163589ee188c1f2894131fb9c3 Mon Sep 17 00:00:00 2001 From: melad Date: Wed, 4 Sep 2024 20:59:12 +0300 Subject: [PATCH] [MS-710] Add UNCOOPERATIVE_CHILD exit option --- .../exitform/ExitFormConfigurationBuilder.kt | 2 ++ .../feature/exitform/config/ExitFormOption.kt | 5 +++++ .../feature/exitform/screen/ExitFormFragment.kt | 2 ++ .../src/main/res/layout-land/fragment_exit_form.xml | 7 +++++++ .../src/main/res/layout/fragment_exit_form.xml | 13 ++++++++++--- .../event/remote/models/ApiRefusalPayload.kt | 3 +++ .../events/event/domain/models/RefusalEvent.kt | 2 +- infra/resources/src/main/res/values/strings.xml | 1 + 8 files changed, 31 insertions(+), 4 deletions(-) diff --git a/feature/exit-form/src/main/java/com/simprints/feature/exitform/ExitFormConfigurationBuilder.kt b/feature/exit-form/src/main/java/com/simprints/feature/exitform/ExitFormConfigurationBuilder.kt index 9450ccb99e..e56b8ddf1f 100644 --- a/feature/exit-form/src/main/java/com/simprints/feature/exitform/ExitFormConfigurationBuilder.kt +++ b/feature/exit-form/src/main/java/com/simprints/feature/exitform/ExitFormConfigurationBuilder.kt @@ -24,6 +24,7 @@ fun defaultOptions() = setOf( ExitFormOption.PersonNotPresent, ExitFormOption.TooYoung, ExitFormOption.WrongAgeGroupSelected, + ExitFormOption.UncooperativeChild, ExitFormOption.Other, ) @@ -38,6 +39,7 @@ fun scannerOptions() = setOf( ExitFormOption.PersonNotPresent, ExitFormOption.TooYoung, ExitFormOption.WrongAgeGroupSelected, + ExitFormOption.UncooperativeChild, ExitFormOption.Other, ) diff --git a/feature/exit-form/src/main/java/com/simprints/feature/exitform/config/ExitFormOption.kt b/feature/exit-form/src/main/java/com/simprints/feature/exitform/config/ExitFormOption.kt index 4f74ba96f4..0a3e43f131 100644 --- a/feature/exit-form/src/main/java/com/simprints/feature/exitform/config/ExitFormOption.kt +++ b/feature/exit-form/src/main/java/com/simprints/feature/exitform/config/ExitFormOption.kt @@ -49,6 +49,11 @@ enum class ExitFormOption( logName = "Wrong age group selected", answer = RefusalEvent.RefusalPayload.Answer.WRONG_AGE_GROUP_SELECTED, ), + UncooperativeChild( + requiresInfo = false, + logName = "Uncooperative child selected", + answer = RefusalEvent.RefusalPayload.Answer.UNCOOPERATIVE_CHILD, + ), Other( requiresInfo = true, logName = "Other", diff --git a/feature/exit-form/src/main/java/com/simprints/feature/exitform/screen/ExitFormFragment.kt b/feature/exit-form/src/main/java/com/simprints/feature/exitform/screen/ExitFormFragment.kt index 5453e02000..a5ce325c8d 100644 --- a/feature/exit-form/src/main/java/com/simprints/feature/exitform/screen/ExitFormFragment.kt +++ b/feature/exit-form/src/main/java/com/simprints/feature/exitform/screen/ExitFormFragment.kt @@ -62,6 +62,7 @@ internal class ExitFormFragment : Fragment(R.layout.fragment_exit_form) { exitFromRadioPersonNotPresent.isVisible = options.contains(ExitFormOption.PersonNotPresent) exitFormRadioTooYoung.isVisible = options.contains(ExitFormOption.TooYoung) exitFormRadioWrongAgeGroupSelected.isVisible = options.contains(ExitFormOption.WrongAgeGroupSelected) + exitFormUncooperativeChild.isVisible = options.contains(ExitFormOption.UncooperativeChild) exitFormRadioOther.isVisible = options.contains(ExitFormOption.Other) } @@ -92,6 +93,7 @@ internal class ExitFormFragment : Fragment(R.layout.fragment_exit_form) { R.id.exitFormRadioScannerNotWorking -> ExitFormOption.ScannerNotWorking R.id.exitFromRadioPersonNotPresent -> ExitFormOption.PersonNotPresent R.id.exitFormRadioTooYoung -> ExitFormOption.TooYoung + R.id.exitFormUncooperativeChild -> ExitFormOption.UncooperativeChild R.id.exitFormRadioWrongAgeGroupSelected -> ExitFormOption.WrongAgeGroupSelected else -> ExitFormOption.Other } diff --git a/feature/exit-form/src/main/res/layout-land/fragment_exit_form.xml b/feature/exit-form/src/main/res/layout-land/fragment_exit_form.xml index f2c5aff7c1..5ab1b67527 100644 --- a/feature/exit-form/src/main/res/layout-land/fragment_exit_form.xml +++ b/feature/exit-form/src/main/res/layout-land/fragment_exit_form.xml @@ -101,6 +101,13 @@ android:layout_height="wrap_content" android:text="@string/exit_form_reason_wrong_age_group_selected" /> + + + + + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/exitFormScrollView"> ApiAnswer.REFUSED_NOT_PRESENT REFUSED_YOUNG -> ApiAnswer.REFUSED_YOUNG WRONG_AGE_GROUP_SELECTED -> ApiAnswer.WRONG_AGE_GROUP_SELECTED + UNCOOPERATIVE_CHILD -> ApiAnswer.UNCOOPERATIVE_CHILD OTHER -> ApiAnswer.OTHER } diff --git a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/RefusalEvent.kt b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/RefusalEvent.kt index 431e5582f0..f23079ff69 100644 --- a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/RefusalEvent.kt +++ b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/RefusalEvent.kt @@ -51,7 +51,6 @@ data class RefusalEvent( @Keep enum class Answer { - REFUSED_RELIGION, REFUSED_DATA_CONCERNS, REFUSED_PERMISSION, @@ -60,6 +59,7 @@ data class RefusalEvent( REFUSED_NOT_PRESENT, REFUSED_YOUNG, WRONG_AGE_GROUP_SELECTED, + UNCOOPERATIVE_CHILD, OTHER } } diff --git a/infra/resources/src/main/res/values/strings.xml b/infra/resources/src/main/res/values/strings.xml index a099632f4a..5debd6cc92 100644 --- a/infra/resources/src/main/res/values/strings.xml +++ b/infra/resources/src/main/res/values/strings.xml @@ -67,6 +67,7 @@ Person not present Too young Wrong age group selected + Uncooperative child Other