From fb6b36eda7bf7618aa81ff74bcf6450035a37661 Mon Sep 17 00:00:00 2001 From: Giorgos Papadopoulos Date: Fri, 4 Nov 2022 11:00:22 +0100 Subject: [PATCH] 5018 --- .../holder/fuzzy_matching/FuzzyMatchingModule.kt | 4 ++++ .../holder/fuzzy_matching/SelectionDataUtil.kt | 16 +++++++++++++++- .../fuzzy_matching/SelectionDataUtilImplTest.kt | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/FuzzyMatchingModule.kt b/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/FuzzyMatchingModule.kt index 9e2b83d4b..5af9e79cb 100644 --- a/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/FuzzyMatchingModule.kt +++ b/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/FuzzyMatchingModule.kt @@ -29,11 +29,15 @@ val fuzzyMatchingModule = module { } factory { + fun getFormattedString(stringResId: Int, template: String): String { + return androidContext().getString(stringResId, template) + } SelectionDataUtilImpl( get(), get(), get(), androidContext().resources::getQuantityString, + ::getFormattedString, androidContext()::getString ) } diff --git a/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtil.kt b/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtil.kt index da71f6e36..abcde47d6 100644 --- a/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtil.kt +++ b/holder/src/main/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtil.kt @@ -10,6 +10,7 @@ import nl.rijksoverheid.ctr.holder.get_events.models.RemoteEvent.Companion.TYPE_ import nl.rijksoverheid.ctr.holder.get_events.models.RemoteEvent.Companion.TYPE_TEST import nl.rijksoverheid.ctr.holder.get_events.models.RemoteEvent.Companion.TYPE_VACCINATION import nl.rijksoverheid.ctr.holder.get_events.models.RemoteEvent.Companion.TYPE_VACCINATION_ASSESSMENT +import nl.rijksoverheid.ctr.holder.get_events.models.RemoteEventVaccination import nl.rijksoverheid.ctr.holder.your_events.utils.RemoteEventStringUtil import nl.rijksoverheid.ctr.holder.your_events.utils.YourEventsFragmentUtil @@ -33,6 +34,7 @@ class SelectionDataUtilImpl( private val yourEventsFragmentUtil: YourEventsFragmentUtil, private val remoteEventStringUtil: RemoteEventStringUtil, private val getQuantityString: (Int, Int) -> String, + private val getFormattedString: (Int, String) -> String, private val getString: (Int) -> String ) : SelectionDataUtil { @@ -94,7 +96,19 @@ class SelectionDataUtilImpl( val data = remoteEvents.map { event -> val eventDate = event.getDate() SelectionDetailData( - type = remoteEventStringUtil.remoteEventTitle(event.javaClass), + type = "${remoteEventStringUtil.remoteEventTitle(event.javaClass)}${ + if (providerIdentifier.startsWith("dcc") && event is RemoteEventVaccination) { + val dose = event.vaccination?.doseNumber + val totalDoses = event.vaccination?.totalDoses + if (dose != null && totalDoses != null) { + " ${getFormattedString(R.string.your_vaccination_explanation_dose, "$dose/$totalDoses")}" + } else { + "" + } + } else { + "" + } + }", providerIdentifiers = listOf( yourEventsFragmentUtil.getProviderName( configProviders, diff --git a/holder/src/test/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtilImplTest.kt b/holder/src/test/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtilImplTest.kt index 327f75d4b..bb467254f 100644 --- a/holder/src/test/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtilImplTest.kt +++ b/holder/src/test/java/nl/rijksoverheid/ctr/holder/fuzzy_matching/SelectionDataUtilImplTest.kt @@ -39,12 +39,16 @@ class SelectionDataUtilImplTest : AutoCloseKoinTest() { private val yourEventsFragmentUtil: YourEventsFragmentUtil by inject() private val remoteEventStringUtil: RemoteEventStringUtil by inject() + private fun getFormattedString(stringResId: Int, formattedString: String): String { + return getApplication().getString(stringResId, formattedString) + } private val selectionDataUtil by lazy { SelectionDataUtilImpl( cachedAppConfigUseCase, yourEventsFragmentUtil, remoteEventStringUtil, getApplication().resources::getQuantityString, + ::getFormattedString, getApplication()::getString ) } @@ -101,4 +105,15 @@ class SelectionDataUtilImplTest : AutoCloseKoinTest() { assertEquals(expectedData[index], data.type) } } + + @Test + fun `details string for dcc vaccinations display dose`() { + val actualData = selectionDataUtil.details("dcc_code1", listOf(RemoteEventVaccination(RemoteEvent.TYPE_VACCINATION, "", mockk { + every { date } returns LocalDate.now() + every { doseNumber } returns "2" + every { totalDoses } returns "2" + }))) + + assertEquals("Vaccinatie dosis 2/2", actualData.first().type) + } }