diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/greencertificate/ui/certificates/CertificatesViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/greencertificate/ui/certificates/CertificatesViewModel.kt index 41e545fdc82e919188b1f9739227bbaa2fcd7d13..be67be93326fbdea1094f2cb9a899319d5e3b929 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/greencertificate/ui/certificates/CertificatesViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/greencertificate/ui/certificates/CertificatesViewModel.kt @@ -25,53 +25,56 @@ class CertificatesViewModel @AssistedInject constructor( val events = SingleLiveEvent<CertificatesFragmentEvents>() - // TODO: cards should be adjusted in the following PR val screenItems: LiveData<List<CertificatesItem>> = vaccinationRepository.vaccinationInfos.map { vaccinatedPersons -> mutableListOf<CertificatesItem>().apply { add(HeaderInfoVaccinationCard.Item) + addVaccinationCards(vaccinatedPersons) + add(BottomInfoVaccinationCard.Item) + } + }.asLiveData() - vaccinatedPersons.forEach { vaccinatedPerson -> - val card = when (vaccinatedPerson.getVaccinationStatus()) { - VaccinatedPerson.Status.COMPLETE, - VaccinatedPerson.Status.INCOMPLETE -> VaccinationCard.Item( - vaccinatedPerson = vaccinatedPerson, - onClickAction = { - events.postValue( - CertificatesFragmentEvents.GoToVaccinationList( - vaccinatedPerson.identifier.codeSHA256 - ) - ) - } - ) - VaccinatedPerson.Status.IMMUNITY -> ImmuneVaccinationCard.Item( - vaccinatedPerson = vaccinatedPerson, - onClickAction = { - events.postValue( - CertificatesFragmentEvents.GoToVaccinationList( - vaccinatedPerson.identifier.codeSHA256 - ) - ) - } + private fun MutableList<CertificatesItem>.addVaccinationCards(vaccinatedPersons: Set<VaccinatedPerson>) { + vaccinatedPersons.forEach { vaccinatedPerson -> + val card = when (vaccinatedPerson.getVaccinationStatus()) { + VaccinatedPerson.Status.COMPLETE, + VaccinatedPerson.Status.INCOMPLETE -> VaccinationCard.Item( + vaccinatedPerson = vaccinatedPerson, + onClickAction = { + events.postValue( + CertificatesFragmentEvents.GoToVaccinationList( + vaccinatedPerson.identifier.codeSHA256 + ) ) } - add(card) - } - - add( - CreateVaccinationCard.Item( - onClickAction = { - events.postValue( - CertificatesFragmentEvents.OpenVaccinationRegistrationGraph( - vaccinationSettings.registrationAcknowledged - ) + ) + VaccinatedPerson.Status.IMMUNITY -> ImmuneVaccinationCard.Item( + vaccinatedPerson = vaccinatedPerson, + onClickAction = { + events.postValue( + CertificatesFragmentEvents.GoToVaccinationList( + vaccinatedPerson.identifier.codeSHA256 ) - } - ) + ) + } ) - add(BottomInfoVaccinationCard.Item) } - }.asLiveData() + add(card) + } + if (vaccinatedPersons.isEmpty()) { + add( + CreateVaccinationCard.Item( + onClickAction = { + events.postValue( + CertificatesFragmentEvents.OpenVaccinationRegistrationGraph( + vaccinationSettings.registrationAcknowledged + ) + ) + } + ) + ) + } + } @AssistedFactory interface Factory : SimpleCWAViewModelFactory<CertificatesViewModel> diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/ImmuneVaccinationCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/ImmuneVaccinationCard.kt index f3bf89f9cefc467bd0020754fd60bc79de4e5a3a..8fe1b7018d717249f9cfd02e563bc58f1a36adb3 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/ImmuneVaccinationCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/ImmuneVaccinationCard.kt @@ -4,6 +4,7 @@ import android.view.ViewGroup import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.VaccinationHomeImmuneCardBinding import de.rki.coronawarnapp.greencertificate.ui.certificates.CertificatesAdapter +import de.rki.coronawarnapp.util.TimeAndDateExtensions.toDayFormat import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer import de.rki.coronawarnapp.vaccination.core.VaccinatedPerson @@ -24,6 +25,10 @@ class ImmuneVaccinationCard(parent: ViewGroup) : val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item personName.text = curItem.vaccinatedPerson.fullName + vaccinationState.text = context.getString( + R.string.vaccination_card_status_vaccination_complete, + curItem.vaccinatedPerson.getMostRecentVaccinationCertificate.expiresAt.toDayFormat() + ) itemView.setOnClickListener { curItem.onClickAction(item) } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/VaccinationCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/VaccinationCard.kt index 7377a6d5d25227896da653c6b120604208792889..bd2d4c7ad0021ee2da97ebd0ff40be370a353c6e 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/VaccinationCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/cards/VaccinationCard.kt @@ -32,11 +32,9 @@ class VaccinationCard(parent: ViewGroup) : 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) } diff --git a/Corona-Warn-App/src/main/res/drawable/ic_complete_vaccination_shield.xml b/Corona-Warn-App/src/main/res/drawable/ic_complete_vaccination_shield.xml new file mode 100644 index 0000000000000000000000000000000000000000..d37d51142b63f2025174d5a1b3e0392a1f76e606 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_complete_vaccination_shield.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="111dp" + android:height="189dp" + android:viewportWidth="111" + android:viewportHeight="189"> + <path + android:pathData="M75.5,0.75L0.5,28.875V85.969C0.5,133.312 32.469,177.469 75.5,188.25C118.531,177.469 150.5,133.312 150.5,85.969V28.875L75.5,0.75ZM131.75,85.969C131.75,123.469 107.844,158.156 75.5,168.75C43.156,158.156 19.25,123.562 19.25,85.969V41.156L75.5,21.281L131.75,41.156V85.969ZM45.688,81.281L32.375,94.5L65.563,127.688L118.625,74.625L105.406,61.406L65.656,101.156L45.688,81.281Z" + android:fillColor="#007FAD"/> +</vector> diff --git a/Corona-Warn-App/src/main/res/drawable/ic_half_white_half_gray_shield.xml b/Corona-Warn-App/src/main/res/drawable/ic_half_white_half_gray_shield.xml new file mode 100644 index 0000000000000000000000000000000000000000..a3cf8929fe0eac92776df2631481582e95bdaf91 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_half_white_half_gray_shield.xml @@ -0,0 +1,15 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="18dp" + android:height="22dp" + android:viewportWidth="18" + android:viewportHeight="22"> + <path + android:pathData="M7.1729,20.9509V2.4925V1.4556L16.5144,4.7739V11.8255L13.9897,17.6326L7.1729,20.9509Z" + android:fillColor="#616F7E"/> + <path + android:pathData="M9.0002,0L0.2002,3.3V9.999C0.2002,15.554 3.9512,20.735 9.0002,22C14.0492,20.735 17.8002,15.554 17.8002,9.999V3.3L9.0002,0ZM15.6002,9.999C15.6002,14.399 12.7952,18.469 9.0002,19.712C5.2052,18.469 2.4002,14.41 2.4002,9.999V4.829L9.0002,2.354L15.6002,4.829V9.999Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M9.0004,20.3417V2.2678V1.2524L1.4866,4.5017V11.4063L3.5173,17.0924L9.0004,20.3417Z" + android:fillColor="#ffffff"/> +</vector> diff --git a/Corona-Warn-App/src/main/res/drawable/ic_incomplete_vaccination_shield.xml b/Corona-Warn-App/src/main/res/drawable/ic_incomplete_vaccination_shield.xml new file mode 100644 index 0000000000000000000000000000000000000000..91692016cc895dee0ce5aff3c8d2918290074721 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_incomplete_vaccination_shield.xml @@ -0,0 +1,14 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="111dp" + android:height="188dp" + android:viewportWidth="111" + android:viewportHeight="188"> + <path + android:pathData="M75.7,0.75L0.8,28.837V85.855C0.8,133.136 32.726,177.233 75.7,188C118.674,177.233 150.6,133.136 150.6,85.855V28.837L75.7,0.75ZM131.875,85.855C131.875,123.305 108,157.946 75.7,168.526C43.399,157.946 19.525,123.399 19.525,85.855V41.851L75.7,20.786L131.875,41.851V85.855Z" + android:fillColor="#ffffff" + android:fillAlpha="0.05"/> + <path + android:pathData="M75.7,168.526V20.786L19.525,41.851V85.855C19.525,85.855 18,113 37.049,139.5C53.698,162.66 75.7,168.526 75.7,168.526Z" + android:fillColor="#ffffff" + android:fillAlpha="0.05"/> +</vector> diff --git a/Corona-Warn-App/src/main/res/drawable/ic_white_shield_with_checkmark.xml b/Corona-Warn-App/src/main/res/drawable/ic_white_shield_with_checkmark.xml new file mode 100644 index 0000000000000000000000000000000000000000..d6e0f2ac23a1d0171efc9810f6a5e55e0a2c831e --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_white_shield_with_checkmark.xml @@ -0,0 +1,12 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="18dp" + android:height="22dp" + android:viewportWidth="18" + android:viewportHeight="22"> + <path + android:pathData="M9,0L0,4V10C0,15.55 3.84,20.74 9,22C14.16,20.74 18,15.55 18,10V4L9,0Z" + android:fillColor="#ffffff"/> + <path + android:pathData="m5.141,10.1508 l-1.41,1.4968 4,4.2463 8,-8.4926 -1.41,-1.5074 -6.59,6.9958z" + android:fillColor="#007fad"/> +</vector> 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 deleted file mode 100644 index 29d4300db7f6465d9bbf75efd976043b3d8d1414..0000000000000000000000000000000000000000 --- a/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_complete.xml +++ /dev/null @@ -1,17 +0,0 @@ -<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.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"/> - <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="#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 deleted file mode 100644 index 47227abb719d617b587e8270164fbde8a3e9aaf8..0000000000000000000000000000000000000000 --- a/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_immune.xml +++ /dev/null @@ -1,17 +0,0 @@ -<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/drawable/vaccination_card_icon_incomplete.xml b/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_incomplete.xml deleted file mode 100644 index f51cc4182dc3e363ea51e1759488a01cf48f9831..0000000000000000000000000000000000000000 --- a/Corona-Warn-App/src/main/res/drawable/vaccination_card_icon_incomplete.xml +++ /dev/null @@ -1,20 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="78dp" - android:height="73dp" - android:viewportWidth="78" - android:viewportHeight="73"> - <path - android:pathData="M44.4167,0V4.3846H46.609V6.7139C42.1987,7.1507 38.2165,8.8463 34.9623,11.5096L33.3181,9.8654L34.8253,8.3582L31.7424,5.2752L25.5765,11.4411L28.6594,14.524L30.1667,13.0168L31.8109,14.6611C29.1476,17.9153 27.452,21.8974 27.0152,26.3077H24.6859V24.1154H20.3013V32.8846H24.6859V30.6923H27.0152C27.452,35.1369 29.1818,39.1447 31.8794,42.4075L30.1667,43.9832L28.6594,42.476L25.5765,45.5589L31.7424,51.7248L34.8253,48.6418L33.3181,47.1346L34.9623,45.4219C38.2251,48.1023 42.1901,49.8493 46.609,50.2861V52.6154H44.4167V57H53.1859V52.6154H50.9936V50.2861C55.4124,49.8493 59.3774,48.1023 62.6402,45.4219H62.7087L64.2844,47.1346L62.7772,48.6418L65.8602,51.7248L72.026,45.5589L68.9431,42.476L67.4359,43.9832L65.7231,42.4075C65.7274,42.3989 65.7253,42.386 65.7231,42.3732C65.721,42.3604 65.7189,42.3475 65.7231,42.3389C68.4036,39.0762 70.1506,35.1112 70.5873,30.6923H72.9166V32.8846H77.3013V24.1154H72.9166V26.3077H70.5873C70.1506,21.8974 68.455,17.9153 65.7916,14.6611L67.4359,13.0168L68.9431,14.524L72.026,11.4411L65.8602,5.2752L62.7772,8.3582L64.2844,9.8654L62.6402,11.5096C59.386,8.8463 55.4039,7.1507 50.9936,6.7139V4.3846H53.1859V0H44.4167ZM48.8017,10.9604C58.513,10.9604 66.3402,18.7876 66.3402,28.4989C66.3402,38.2101 58.513,46.0373 48.8017,46.0373C39.0905,46.0373 31.2633,38.2101 31.2633,28.4989C31.2633,18.7876 39.0905,10.9604 48.8017,10.9604ZM40.0318,18.9777C40.0318,17.1622 41.5047,15.6893 43.3202,15.6893C45.1357,15.6893 46.6087,17.1622 46.6087,18.9777C46.6087,20.7933 45.1357,22.2662 43.3202,22.2662C41.5047,22.2662 40.0318,20.7933 40.0318,18.9777ZM54.2822,15.6893C52.4667,15.6893 50.9938,17.1622 50.9938,18.9777C50.9938,20.7933 52.4667,22.2662 54.2822,22.2662C56.0977,22.2662 57.5707,20.7933 57.5707,18.9777C57.5707,17.1622 56.0977,15.6893 54.2822,15.6893ZM34.5513,28.499C34.5513,26.6834 36.0243,25.2105 37.8398,25.2105C39.6553,25.2105 41.1283,26.6834 41.1283,28.499C41.1283,30.3145 39.6553,31.7874 37.8398,31.7874C36.0243,31.7874 34.5513,30.3145 34.5513,28.499ZM48.8018,25.2105C46.9863,25.2105 45.5133,26.6834 45.5133,28.499C45.5133,30.3145 46.9863,31.7874 48.8018,31.7874C50.6173,31.7874 52.0902,30.3145 52.0902,28.499C52.0902,26.6834 50.6173,25.2105 48.8018,25.2105ZM56.474,28.499C56.474,26.6834 57.9469,25.2105 59.7624,25.2105C61.5779,25.2105 63.0509,26.6834 63.0509,28.499C63.0509,30.3145 61.5779,31.7874 59.7624,31.7874C57.9469,31.7874 56.474,30.3145 56.474,28.499ZM43.3202,34.7339C41.5047,34.7339 40.0318,36.2069 40.0318,38.0224C40.0318,39.8379 41.5047,41.3108 43.3202,41.3108C45.1357,41.3108 46.6087,39.8379 46.6087,38.0224C46.6087,36.2069 45.1357,34.7339 43.3202,34.7339ZM50.9938,38.0224C50.9938,36.2069 52.4667,34.7339 54.2822,34.7339C56.0977,34.7339 57.5707,36.2069 57.5707,38.0224C57.5707,39.8379 56.0977,41.3108 54.2822,41.3108C52.4667,41.3108 50.9938,39.8379 50.9938,38.0224Z" - android:fillColor="#ffffff" - android:fillAlpha="0.2" - android:fillType="evenOdd" /> - <path - android:pathData="M17.167,70V24.5532V22L40.167,30.1702V47.5319L33.9508,61.8298L17.167,70Z" - android:fillColor="#616F7E" /> - <path - android:pathData="M21.6667,18.4167L0,26.5417V43.0355C0,56.7126 9.2354,69.4688 21.6667,72.5834C34.0979,69.4688 43.3333,56.7126 43.3333,43.0355V26.5417L21.6667,18.4167ZM37.9167,43.0355C37.9167,53.8688 31.0104,63.8897 21.6667,66.9501C12.3229,63.8897 5.4167,53.8959 5.4167,43.0355V30.3063L21.6667,24.2126L37.9167,30.3063V43.0355Z" - android:fillColor="#ffffff" /> - <path - android:pathData="M21.667,68.5V24V21.5L3.167,29.5V46.5L8.167,60.5L21.667,68.5Z" - android:fillColor="#ffffff" /> -</vector> diff --git a/Corona-Warn-App/src/main/res/layout/vaccination_home_card.xml b/Corona-Warn-App/src/main/res/layout/vaccination_home_card.xml index 6b257338d0594edc84e27b44740d00190c9554df..8d6853daebc5542e665479f3d2284195825f1590 100644 --- a/Corona-Warn-App/src/main/res/layout/vaccination_home_card.xml +++ b/Corona-Warn-App/src/main/res/layout/vaccination_home_card.xml @@ -5,75 +5,75 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/vaccination_incomplete" - android:padding="@dimen/card_padding" + android:minHeight="200dp" tools:ignore="UnusedAttribute"> - - <ImageView - android:id="@+id/show_more_action" - android:layout_width="@dimen/icon_size_risk_card" - android:layout_height="@dimen/icon_size_risk_card" - android:importantForAccessibility="no" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_forward" - app:tint="@color/colorStableLight" /> - <ImageView android:id="@+id/icon" 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" - app:srcCompat="@drawable/vaccination_card_icon_incomplete" /> - + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/ic_incomplete_vaccination_shield" /> <TextView - android:id="@+id/card_title" - style="@style/body2" + android:id="@+id/title1" + style="@style/headline5" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="8dp" + android:layout_marginHorizontal="@dimen/card_padding" + android:layout_marginTop="@dimen/spacing_small" android:accessibilityHeading="true" android:focusable="false" - android:text="@string/vaccination_card_status_title" + android:text="@string/vaccination_card_registration_title_line_1" android:textColor="@color/colorTextPrimary1InvertedStable" - app:layout_constraintEnd_toStartOf="@id/show_more_action" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView - android:id="@+id/vaccination_label" - style="@style/headline5Bold" + android:id="@+id/title2" + style="@style/headline5" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="16dp" + android:layout_marginHorizontal="@dimen/card_padding" android:accessibilityHeading="true" android:focusable="false" - android:text="@string/vaccination_card_status_vaccination_name" + android:text="@string/vaccination_card_registration_title_line_2" android:textColor="@color/colorTextPrimary1InvertedStable" - app:layout_constraintEnd_toStartOf="@+id/icon" + android:textStyle="bold" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/card_title" /> + app:layout_constraintTop_toBottomOf="@id/title1" /> + + <ImageView + android:id="@+id/shield_icon" + android:layout_width="24dp" + android:layout_height="24dp" + android:layout_marginStart="@dimen/card_padding" + android:importantForAccessibility="no" + app:layout_constraintBottom_toBottomOf="@id/vaccination_state" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/vaccination_state" + app:srcCompat="@drawable/ic_half_white_half_gray_shield" /> <TextView android:id="@+id/vaccination_state" - style="@style/body1" + style="@style/body2" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:layout_marginEnd="16dp" + android:layout_marginStart="8dp" + android:layout_marginBottom="@dimen/spacing_normal" android:accessibilityHeading="true" android:focusable="false" android:text="@string/vaccination_card_status_vaccination_incomplete" android:textColor="@color/colorTextPrimary1InvertedStable" - app:layout_constraintBottom_toTopOf="@+id/person_name" - app:layout_constraintEnd_toStartOf="@+id/icon" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/vaccination_label" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/shield_icon" + app:layout_constraintTop_toBottomOf="@id/person_name" + app:layout_constraintVertical_bias="1" app:layout_constraintVertical_chainStyle="packed" /> <TextView @@ -81,16 +81,14 @@ style="@style/body1" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:layout_marginEnd="16dp" + android:layout_marginHorizontal="@dimen/card_padding" + android:layout_marginTop="@dimen/spacing_small" android:accessibilityHeading="true" android:focusable="false" android:textColor="@color/colorTextPrimary1InvertedStable" - android:visibility="gone" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/icon" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/vaccination_state" + app:layout_constraintTop_toBottomOf="@id/title2" 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_immune_card.xml b/Corona-Warn-App/src/main/res/layout/vaccination_home_immune_card.xml index 611102ebee2f729324ed8ab39c8e427abf2993de..8da269c8163145d38375e0e578e9fa33dde004b6 100644 --- a/Corona-Warn-App/src/main/res/layout/vaccination_home_immune_card.xml +++ b/Corona-Warn-App/src/main/res/layout/vaccination_home_immune_card.xml @@ -5,20 +5,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/vaccination_compelete_gradient" - android:padding="@dimen/card_padding" + android:minHeight="200dp" tools:ignore="UnusedAttribute"> - - <ImageView - android:id="@+id/show_more_action" - android:layout_width="@dimen/icon_size_risk_card" - android:layout_height="@dimen/icon_size_risk_card" - android:importantForAccessibility="no" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_forward" - app:tint="@color/colorStableLight" /> - <ImageView android:id="@+id/icon" android:layout_width="wrap_content" @@ -26,52 +15,80 @@ 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_immune" /> + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/ic_complete_vaccination_shield" /> <TextView - android:id="@+id/card_title" - style="@style/body2" + android:id="@+id/title1" + style="@style/headline5" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="8dp" + android:layout_marginHorizontal="@dimen/card_padding" + android:layout_marginTop="@dimen/spacing_small" android:accessibilityHeading="true" android:focusable="false" - android:text="@string/vaccination_card_status_title" + android:text="@string/vaccination_card_registration_title_line_1" android:textColor="@color/colorTextPrimary1InvertedStable" - app:layout_constraintEnd_toStartOf="@id/show_more_action" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView - android:id="@+id/vaccination_label" - style="@style/headline5Bold" + android:id="@+id/title2" + style="@style/headline5" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="16dp" + android:layout_marginHorizontal="@dimen/card_padding" android:accessibilityHeading="true" android:focusable="false" - android:text="@string/vaccination_card_status_vaccination_name" + android:text="@string/vaccination_card_registration_title_line_2" android:textColor="@color/colorTextPrimary1InvertedStable" - app:layout_constraintEnd_toStartOf="@+id/icon" + android:textStyle="bold" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/card_title" /> + app:layout_constraintTop_toBottomOf="@id/title1" /> + + <ImageView + android:id="@+id/shield_icon" + android:layout_width="24dp" + android:layout_height="24dp" + android:layout_marginStart="@dimen/card_padding" + android:importantForAccessibility="no" + app:layout_constraintBottom_toBottomOf="@id/vaccination_state" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/vaccination_state" + app:srcCompat="@drawable/ic_white_shield_with_checkmark" /> + + <TextView + android:id="@+id/vaccination_state" + style="@style/body2" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="8dp" + android:layout_marginBottom="@dimen/spacing_normal" + android:accessibilityHeading="true" + android:focusable="false" + android:textColor="@color/colorTextPrimary1InvertedStable" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/shield_icon" + app:layout_constraintTop_toBottomOf="@id/person_name" + app:layout_constraintVertical_bias="1" + app:layout_constraintVertical_chainStyle="packed" + tools:text="@string/vaccination_card_status_vaccination_complete" /> <TextView android:id="@+id/person_name" style="@style/body1" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:layout_marginEnd="16dp" + android:layout_marginHorizontal="@dimen/card_padding" + android:layout_marginTop="@dimen/spacing_small" android:accessibilityHeading="true" android:focusable="false" android:textColor="@color/colorTextPrimary1InvertedStable" - android:visibility="gone" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/icon" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/vaccination_label" + app:layout_constraintTop_toBottomOf="@id/title2" 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 e3dbe17b033fd3d75789f0335d08e9beb91a9368..073658eb88562ccd8179fb6d7d22387431636cd3 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 @@ -71,7 +71,9 @@ <!-- 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> + <string name="vaccination_card_status_title_line_1">"Digitaler"</string> + <!-- XHED: Homescreen vaccination status card title --> + <string name="vaccination_card_status_title_line_2">"Impfnachweis"</string> <!-- XHED: Homescreen vaccination status card vaccination name --> <string name="vaccination_card_status_vaccination_name">SARS-CoV-2 Impfschutz</string> <!-- XTXT: Homescreen card incomplete vaccination status label --> @@ -85,6 +87,8 @@ <item quantity="few">Vollständiger Impfschutz in %1$d Tagen</item> <item quantity="many">Vollständiger Impfschutz in %1$d Tagen</item> </plurals> + <!-- XTXT: Homescreen card complete vaccination status label --> + <string name="vaccination_card_status_vaccination_complete">"Gültig bis einschließlich %s"</string> <!-- XTXT: Vaccination QR code scan error message--> <string name="error_vc_invalid">Dieser QR-Code ist kein gültiges Impfzertifikat.</string> 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 1873bbeb814c56445218115637b75ea2ac0b1375..3623142425006fca0c9dc42f3d3afeb7644d7c95 100644 --- a/Corona-Warn-App/src/main/res/values/vaccination_strings.xml +++ b/Corona-Warn-App/src/main/res/values/vaccination_strings.xml @@ -74,6 +74,10 @@ <string name="vaccination_card_register">"Add"</string> <!-- XHED: Homescreen vaccination status card title --> <string name="vaccination_card_status_title">"Digital Proof of Vaccination"</string> + <!-- XHED: Homescreen vaccination status card title --> + <string name="vaccination_card_status_title_line_1">"Digitaler"</string> + <!-- XHED: Homescreen vaccination status card title --> + <string name="vaccination_card_status_title_line_2">"Impfnachweis"</string> <!-- XHED: Homescreen vaccination status card vaccination name --> <string name="vaccination_card_status_vaccination_name">"SARS-CoV-2 Vaccination"</string> <!-- XTXT: Homescreen card incomplete vaccination status label --> @@ -87,6 +91,8 @@ <item quantity="few">"Full vaccination protection in %1$d days"</item> <item quantity="many">"Full vaccination protection in %1$d days"</item> </plurals> + <!-- XTXT: Homescreen card complete vaccination status label --> + <string name="vaccination_card_status_vaccination_complete">"Gültig bis einschließlich %s"</string> <!-- XTXT: Vaccination QR code scan error message--> <string name="error_vc_invalid">"This QR code is not a valid vaccination certificate."</string>