diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeAdapter.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeAdapter.kt index abd463895d6662bb2066c423c8e3ecdf9350ac3c..1beff6b3260acfb661870f18445ae244123a546e 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeAdapter.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeAdapter.kt @@ -38,9 +38,9 @@ import de.rki.coronawarnapp.util.lists.modular.mods.DataBinderMod import de.rki.coronawarnapp.util.lists.modular.mods.SavedStateMod import de.rki.coronawarnapp.util.lists.modular.mods.StableIdMod import de.rki.coronawarnapp.util.lists.modular.mods.TypedVHCreatorMod -import de.rki.coronawarnapp.vaccination.ui.homecard.CompleteVaccinationHomeCard +import de.rki.coronawarnapp.vaccination.ui.homecard.ImmuneVaccinationHomeCard import de.rki.coronawarnapp.vaccination.ui.homecard.CreateVaccinationHomeCard -import de.rki.coronawarnapp.vaccination.ui.homecard.IncompleteVaccinationHomeCard +import de.rki.coronawarnapp.vaccination.ui.homecard.VaccinationHomeCard class HomeAdapter : ModularAdapter<HomeAdapter.HomeItemVH<HomeItem, ViewBinding>>(), @@ -80,11 +80,11 @@ class HomeAdapter : TypedVHCreatorMod({ data[it] is TestUnregisteredCard.Item }) { TestUnregisteredCard(it) }, TypedVHCreatorMod({ data[it] is StatisticsHomeCard.Item }) { StatisticsHomeCard(it) }, TypedVHCreatorMod({ data[it] is CreateVaccinationHomeCard.Item }) { CreateVaccinationHomeCard(it) }, - TypedVHCreatorMod({ data[it] is CompleteVaccinationHomeCard.Item }) { - CompleteVaccinationHomeCard(it) + TypedVHCreatorMod({ data[it] is ImmuneVaccinationHomeCard.Item }) { + ImmuneVaccinationHomeCard(it) }, - TypedVHCreatorMod({ data[it] is IncompleteVaccinationHomeCard.Item }) { - IncompleteVaccinationHomeCard(it) + TypedVHCreatorMod({ data[it] is VaccinationHomeCard.Item }) { + VaccinationHomeCard(it) }, SavedStateMod<HomeItemVH<HomeItem, ViewBinding>>() // For statistics card scroll position ) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt index a6e180fa4c69bbb1d47f447603ee9412e26ef3e6..1e6c375b886d772f4bd8edddc792d5ea02dd3f01 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt @@ -75,9 +75,9 @@ import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory import de.rki.coronawarnapp.vaccination.core.VaccinatedPerson import de.rki.coronawarnapp.vaccination.core.VaccinationSettings import de.rki.coronawarnapp.vaccination.core.repository.VaccinationRepository -import de.rki.coronawarnapp.vaccination.ui.homecard.CompleteVaccinationHomeCard +import de.rki.coronawarnapp.vaccination.ui.homecard.ImmuneVaccinationHomeCard import de.rki.coronawarnapp.vaccination.ui.homecard.CreateVaccinationHomeCard -import de.rki.coronawarnapp.vaccination.ui.homecard.IncompleteVaccinationHomeCard +import de.rki.coronawarnapp.vaccination.ui.homecard.VaccinationHomeCard import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach @@ -316,7 +316,8 @@ class HomeFragmentViewModel @AssistedInject constructor( vaccinatedPersons.forEach { vaccinatedPerson -> val card = when (vaccinatedPerson.getVaccinationStatus()) { - VaccinatedPerson.Status.COMPLETE -> CompleteVaccinationHomeCard.Item( + VaccinatedPerson.Status.COMPLETE, + VaccinatedPerson.Status.INCOMPLETE -> VaccinationHomeCard.Item( vaccinatedPerson = vaccinatedPerson, onClickAction = { popupEvents.postValue( @@ -324,7 +325,7 @@ class HomeFragmentViewModel @AssistedInject constructor( ) } ) - VaccinatedPerson.Status.INCOMPLETE -> IncompleteVaccinationHomeCard.Item( + VaccinatedPerson.Status.IMMUNITY -> ImmuneVaccinationHomeCard.Item( vaccinatedPerson = vaccinatedPerson, onClickAction = { popupEvents.postValue( @@ -332,15 +333,6 @@ class HomeFragmentViewModel @AssistedInject constructor( ) } ) - // TODO wrong card, just placeholder - VaccinatedPerson.Status.IMMUNITY -> CompleteVaccinationHomeCard.Item( - vaccinatedPerson = vaccinatedPerson, - onClickAction = { - popupEvents.postValue( - HomeFragmentEvents.GoToVaccinationList(vaccinatedPerson.identifier.code) - ) - } - ) } add(card) } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/CompleteVaccinationHomeCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/ImmuneVaccinationHomeCard.kt similarity index 70% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/CompleteVaccinationHomeCard.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/ImmuneVaccinationHomeCard.kt index f64b6f3fdaac4f755b4df64958c486619b5b135f..c8da550d4c2f1aad55f97a94d79daf1b57c59029 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/CompleteVaccinationHomeCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/ImmuneVaccinationHomeCard.kt @@ -2,22 +2,22 @@ package de.rki.coronawarnapp.vaccination.ui.homecard import android.view.ViewGroup import de.rki.coronawarnapp.R -import de.rki.coronawarnapp.databinding.VaccinationHomeCompleteCardBinding +import de.rki.coronawarnapp.databinding.VaccinationHomeImmuneCardBinding import de.rki.coronawarnapp.ui.main.home.HomeAdapter import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer import de.rki.coronawarnapp.vaccination.core.VaccinatedPerson -class CompleteVaccinationHomeCard(parent: ViewGroup) : - HomeAdapter.HomeItemVH<CompleteVaccinationHomeCard.Item, VaccinationHomeCompleteCardBinding>( +class ImmuneVaccinationHomeCard(parent: ViewGroup) : + HomeAdapter.HomeItemVH<ImmuneVaccinationHomeCard.Item, VaccinationHomeImmuneCardBinding>( R.layout.home_card_container_layout, parent ) { override val viewBinding = lazy { - VaccinationHomeCompleteCardBinding.inflate(layoutInflater, itemView.findViewById(R.id.card_container), true) + VaccinationHomeImmuneCardBinding.inflate(layoutInflater, itemView.findViewById(R.id.card_container), true) } - override val onBindData: VaccinationHomeCompleteCardBinding.( + override val onBindData: VaccinationHomeImmuneCardBinding.( item: Item, payloads: List<Any> ) -> Unit = { item, payloads -> diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/IncompleteVaccinationHomeCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/IncompleteVaccinationHomeCard.kt deleted file mode 100644 index 915eb6d6802170e12083d67b394a2b7cf623e55d..0000000000000000000000000000000000000000 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/IncompleteVaccinationHomeCard.kt +++ /dev/null @@ -1,38 +0,0 @@ -package de.rki.coronawarnapp.vaccination.ui.homecard - -import android.view.ViewGroup -import de.rki.coronawarnapp.R -import de.rki.coronawarnapp.databinding.VaccinationHomeIncompleteCardBinding -import de.rki.coronawarnapp.ui.main.home.HomeAdapter -import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer -import de.rki.coronawarnapp.vaccination.core.VaccinatedPerson - -class IncompleteVaccinationHomeCard(parent: ViewGroup) : - HomeAdapter.HomeItemVH<IncompleteVaccinationHomeCard.Item, VaccinationHomeIncompleteCardBinding>( - R.layout.home_card_container_layout, - parent - ) { - - override val viewBinding = lazy { - VaccinationHomeIncompleteCardBinding.inflate(layoutInflater, itemView.findViewById(R.id.card_container), true) - } - - override val onBindData: VaccinationHomeIncompleteCardBinding.( - item: Item, - payloads: List<Any> - ) -> Unit = { item, payloads -> - val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item - - personName.text = curItem.vaccinatedPerson.fullName - - itemView.setOnClickListener { curItem.onClickAction(item) } - } - - data class Item( - override val vaccinatedPerson: VaccinatedPerson, - val onClickAction: (Item) -> Unit, - ) : VaccinationStatusItem, HasPayloadDiffer { - - override fun diffPayload(old: Any, new: Any): Any? = if (old::class == new::class) new else null - } -} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/VaccinationHomeCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/VaccinationHomeCard.kt new file mode 100644 index 0000000000000000000000000000000000000000..659ff1786ddb927820fad67fc1d670fe14606296 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/homecard/VaccinationHomeCard.kt @@ -0,0 +1,52 @@ +package de.rki.coronawarnapp.vaccination.ui.homecard + +import android.view.ViewGroup +import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.databinding.VaccinationHomeCardBinding +import de.rki.coronawarnapp.ui.main.home.HomeAdapter +import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer +import de.rki.coronawarnapp.vaccination.core.VaccinatedPerson + +class VaccinationHomeCard(parent: ViewGroup) : + HomeAdapter.HomeItemVH<VaccinationHomeCard.Item, VaccinationHomeCardBinding>( + R.layout.home_card_container_layout, + parent + ) { + + override val viewBinding = lazy { + VaccinationHomeCardBinding.inflate(layoutInflater, itemView.findViewById(R.id.card_container), true) + } + + override val onBindData: VaccinationHomeCardBinding.( + item: Item, + payloads: List<Any> + ) -> Unit = { item, payloads -> + val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item + + personName.text = curItem.vaccinatedPerson.fullName + when (curItem.vaccinatedPerson.getVaccinationStatus()) { + VaccinatedPerson.Status.COMPLETE -> { + val days = curItem.vaccinatedPerson.getTimeUntilImmunity()!!.standardDays.toInt() + vaccinationState.text = context.resources.getQuantityString( + R.plurals.vaccination_card_status_vaccination_complete, + days, + days + ) + icon.setImageResource(R.drawable.vaccination_card_icon_complete) + } + else -> { + vaccinationState.setText(R.string.vaccination_card_status_vaccination_incomplete) + icon.setImageResource(R.drawable.vaccination_card_icon_incomplete) + } + } + itemView.setOnClickListener { curItem.onClickAction(item) } + } + + data class Item( + override val vaccinatedPerson: VaccinatedPerson, + val onClickAction: (Item) -> Unit, + ) : VaccinationStatusItem, HasPayloadDiffer { + + override fun diffPayload(old: Any, new: Any): Any? = if (old::class == new::class) new else null + } +} diff --git a/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_complete.xml b/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_complete.xml index 47227abb719d617b587e8270164fbde8a3e9aaf8..29d4300db7f6465d9bbf75efd976043b3d8d1414 100644 --- a/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_complete.xml +++ b/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_complete.xml @@ -4,14 +4,14 @@ android:viewportWidth="78" android:viewportHeight="72"> <path - android:pathData="M44.2502,0V4.3846H46.4425V6.7139C42.0321,7.1507 38.05,8.8463 34.7958,11.5096L33.1516,9.8654L34.6588,8.3582L31.5759,5.2752L25.41,11.4411L28.4929,14.524L30.0001,13.0168L31.6444,14.6611C28.9811,17.9153 27.2855,21.8974 26.8487,26.3077H24.5194V24.1154H20.1348V32.8846H24.5194V30.6923H26.8487C27.2855,35.1369 29.0153,39.1447 31.7129,42.4075L30.0001,43.9832L28.4929,42.476L25.41,45.5589L31.5759,51.7248L34.6588,48.6418L33.1516,47.1346L34.7958,45.4219C38.0586,48.1023 42.0236,49.8493 46.4425,50.2861V52.6154H44.2502V57H53.0194V52.6154H50.8271V50.2861C55.2459,49.8493 59.2109,48.1023 62.4737,45.4219H62.5422L64.1179,47.1346L62.6107,48.6418L65.6937,51.7248L71.8595,45.5589L68.7766,42.476L67.2694,43.9832L65.5566,42.4075C65.5609,42.3989 65.5588,42.386 65.5566,42.3732C65.5545,42.3604 65.5524,42.3475 65.5566,42.3389C68.2371,39.0762 69.9841,35.1112 70.4208,30.6923H72.7501V32.8846H77.1348V24.1154H72.7501V26.3077H70.4208C69.9841,21.8974 68.2885,17.9153 65.6251,14.6611L67.2694,13.0168L68.7766,14.524L71.8595,11.4411L65.6937,5.2752L62.6107,8.3582L64.1179,9.8654L62.4737,11.5096C59.2195,8.8463 55.2374,7.1507 50.8271,6.7139V4.3846H53.0194V0H44.2502ZM48.6352,10.9604C58.3465,10.9604 66.1737,18.7876 66.1737,28.4989C66.1737,38.2101 58.3465,46.0373 48.6352,46.0373C38.924,46.0373 31.0968,38.2101 31.0968,28.4989C31.0968,18.7876 38.924,10.9604 48.6352,10.9604ZM39.8653,18.9777C39.8653,17.1622 41.3382,15.6893 43.1537,15.6893C44.9692,15.6893 46.4422,17.1622 46.4422,18.9777C46.4422,20.7933 44.9692,22.2662 43.1537,22.2662C41.3382,22.2662 39.8653,20.7933 39.8653,18.9777ZM54.1157,15.6893C52.3002,15.6893 50.8273,17.1622 50.8273,18.9777C50.8273,20.7933 52.3002,22.2662 54.1157,22.2662C55.9312,22.2662 57.4042,20.7933 57.4042,18.9777C57.4042,17.1622 55.9312,15.6893 54.1157,15.6893ZM34.3848,28.499C34.3848,26.6834 35.8578,25.2105 37.6733,25.2105C39.4888,25.2105 40.9618,26.6834 40.9618,28.499C40.9618,30.3145 39.4888,31.7874 37.6733,31.7874C35.8578,31.7874 34.3848,30.3145 34.3848,28.499ZM48.6353,25.2105C46.8198,25.2105 45.3468,26.6834 45.3468,28.499C45.3468,30.3145 46.8198,31.7874 48.6353,31.7874C50.4508,31.7874 51.9237,30.3145 51.9237,28.499C51.9237,26.6834 50.4508,25.2105 48.6353,25.2105ZM56.3075,28.499C56.3075,26.6834 57.7804,25.2105 59.5959,25.2105C61.4114,25.2105 62.8844,26.6834 62.8844,28.499C62.8844,30.3145 61.4114,31.7874 59.5959,31.7874C57.7804,31.7874 56.3075,30.3145 56.3075,28.499ZM43.1537,34.7339C41.3382,34.7339 39.8653,36.2069 39.8653,38.0224C39.8653,39.8379 41.3382,41.3108 43.1537,41.3108C44.9692,41.3108 46.4422,39.8379 46.4422,38.0224C46.4422,36.2069 44.9692,34.7339 43.1537,34.7339ZM50.8273,38.0224C50.8273,36.2069 52.3002,34.7339 54.1157,34.7339C55.9312,34.7339 57.4042,36.2069 57.4042,38.0224C57.4042,39.8379 55.9312,41.3108 54.1157,41.3108C52.3002,41.3108 50.8273,39.8379 50.8273,38.0224Z" + android:pathData="M44.2499,0V4.3846H46.4422V6.7139C42.0319,7.1507 38.0498,8.8463 34.7956,11.5096L33.1513,9.8654L34.6586,8.3582L31.5756,5.2752L25.4098,11.4411L28.4927,14.524L29.9999,13.0168L31.6441,14.6611C28.9808,17.9153 27.2852,21.8974 26.8485,26.3077H24.5191V24.1154H20.1345V32.8846H24.5191V30.6923H26.8485C27.2852,35.1369 29.0151,39.1447 31.7126,42.4075L29.9999,43.9832L28.4927,42.476L25.4098,45.5589L31.5756,51.7248L34.6586,48.6418L33.1513,47.1346L34.7956,45.4219C38.0583,48.1023 42.0233,49.8493 46.4422,50.2861V52.6154H44.2499V57H53.0191V52.6154H50.8268V50.2861C55.2457,49.8493 59.2107,48.1023 62.4735,45.4219H62.542L64.1177,47.1346L62.6105,48.6418L65.6934,51.7248L71.8593,45.5589L68.7763,42.476L67.2691,43.9832L65.5564,42.4075C65.5607,42.3989 65.5585,42.386 65.5564,42.3732C65.5543,42.3604 65.5521,42.3475 65.5564,42.3389C68.2368,39.0762 69.9838,35.1112 70.4206,30.6923H72.7499V32.8846H77.1345V24.1154H72.7499V26.3077H70.4206C69.9838,21.8974 68.2882,17.9153 65.6249,14.6611L67.2691,13.0168L68.7763,14.524L71.8593,11.4411L65.6934,5.2752L62.6105,8.3582L64.1177,9.8654L62.4735,11.5096C59.2193,8.8463 55.2371,7.1507 50.8268,6.7139V4.3846H53.0191V0H44.2499ZM48.635,10.9604C58.3462,10.9604 66.1734,18.7876 66.1734,28.4989C66.1734,38.2101 58.3462,46.0373 48.635,46.0373C38.9237,46.0373 31.0965,38.2101 31.0965,28.4989C31.0965,18.7876 38.9237,10.9604 48.635,10.9604ZM39.865,18.9777C39.865,17.1622 41.338,15.6893 43.1535,15.6893C44.969,15.6893 46.4419,17.1622 46.4419,18.9777C46.4419,20.7933 44.969,22.2662 43.1535,22.2662C41.338,22.2662 39.865,20.7933 39.865,18.9777ZM54.1155,15.6893C52.3,15.6893 50.827,17.1622 50.827,18.9777C50.827,20.7933 52.3,22.2662 54.1155,22.2662C55.931,22.2662 57.4039,20.7933 57.4039,18.9777C57.4039,17.1622 55.931,15.6893 54.1155,15.6893ZM34.3846,28.499C34.3846,26.6834 35.8575,25.2105 37.673,25.2105C39.4886,25.2105 40.9615,26.6834 40.9615,28.499C40.9615,30.3145 39.4886,31.7874 37.673,31.7874C35.8575,31.7874 34.3846,30.3145 34.3846,28.499ZM48.635,25.2105C46.8195,25.2105 45.3466,26.6834 45.3466,28.499C45.3466,30.3145 46.8195,31.7874 48.635,31.7874C50.4505,31.7874 51.9235,30.3145 51.9235,28.499C51.9235,26.6834 50.4505,25.2105 48.635,25.2105ZM56.3072,28.499C56.3072,26.6834 57.7802,25.2105 59.5957,25.2105C61.4112,25.2105 62.8841,26.6834 62.8841,28.499C62.8841,30.3145 61.4112,31.7874 59.5957,31.7874C57.7802,31.7874 56.3072,30.3145 56.3072,28.499ZM43.1535,34.7339C41.338,34.7339 39.865,36.2069 39.865,38.0224C39.865,39.8379 41.338,41.3108 43.1535,41.3108C44.969,41.3108 46.4419,39.8379 46.4419,38.0224C46.4419,36.2069 44.969,34.7339 43.1535,34.7339ZM50.827,38.0224C50.827,36.2069 52.3,34.7339 54.1155,34.7339C55.931,34.7339 57.4039,36.2069 57.4039,38.0224C57.4039,39.8379 55.931,41.3108 54.1155,41.3108C52.3,41.3108 50.827,39.8379 50.827,38.0224Z" android:fillColor="#ffffff" android:fillAlpha="0.2" - android:fillType="evenOdd" /> + android:fillType="evenOdd"/> <path android:pathData="M22,18L0,27.8182V42.5455C0,56.1682 9.3867,68.9073 22,72C34.6133,68.9073 44,56.1682 44,42.5455V27.8182L22,18Z" - android:fillColor="#ffffff" /> + android:fillColor="#ffffff"/> <path android:pathData="M11.29,43.7909L8,47.2335L17.3333,57L36,37.4671L32.71,34L17.3333,50.0902L11.29,43.7909Z" - android:fillColor="#007FAD" /> + android:fillColor="#616F7E"/> </vector> diff --git a/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_immune.xml b/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_immune.xml new file mode 100644 index 0000000000000000000000000000000000000000..47227abb719d617b587e8270164fbde8a3e9aaf8 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_immune.xml @@ -0,0 +1,17 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="78dp" + android:height="72dp" + android:viewportWidth="78" + android:viewportHeight="72"> + <path + android:pathData="M44.2502,0V4.3846H46.4425V6.7139C42.0321,7.1507 38.05,8.8463 34.7958,11.5096L33.1516,9.8654L34.6588,8.3582L31.5759,5.2752L25.41,11.4411L28.4929,14.524L30.0001,13.0168L31.6444,14.6611C28.9811,17.9153 27.2855,21.8974 26.8487,26.3077H24.5194V24.1154H20.1348V32.8846H24.5194V30.6923H26.8487C27.2855,35.1369 29.0153,39.1447 31.7129,42.4075L30.0001,43.9832L28.4929,42.476L25.41,45.5589L31.5759,51.7248L34.6588,48.6418L33.1516,47.1346L34.7958,45.4219C38.0586,48.1023 42.0236,49.8493 46.4425,50.2861V52.6154H44.2502V57H53.0194V52.6154H50.8271V50.2861C55.2459,49.8493 59.2109,48.1023 62.4737,45.4219H62.5422L64.1179,47.1346L62.6107,48.6418L65.6937,51.7248L71.8595,45.5589L68.7766,42.476L67.2694,43.9832L65.5566,42.4075C65.5609,42.3989 65.5588,42.386 65.5566,42.3732C65.5545,42.3604 65.5524,42.3475 65.5566,42.3389C68.2371,39.0762 69.9841,35.1112 70.4208,30.6923H72.7501V32.8846H77.1348V24.1154H72.7501V26.3077H70.4208C69.9841,21.8974 68.2885,17.9153 65.6251,14.6611L67.2694,13.0168L68.7766,14.524L71.8595,11.4411L65.6937,5.2752L62.6107,8.3582L64.1179,9.8654L62.4737,11.5096C59.2195,8.8463 55.2374,7.1507 50.8271,6.7139V4.3846H53.0194V0H44.2502ZM48.6352,10.9604C58.3465,10.9604 66.1737,18.7876 66.1737,28.4989C66.1737,38.2101 58.3465,46.0373 48.6352,46.0373C38.924,46.0373 31.0968,38.2101 31.0968,28.4989C31.0968,18.7876 38.924,10.9604 48.6352,10.9604ZM39.8653,18.9777C39.8653,17.1622 41.3382,15.6893 43.1537,15.6893C44.9692,15.6893 46.4422,17.1622 46.4422,18.9777C46.4422,20.7933 44.9692,22.2662 43.1537,22.2662C41.3382,22.2662 39.8653,20.7933 39.8653,18.9777ZM54.1157,15.6893C52.3002,15.6893 50.8273,17.1622 50.8273,18.9777C50.8273,20.7933 52.3002,22.2662 54.1157,22.2662C55.9312,22.2662 57.4042,20.7933 57.4042,18.9777C57.4042,17.1622 55.9312,15.6893 54.1157,15.6893ZM34.3848,28.499C34.3848,26.6834 35.8578,25.2105 37.6733,25.2105C39.4888,25.2105 40.9618,26.6834 40.9618,28.499C40.9618,30.3145 39.4888,31.7874 37.6733,31.7874C35.8578,31.7874 34.3848,30.3145 34.3848,28.499ZM48.6353,25.2105C46.8198,25.2105 45.3468,26.6834 45.3468,28.499C45.3468,30.3145 46.8198,31.7874 48.6353,31.7874C50.4508,31.7874 51.9237,30.3145 51.9237,28.499C51.9237,26.6834 50.4508,25.2105 48.6353,25.2105ZM56.3075,28.499C56.3075,26.6834 57.7804,25.2105 59.5959,25.2105C61.4114,25.2105 62.8844,26.6834 62.8844,28.499C62.8844,30.3145 61.4114,31.7874 59.5959,31.7874C57.7804,31.7874 56.3075,30.3145 56.3075,28.499ZM43.1537,34.7339C41.3382,34.7339 39.8653,36.2069 39.8653,38.0224C39.8653,39.8379 41.3382,41.3108 43.1537,41.3108C44.9692,41.3108 46.4422,39.8379 46.4422,38.0224C46.4422,36.2069 44.9692,34.7339 43.1537,34.7339ZM50.8273,38.0224C50.8273,36.2069 52.3002,34.7339 54.1157,34.7339C55.9312,34.7339 57.4042,36.2069 57.4042,38.0224C57.4042,39.8379 55.9312,41.3108 54.1157,41.3108C52.3002,41.3108 50.8273,39.8379 50.8273,38.0224Z" + android:fillColor="#ffffff" + android:fillAlpha="0.2" + android:fillType="evenOdd" /> + <path + android:pathData="M22,18L0,27.8182V42.5455C0,56.1682 9.3867,68.9073 22,72C34.6133,68.9073 44,56.1682 44,42.5455V27.8182L22,18Z" + android:fillColor="#ffffff" /> + <path + android:pathData="M11.29,43.7909L8,47.2335L17.3333,57L36,37.4671L32.71,34L17.3333,50.0902L11.29,43.7909Z" + android:fillColor="#007FAD" /> +</vector> diff --git a/Corona-Warn-App/src/main/res/layout/vaccination_home_incomplete_card.xml b/Corona-Warn-App/src/main/res/layout/vaccination_home_card.xml similarity index 94% rename from Corona-Warn-App/src/main/res/layout/vaccination_home_incomplete_card.xml rename to Corona-Warn-App/src/main/res/layout/vaccination_home_card.xml index 6967cbc8040d458ae636b9683426fa628ff153d8..38faef5dc140c72d9728338bb3d88ebb0a06c549 100644 --- a/Corona-Warn-App/src/main/res/layout/vaccination_home_incomplete_card.xml +++ b/Corona-Warn-App/src/main/res/layout/vaccination_home_card.xml @@ -5,7 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/vaccination_incomplete" - android:padding="@dimen/card_padding"> + android:padding="@dimen/card_padding" + tools:ignore="UnusedAttribute"> <ImageView @@ -23,6 +24,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" + android:importantForAccessibility="no" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/show_more_action" @@ -51,11 +53,11 @@ android:layout_marginEnd="16dp" android:accessibilityHeading="true" android:focusable="false" + android:text="@string/vaccination_card_status_vaccination_name" android:textColor="@color/colorTextPrimary1InvertedStable" app:layout_constraintEnd_toStartOf="@+id/icon" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/card_title" - android:text="@string/vaccination_card_status_vaccination_name" /> + app:layout_constraintTop_toBottomOf="@id/card_title" /> <TextView android:id="@+id/vaccination_state" @@ -88,6 +90,6 @@ app:layout_constraintEnd_toStartOf="@+id/icon" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/vaccination_state" - tools:text="François-Joan d'Arsøns - van Halen" /> + tools:text="Andrea Schneider" /> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/layout/vaccination_home_complete_card.xml b/Corona-Warn-App/src/main/res/layout/vaccination_home_immune_card.xml similarity index 90% rename from Corona-Warn-App/src/main/res/layout/vaccination_home_complete_card.xml rename to Corona-Warn-App/src/main/res/layout/vaccination_home_immune_card.xml index 598ddd22dd51745335c2100a4b5b9c4e82c24891..51057d18a765bad49fa1f16cbae7b7d355344132 100644 --- a/Corona-Warn-App/src/main/res/layout/vaccination_home_complete_card.xml +++ b/Corona-Warn-App/src/main/res/layout/vaccination_home_immune_card.xml @@ -5,7 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/vaccination_compelete_gradient" - android:padding="@dimen/card_padding"> + android:padding="@dimen/card_padding" + tools:ignore="UnusedAttribute"> <ImageView @@ -22,10 +23,11 @@ android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:importantForAccessibility="no" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/show_more_action" - app:srcCompat="@drawable/vaccination_card_icon_complete" /> + app:srcCompat="@drawable/vaccination_card_icon_immune" /> <TextView android:id="@+id/card_title" @@ -49,11 +51,11 @@ android:layout_marginEnd="16dp" android:accessibilityHeading="true" android:focusable="false" + android:text="@string/vaccination_card_status_vaccination_name" android:textColor="@color/colorTextPrimary1InvertedStable" app:layout_constraintEnd_toStartOf="@+id/icon" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/card_title" - android:text="@string/vaccination_card_status_vaccination_name" /> + app:layout_constraintTop_toBottomOf="@id/card_title" /> <TextView android:id="@+id/person_name" @@ -69,6 +71,6 @@ app:layout_constraintEnd_toStartOf="@+id/icon" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/vaccination_label" - tools:text="François-Joan d'Arsøns - van Halen" /> + tools:text="Andrea Schneider" /> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/values-de/vaccination_strings.xml b/Corona-Warn-App/src/main/res/values-de/vaccination_strings.xml index 183f618a7cd7448a43ef4a5b87577bbc59d4dd06..215e69d41f173e3fe60d0ec4d6c3715fc189158c 100644 --- a/Corona-Warn-App/src/main/res/values-de/vaccination_strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/vaccination_strings.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<resources> +<resources xmlns:tools="http://schemas.android.com/tools"> <!-- XTXT: Vaccination Details birth date --> <string name="vaccination_details_birth_date">Geboren %1$s</string> <!-- XTXT: Vaccination Details certificate date --> @@ -69,13 +69,22 @@ <string name="vaccination_card_registration_body">"Fügen Sie Ihre Impfzertifikate in die App hinzu, um sie immer bei sich zu haben. Scannen Sie dafür den QR-Code Ihres Dokuments."</string> <!-- XBUT: button for Vaccination Certificate Registration Home Card --> <string name="vaccination_card_register">"Hinzufügen"</string> - <!-- XHED: Homescreen vaccination status card title --> <string name="vaccination_card_status_title">Digitaler Impfnachweis</string> <!-- XHED: Homescreen vaccination status card vaccination name --> <string name="vaccination_card_status_vaccination_name">SARS-CoV-2 Impfschutz</string> - <!-- XTXT: Homescreen vaccination status card vaccination status label --> + <!-- XTXT: Homescreen card incomplete vaccination status label --> <string name="vaccination_card_status_vaccination_incomplete">Unvollständiger Impfschutz</string> + <!-- XTXT: Homescreen card complete vaccination status label --> + <plurals name="vaccination_card_status_vaccination_complete" tools:ignore="UnusedQuantity"> + <item quantity="one">Vollständiger Impfschutz in %1$d Tag</item> + <item quantity="other">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="zero">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="two">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="few">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="many">Vollständiger Impfschutz in %1$d Tagen</item> + </plurals> + <!-- XTXT: Vaccination QR code scan error message--> <string name="error_vc_invalid">Dieser QR-Code ist kein gültiges Impfzertifikat.</string> <!-- XTXT: Vaccination QR code scan error message--> diff --git a/Corona-Warn-App/src/main/res/values/vaccination_strings.xml b/Corona-Warn-App/src/main/res/values/vaccination_strings.xml index 12ece40941b608dc4fbeef9422e9f02dc40adde9..4b7d2be483e350e7fc6dfb5461ae612dc020d83e 100644 --- a/Corona-Warn-App/src/main/res/values/vaccination_strings.xml +++ b/Corona-Warn-App/src/main/res/values/vaccination_strings.xml @@ -74,8 +74,17 @@ <string name="vaccination_card_status_title">Digitaler Impfnachweis</string> <!-- XHED: Homescreen vaccination status card vaccination name --> <string name="vaccination_card_status_vaccination_name">SARS-CoV-2 Impfschutz</string> - <!-- XTXT: Homescreen card vaccination status label --> + <!-- XTXT: Homescreen card incomplete vaccination status label --> <string name="vaccination_card_status_vaccination_incomplete">Unvollständiger Impfschutz</string> + <!-- XTXT: Homescreen card complete vaccination status label --> + <plurals name="vaccination_card_status_vaccination_complete"> + <item quantity="one">Vollständiger Impfschutz in %1$d Tag</item> + <item quantity="other">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="zero">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="two">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="few">Vollständiger Impfschutz in %1$d Tagen</item> + <item quantity="many">Vollständiger Impfschutz in %1$d Tagen</item> + </plurals> <!-- XTXT: Vaccination QR code scan error message--> <string name="error_vc_invalid"></string>