diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/common/certificate/TravelNoticeView.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/common/certificate/TravelNoticeView.kt new file mode 100644 index 0000000000000000000000000000000000000000..9aecb83eea62d33176a58bb6cccce0a147bd3710 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/common/certificate/TravelNoticeView.kt @@ -0,0 +1,50 @@ +package de.rki.coronawarnapp.covidcertificate.common.certificate + +import android.widget.LinearLayout +import android.content.Context +import android.util.AttributeSet +import android.util.TypedValue +import android.view.LayoutInflater +import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.databinding.IncludeTravelNoticeCardBinding +import de.rki.coronawarnapp.util.setUrl + +class TravelNoticeView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + + private val binding: IncludeTravelNoticeCardBinding + + init { + LayoutInflater.from(context).inflate(R.layout.include_travel_notice_card, this, true) + + val outValue = TypedValue() + getContext().theme.resolveAttribute(android.R.attr.selectableItemBackground, outValue, true) + setBackgroundResource(outValue.resourceId) + binding = IncludeTravelNoticeCardBinding.bind(this) + + binding.apply { + if (travelNoticeGerman.text == + context.getString(R.string.green_certificate_attribute_certificate_travel_notice_german) + ) { + travelNoticeGerman.setUrl( + R.string.green_certificate_attribute_certificate_travel_notice_german, + R.string.green_certificate_travel_notice_link_de, + R.string.green_certificate_travel_notice_link_de + ) + } + + if (travelNoticeEnglish.text == + context.getString(R.string.green_certificate_attribute_certificate_travel_notice_english) + ) { + travelNoticeEnglish.setUrl( + R.string.green_certificate_attribute_certificate_travel_notice_english, + R.string.green_certificate_travel_notice_link_en, + R.string.green_certificate_travel_notice_link_en + ) + } + } + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/details/CovidCertificateDetailsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/details/CovidCertificateDetailsFragment.kt index 106156fd2131f3d70d49fc996d5a1a7b52b6e4ac..537948f0a4c0ac1dc75c6b5a75b87015c2e7fd66 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/details/CovidCertificateDetailsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/details/CovidCertificateDetailsFragment.kt @@ -21,7 +21,6 @@ import de.rki.coronawarnapp.util.TimeAndDateExtensions.toDateOfBirthFormat import de.rki.coronawarnapp.util.TimeAndDateExtensions.toShortDayFormat import de.rki.coronawarnapp.util.TimeAndDateExtensions.toShortTimeFormat import de.rki.coronawarnapp.util.di.AutoInject -import de.rki.coronawarnapp.util.setUrl import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBinding import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider @@ -49,7 +48,6 @@ class CovidCertificateDetailsFragment : Fragment(R.layout.fragment_covid_certifi subtitle.alpha = subtitleAlpha } - bindTravelNoticeViews() bindToolbar() setToolbarOverlay() @@ -104,28 +102,6 @@ class CovidCertificateDetailsFragment : Fragment(R.layout.fragment_covid_certifi } } - private fun FragmentCovidCertificateDetailsBinding.bindTravelNoticeViews() { - if (travelNoticeGerman.text == - getString(R.string.green_certificate_attribute_certificate_travel_notice_german) - ) { - travelNoticeGerman.setUrl( - R.string.green_certificate_attribute_certificate_travel_notice_german, - R.string.green_certificate_travel_notice_link_de, - R.string.green_certificate_travel_notice_link_de - ) - } - - if (travelNoticeEnglish.text == - getString(R.string.green_certificate_attribute_certificate_travel_notice_english) - ) { - travelNoticeEnglish.setUrl( - R.string.green_certificate_attribute_certificate_travel_notice_english, - R.string.green_certificate_travel_notice_link_en, - R.string.green_certificate_travel_notice_link_en - ) - } - } - private fun FragmentCovidCertificateDetailsBinding.bindToolbar() = toolbar.apply { setNavigationOnClickListener { popBackStack() } setOnMenuItemClickListener { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/ui/details/VaccinationDetailsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/ui/details/VaccinationDetailsFragment.kt index 8d3d519c5af1825e32be5cca6c9d0d15b23bcb04..f5231239a1c17b3fc10268302f62ecd772933424 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/ui/details/VaccinationDetailsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/ui/details/VaccinationDetailsFragment.kt @@ -18,7 +18,6 @@ import de.rki.coronawarnapp.ui.view.onOffsetChange import de.rki.coronawarnapp.util.DialogHelper import de.rki.coronawarnapp.util.TimeAndDateExtensions.toDateOfBirthFormat import de.rki.coronawarnapp.util.di.AutoInject -import de.rki.coronawarnapp.util.setUrl import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBinding import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider @@ -45,7 +44,6 @@ class VaccinationDetailsFragment : Fragment(R.layout.fragment_vaccination_detail with(binding) { toolbar.setNavigationOnClickListener { popBackStack() } - bindTravelNoticeViews() bindToolbar() viewModel.vaccinationCertificate.observe(viewLifecycleOwner) { @@ -121,28 +119,6 @@ class VaccinationDetailsFragment : Fragment(R.layout.fragment_vaccination_detail certificateId.text = certificate.certificateId } - private fun FragmentVaccinationDetailsBinding.bindTravelNoticeViews() { - if (travelNoticeGerman.text == - getString(R.string.vaccination_certificate_attribute_certificate_travel_notice_german) - ) { - travelNoticeGerman.setUrl( - R.string.vaccination_certificate_attribute_certificate_travel_notice_german, - R.string.vaccination_certificate_travel_notice_link_de, - R.string.vaccination_certificate_travel_notice_link_de - ) - } - - if (travelNoticeEnglish.text == - getString(R.string.green_certificate_attribute_certificate_travel_notice_english) - ) { - travelNoticeEnglish.setUrl( - R.string.green_certificate_attribute_certificate_travel_notice_english, - R.string.green_certificate_travel_notice_link_en, - R.string.green_certificate_travel_notice_link_en - ) - } - } - private fun setToolbarOverlay() { val width = requireContext().resources.displayMetrics.widthPixels diff --git a/Corona-Warn-App/src/main/res/layout/fragment_covid_certificate_details.xml b/Corona-Warn-App/src/main/res/layout/fragment_covid_certificate_details.xml index 6844063a349090ccb1ff1b1e26564993f0117ac3..23d5a4055a597a91c649656d43aff41f2f4c94e3 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_covid_certificate_details.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_covid_certificate_details.xml @@ -312,34 +312,13 @@ android:layout_height="wrap_content" android:layout_marginTop="4dp" tools:text="05930482748454836478695764787840" /> - </LinearLayout> - <LinearLayout - style="@style/Card.Vaccination" + <de.rki.coronawarnapp.covidcertificate.common.certificate.TravelNoticeView + android:id="@+id/travel_notice" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="8dp" - android:orientation="vertical" - android:padding="16dp"> - - <TextView - android:id="@+id/travel_notice_german" - style="@style/body2" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/vaccination_certificate_attribute_certificate_travel_notice_german" /> - - <TextView - android:id="@+id/travel_notice_english" - style="@style/body2" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="24dp" - android:text="@string/vaccination_certificate_attribute_certificate_travel_notice_english" /> - </LinearLayout> - + android:focusable="true" /> </LinearLayout> </androidx.core.widget.NestedScrollView> diff --git a/Corona-Warn-App/src/main/res/layout/fragment_vaccination_details.xml b/Corona-Warn-App/src/main/res/layout/fragment_vaccination_details.xml index dc7e72156129696bd110b024633a50587cf11763..7ddc462223fbe46cfb52645995f9d6586b6842bd 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_vaccination_details.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_vaccination_details.xml @@ -297,30 +297,11 @@ </LinearLayout> - <LinearLayout - style="@style/Card.Vaccination" + <de.rki.coronawarnapp.covidcertificate.common.certificate.TravelNoticeView + android:id="@+id/travel_notice" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="8dp" - android:orientation="vertical" - android:padding="16dp"> - - <TextView - android:id="@+id/travel_notice_german" - style="@style/body2" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/vaccination_certificate_attribute_certificate_travel_notice_german" /> - - <TextView - android:id="@+id/travel_notice_english" - style="@style/body2" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="24dp" - android:text="@string/vaccination_certificate_attribute_certificate_travel_notice_english" /> - </LinearLayout> + android:focusable="true" /> </LinearLayout> diff --git a/Corona-Warn-App/src/main/res/layout/include_travel_notice_card.xml b/Corona-Warn-App/src/main/res/layout/include_travel_notice_card.xml new file mode 100644 index 0000000000000000000000000000000000000000..0b531821958741e33a6607adfb9190c05e3f0a55 --- /dev/null +++ b/Corona-Warn-App/src/main/res/layout/include_travel_notice_card.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + style="@style/Card.GreenCertificate" + android:layout_marginHorizontal="24dp" + android:layout_marginTop="8dp" + android:orientation="vertical" + android:padding="16dp"> + + <TextView + android:id="@+id/travel_notice_german" + style="@style/body2" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/green_certificate_attribute_certificate_travel_notice_german" /> + + <TextView + android:id="@+id/travel_notice_english" + style="@style/body2" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/green_certificate_attribute_certificate_travel_notice_english" /> +</LinearLayout> \ No newline at end of file