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 index 9aecb83eea62d33176a58bb6cccce0a147bd3710..ae24fef7afd9493c852cbd12c2fff03bd7a56c1c 100644 --- 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 @@ -27,20 +27,20 @@ class TravelNoticeView @JvmOverloads constructor( binding.apply { if (travelNoticeGerman.text == - context.getString(R.string.green_certificate_attribute_certificate_travel_notice_german) + context.getString(R.string.covid_certificate_attribute_travel_notice_german) ) { travelNoticeGerman.setUrl( - R.string.green_certificate_attribute_certificate_travel_notice_german, + R.string.covid_certificate_attribute_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) + context.getString(R.string.covid_certificate_attribute_travel_notice_english) ) { travelNoticeEnglish.setUrl( - R.string.green_certificate_attribute_certificate_travel_notice_english, + R.string.covid_certificate_attribute_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/recovery/ui/RecoveryCertificateUIModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/RecoveryCertificateUIModule.kt index 18289e3a3d2f9f0f980983b03ade3e84b6999762..73c22fe5194c55e42bce856e8c76b839cea70950 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/RecoveryCertificateUIModule.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/RecoveryCertificateUIModule.kt @@ -1,6 +1,12 @@ package de.rki.coronawarnapp.covidcertificate.recovery.ui import dagger.Module +import dagger.android.ContributesAndroidInjector +import de.rki.coronawarnapp.covidcertificate.recovery.ui.details.RecoveryCertificateDetailsFragment +import de.rki.coronawarnapp.covidcertificate.recovery.ui.details.RecoveryCertificateDetailsModule @Module -abstract class RecoveryCertificateUIModule +abstract class RecoveryCertificateUIModule { + @ContributesAndroidInjector(modules = [RecoveryCertificateDetailsModule::class]) + abstract fun recoveryCertificateDetailsFragment(): RecoveryCertificateDetailsFragment +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..37153b2f13ef964d25b2f3e0ec7df5c7681e70fa --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsFragment.kt @@ -0,0 +1,113 @@ +package de.rki.coronawarnapp.covidcertificate.recovery.ui.details + +import android.graphics.Bitmap +import android.os.Bundle +import android.view.View +import android.widget.LinearLayout +import androidx.coordinatorlayout.widget.CoordinatorLayout +import androidx.fragment.app.Fragment +import androidx.navigation.fragment.FragmentNavigatorExtras +import androidx.navigation.fragment.findNavController +import com.google.android.material.appbar.AppBarLayout +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.bugreporting.ui.toErrorDialogBuilder +import de.rki.coronawarnapp.covidcertificate.recovery.core.RecoveryCertificate +import de.rki.coronawarnapp.databinding.FragmentRecoveryCertificateDetailsBinding +import de.rki.coronawarnapp.ui.qrcode.fullscreen.QrCodeFullScreenFragmentArgs +import de.rki.coronawarnapp.ui.view.onOffsetChange +import de.rki.coronawarnapp.util.di.AutoInject +import de.rki.coronawarnapp.util.ui.popBackStack +import de.rki.coronawarnapp.util.ui.viewBinding +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider +import de.rki.coronawarnapp.util.viewmodel.cwaViewModels +import javax.inject.Inject + +class RecoveryCertificateDetailsFragment : Fragment(R.layout.fragment_recovery_certificate_details), AutoInject { + + @Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory + private val binding by viewBinding<FragmentRecoveryCertificateDetailsBinding>() + private val viewModel: RecoveryCertificateDetailsViewModel by cwaViewModels { viewModelFactory } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) = with(binding) { + appBarLayout.onOffsetChange { titleAlpha, subtitleAlpha -> + title.alpha = titleAlpha + subtitle.alpha = subtitleAlpha + } + + bindToolbar() + setToolbarOverlay() + + viewModel.qrCode.observe(viewLifecycleOwner) { onQrCodeReady(it) } + viewModel.errors.observe(viewLifecycleOwner) { onError(it) } + viewModel.events.observe(viewLifecycleOwner) { onNavEvent(it) } + viewModel.recoveryCertificate.observe(viewLifecycleOwner) { it?.let { onCertificateReady(it) } } + } + + private fun FragmentRecoveryCertificateDetailsBinding.onCertificateReady( + recoveryCertificate: RecoveryCertificate + ) { + /* TODO */ + } + + private fun FragmentRecoveryCertificateDetailsBinding.onQrCodeReady(bitmap: Bitmap?) { + qrCodeCard.apply { + image.setImageBitmap(bitmap) + progressBar.hide() + bitmap?.let { image.setOnClickListener { viewModel.openFullScreen() } } + } + } + + private fun FragmentRecoveryCertificateDetailsBinding.onError(error: Throwable) { + qrCodeCard.progressBar.hide() + error.toErrorDialogBuilder(requireContext()).show() + } + + private fun FragmentRecoveryCertificateDetailsBinding.onNavEvent(event: RecoveryCertificateDetailsNavigation) { + when (event) { + RecoveryCertificateDetailsNavigation.Back -> popBackStack() + is RecoveryCertificateDetailsNavigation.FullQrCode -> findNavController().navigate( + R.id.action_global_qrCodeFullScreenFragment, + QrCodeFullScreenFragmentArgs(event.qrCodeText).toBundle(), + null, + FragmentNavigatorExtras(qrCodeCard.image to qrCodeCard.image.transitionName) + ) + } + } + + private fun FragmentRecoveryCertificateDetailsBinding.bindToolbar() = toolbar.apply { + setNavigationOnClickListener { popBackStack() } + setOnMenuItemClickListener { + when (it.itemId) { + R.id.menu_covid_certificate_delete -> { + showCertificateDeletionRequest() + true + } + else -> onOptionsItemSelected(it) + } + } + } + + private fun setToolbarOverlay() { + val width = requireContext().resources.displayMetrics.widthPixels + val params: CoordinatorLayout.LayoutParams = binding.scrollView.layoutParams as (CoordinatorLayout.LayoutParams) + + val textParams = binding.subtitle.layoutParams as (LinearLayout.LayoutParams) + textParams.bottomMargin = (width / 3) + 170 + binding.subtitle.requestLayout() + + val behavior: AppBarLayout.ScrollingViewBehavior = params.behavior as (AppBarLayout.ScrollingViewBehavior) + behavior.overlayTop = (width / 3) + 170 + } + + private fun showCertificateDeletionRequest() { + MaterialAlertDialogBuilder(requireContext()).apply { + setTitle(R.string.green_certificate_details_dialog_remove_test_title) + setMessage(R.string.green_certificate_details_dialog_remove_test_message) + setNegativeButton(R.string.green_certificate_details_dialog_remove_test_button_negative) { _, _ -> } + setPositiveButton(R.string.green_certificate_details_dialog_remove_test_button_positive) { _, _ -> + viewModel.onDeleteTestConfirmed() + } + }.show() + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsModule.kt new file mode 100644 index 0000000000000000000000000000000000000000..0b6458a20cedb56ea5e8cdd566eb19e6a272782b --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsModule.kt @@ -0,0 +1,19 @@ +package de.rki.coronawarnapp.covidcertificate.recovery.ui.details + +import dagger.Binds +import dagger.Module +import dagger.multibindings.IntoMap +import de.rki.coronawarnapp.util.viewmodel.CWAViewModel +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelKey + +@Module +abstract class RecoveryCertificateDetailsModule { + + @Binds + @IntoMap + @CWAViewModelKey(RecoveryCertificateDetailsViewModel::class) + abstract fun recoveryCertificateDetailsFragment( + factory: RecoveryCertificateDetailsViewModel.Factory + ): CWAViewModelFactory<out CWAViewModel> +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsNavigation.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsNavigation.kt new file mode 100644 index 0000000000000000000000000000000000000000..43f53dd4a070534304fbe996a804331468908a57 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsNavigation.kt @@ -0,0 +1,6 @@ +package de.rki.coronawarnapp.covidcertificate.recovery.ui.details + +sealed class RecoveryCertificateDetailsNavigation { + object Back : RecoveryCertificateDetailsNavigation() + data class FullQrCode(val qrCodeText: String) : RecoveryCertificateDetailsNavigation() +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsViewModel.kt new file mode 100644 index 0000000000000000000000000000000000000000..477e5f1b3f1506e5f4d8d4df7fb0528ea34c0a22 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/ui/details/RecoveryCertificateDetailsViewModel.kt @@ -0,0 +1,66 @@ +package de.rki.coronawarnapp.covidcertificate.recovery.ui.details + +import android.graphics.Bitmap +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.asLiveData +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import de.rki.coronawarnapp.covidcertificate.recovery.core.RecoveryCertificate +import de.rki.coronawarnapp.covidcertificate.recovery.core.RecoveryCertificateRepository +import de.rki.coronawarnapp.covidcertificate.recovery.core.storage.RecoveryCertificateIdentifier +import de.rki.coronawarnapp.presencetracing.checkins.qrcode.QrCodeGenerator +import de.rki.coronawarnapp.util.coroutine.DispatcherProvider +import de.rki.coronawarnapp.util.ui.SingleLiveEvent +import de.rki.coronawarnapp.util.viewmodel.CWAViewModel +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory +import kotlinx.coroutines.flow.map +import timber.log.Timber + +class RecoveryCertificateDetailsViewModel @AssistedInject constructor( + dispatcherProvider: DispatcherProvider, + @Assisted private val recoveryCertificateIdentifier: RecoveryCertificateIdentifier, + private val qrCodeGenerator: QrCodeGenerator, + private val recoveryCertificateRepository: RecoveryCertificateRepository +) : CWAViewModel(dispatcherProvider) { + + private var qrCodeText: String? = null + private val bitmapStateData = MutableLiveData<Bitmap>() + val qrCode: LiveData<Bitmap> = bitmapStateData + val events = SingleLiveEvent<RecoveryCertificateDetailsNavigation>() + val errors = SingleLiveEvent<Throwable>() + val recoveryCertificate = recoveryCertificateRepository.certificates.map { certificates -> + certificates.find { it.identifier == recoveryCertificateIdentifier }?.testCertificate + .also { generateQrCode(it) } + }.asLiveData(dispatcherProvider.Default) + + fun onClose() = events.postValue(RecoveryCertificateDetailsNavigation.Back) + + fun openFullScreen() = qrCodeText?.let { events.postValue(RecoveryCertificateDetailsNavigation.FullQrCode(it)) } + + fun onDeleteTestConfirmed() = launch { + Timber.d("Removing Recovery Certificate=$recoveryCertificateIdentifier") + recoveryCertificateRepository.deleteCertificate(recoveryCertificateIdentifier) + events.postValue(RecoveryCertificateDetailsNavigation.Back) + } + + private fun generateQrCode(recoveryCertificate: RecoveryCertificate?) = launch { + try { + bitmapStateData.postValue( + recoveryCertificate?.let { certificate -> + qrCodeGenerator.createQrCode(certificate.qrCode.also { qrCodeText = it }) + } + ) + } catch (e: Exception) { + Timber.d(e, "generateQrCode failed for covidCertificate=%s", recoveryCertificateIdentifier) + bitmapStateData.postValue(null) + errors.postValue(e) + } + } + + @AssistedFactory + interface Factory : CWAViewModelFactory<RecoveryCertificateDetailsViewModel> { + fun create(testCertificateIdentifier: RecoveryCertificateIdentifier): RecoveryCertificateDetailsViewModel + } +} diff --git a/Corona-Warn-App/src/main/res/layout/fragment_recovery_certificate_details.xml b/Corona-Warn-App/src/main/res/layout/fragment_recovery_certificate_details.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d225b53191170463e64c8b159c4f8ebef837c43 --- /dev/null +++ b/Corona-Warn-App/src/main/res/layout/fragment_recovery_certificate_details.xml @@ -0,0 +1,283 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/coordinator_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/trace_location_gradient_background" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <com.google.android.material.appbar.AppBarLayout + android:id="@+id/appBarLayout" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <com.google.android.material.appbar.CollapsingToolbarLayout + android:id="@+id/collapsing_toolbar_layout" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:nestedScrollingEnabled="true" + app:layout_scrollFlags="scroll|exitUntilCollapsed"> + + <ImageView + android:id="@+id/expandedImage" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:importantForAccessibility="no" + app:layout_collapseMode="parallax" + app:srcCompat="@drawable/certificate_complete_gradient" /> + + <ImageView + android:id="@+id/europa_image" + android:layout_width="match_parent" + android:layout_height="250dp" + android:importantForAccessibility="no" + android:layout_marginStart="50dp" + app:layout_collapseMode="parallax" + app:srcCompat="@drawable/ic_eu_stars_blue" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + app:layout_collapseMode="parallax"> + + <TextView + android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginHorizontal="24dp" + android:layout_marginTop="90dp" + android:layout_marginBottom="12dp" + android:gravity="center" + android:text="@string/recovery_certificate_details_title" + android:textColor="@android:color/white" + android:textSize="20sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/subtitle" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:layout_marginHorizontal="24dp" + android:layout_marginBottom="8dp" + android:gravity="center" + android:text="@string/recovery_certificate_details_subtitle" + android:textColor="@android:color/white" + android:textSize="18sp" /> + + </LinearLayout> + + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:theme="@style/Theme.MaterialComponents" + app:layout_collapseMode="pin" + app:layout_scrollFlags="scroll|enterAlways" + app:menu="@menu/menu_recovery_certificate_details" + app:navigationIcon="@drawable/ic_back" + app:navigationIconTint="@android:color/white" + app:popupTheme="@style/Theme.MaterialComponents.Light"> + + <LinearLayout + android:id="@+id/header_text_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:orientation="horizontal"> + + <ImageView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginEnd="32dp" + android:importantForAccessibility="no" + app:srcCompat="@drawable/ic_cwa_logo_white" /> + + </LinearLayout> + + </com.google.android.material.appbar.MaterialToolbar> + + </com.google.android.material.appbar.CollapsingToolbarLayout> + + </com.google.android.material.appbar.AppBarLayout> + + <androidx.core.widget.NestedScrollView + android:id="@+id/scroll_view" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginVertical="16dp" + android:orientation="vertical"> + + <include + android:id="@+id/qr_code_card" + layout="@layout/include_certificate_qrcode_card" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginHorizontal="24dp" + android:layout_marginBottom="6dp" /> + + <LinearLayout + style="@style/Card.GreenCertificate" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginHorizontal="24dp" + android:orientation="vertical" + android:padding="16dp"> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/covid_certificate_attribute_name" /> + + <TextView + android:id="@+id/name" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:text="Andrea Schneider" /> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/covid_certificate_attribute_date_of_birth" /> + + <TextView + android:id="@+id/date_of_birth" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="1943-02-23" /> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/recovery_certificate_attribute_recovered_from" /> + + <TextView + android:id="@+id/recovered_from_desease" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="COVID-19" /> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/recovery_certificate_attribute_first_positive_test_result" /> + + <TextView + android:id="@+id/date_of_first_positive_test_result" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="2021-05-23" /> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/test_certificate_attribute_state_of_testing" /> + + <TextView + android:id="@+id/certificate_country" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="Germany" /> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/covid_certificate_attribute_certificate_issuer" /> + + <TextView + android:id="@+id/certificate_issuer" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="G05930482748454836478695764787840" /> + + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/recovery_certificate_attribute_certificate_certification_period_start" /> + + <TextView + android:id="@+id/certification_period_start" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="2021-05-23" /> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/recovery_certificate_attribute_certificate_certification_period_end" /> + + <TextView + android:id="@+id/certification_period_end" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="2021-11-23" /> + + <TextView + style="@style/body1Medium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:text="@string/covid_certificate_attribute_certificate_id" /> + + <TextView + android:id="@+id/certificate_id" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="05930482748454836478695764787840" /> + + </LinearLayout> + + <de.rki.coronawarnapp.covidcertificate.common.certificate.TravelNoticeView + android:id="@+id/travel_notice" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:focusable="true" /> + + </LinearLayout> + + </androidx.core.widget.NestedScrollView> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/layout/fragment_test_certificate_details.xml b/Corona-Warn-App/src/main/res/layout/fragment_test_certificate_details.xml index 23d5a4055a597a91c649656d43aff41f2f4c94e3..47182a5ea83ee6eac471a414a87a86aafb73e4af 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_test_certificate_details.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_test_certificate_details.xml @@ -138,7 +138,7 @@ style="@style/body1Medium" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/green_certificate_attribute_name" /> + android:text="@string/covid_certificate_attribute_name" /> <TextView android:id="@+id/name" @@ -152,7 +152,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_dob" /> + android:text="@string/covid_certificate_attribute_date_of_birth" /> <TextView android:id="@+id/birth_date" @@ -167,7 +167,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_disease" /> + android:text="@string/covid_certificate_attribute_disease_type" /> <TextView android:id="@+id/disease_type" @@ -182,7 +182,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_test_type" /> + android:text="@string/test_certificate_attribute_test_type" /> <TextView android:id="@+id/test_type" @@ -197,7 +197,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_test_name" /> + android:text="@string/test_certificate_attribute_test_name" /> <TextView android:id="@+id/test_name" @@ -212,7 +212,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_test_manufacturer" /> + android:text="@string/test_certificate_attribute_test_manufacturer" /> <TextView android:id="@+id/test_manufacturer" @@ -227,7 +227,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_test_date" /> + android:text="@string/test_certificate_attribute_test_date" /> <TextView android:id="@+id/test_date" @@ -242,7 +242,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_test_result" /> + android:text="@string/test_certificate_attribute_test_result" /> <TextView android:id="@+id/test_result" @@ -257,7 +257,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_test_center" /> + android:text="@string/test_certificate_attribute_test_center" /> <TextView android:id="@+id/test_center" @@ -272,7 +272,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_state_of_testing" /> + android:text="@string/test_certificate_attribute_state_of_testing" /> <TextView android:id="@+id/certificate_country" @@ -287,7 +287,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_certificate_issuer" /> + android:text="@string/covid_certificate_attribute_certificate_issuer" /> <TextView android:id="@+id/certificate_issuer" @@ -303,7 +303,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_certificate_id" /> + android:text="@string/covid_certificate_attribute_certificate_id" /> <TextView android:id="@+id/certificate_id" 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 7ddc462223fbe46cfb52645995f9d6586b6842bd..d77ef5d2250c81d5721fe169dc879f6838f1011f 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 @@ -136,7 +136,7 @@ style="@style/body1Medium" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/vaccination_certificate_attribute_name" /> + android:text="@string/covid_certificate_attribute_name" /> <TextView android:id="@+id/name" @@ -150,7 +150,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/vaccination_certificate_attribute_date_of_birth" /> + android:text="@string/covid_certificate_attribute_date_of_birth" /> <TextView android:id="@+id/date_of_birth" @@ -165,7 +165,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/vaccination_certificate_attribute_disease_type" /> + android:text="@string/covid_certificate_attribute_disease_type" /> <TextView android:id="@+id/disease_type" @@ -270,7 +270,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/vaccination_certificate_attribute_certificate_issuer" /> + android:text="@string/covid_certificate_attribute_certificate_issuer" /> <TextView android:id="@+id/certificate_issuer" @@ -285,7 +285,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/vaccination_certificate_attribute_certificate_id" /> + android:text="@string/covid_certificate_attribute_certificate_id" /> <TextView android:id="@+id/certificate_id" 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 index 0b531821958741e33a6607adfb9190c05e3f0a55..70445e0f1ae721d7ac085c4cd795e5ac024d0a20 100644 --- 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 @@ -13,7 +13,7 @@ style="@style/body2" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/green_certificate_attribute_certificate_travel_notice_german" /> + android:text="@string/covid_certificate_attribute_travel_notice_german" /> <TextView android:id="@+id/travel_notice_english" @@ -21,5 +21,5 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" - android:text="@string/green_certificate_attribute_certificate_travel_notice_english" /> + android:text="@string/covid_certificate_attribute_travel_notice_english" /> </LinearLayout> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/menu/menu_recovery_certificate_details.xml b/Corona-Warn-App/src/main/res/menu/menu_recovery_certificate_details.xml new file mode 100644 index 0000000000000000000000000000000000000000..40fb7b02e46273cc3d553f9dd47a8fec57af1298 --- /dev/null +++ b/Corona-Warn-App/src/main/res/menu/menu_recovery_certificate_details.xml @@ -0,0 +1,5 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:id="@+id/menu_recovery_certificate_delete" + android:title="@string/green_certificate_details_menu_item_delete" /> +</menu> diff --git a/Corona-Warn-App/src/main/res/values/covid_certificate_attribute_strings.xml b/Corona-Warn-App/src/main/res/values/covid_certificate_attribute_strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..98a30fe03e7d00a51b977de62013b1c4d4499200 --- /dev/null +++ b/Corona-Warn-App/src/main/res/values/covid_certificate_attribute_strings.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <!-- #################################### + Special string files for the strings + that should always keep the german / english + version independent from the selected system language + ###################################### --> + + <!-- ##################################################### + COMMON STRINGS FOR ALL TYPES OF CERTIFICATES BELOW + ##################################################### --> + + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Name --> + <string name="covid_certificate_attribute_name" translatable="false">"Name, Vorname / Name, First Name"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Date of Birth --> + <string name="covid_certificate_attribute_date_of_birth" translatable="false">"Geburtsdatum / Date of Birth (YYYY-MM-DD)"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Target Disease --> + <string name="covid_certificate_attribute_disease_type" translatable="false">"Zielkrankheit oder -erreger / Disease or Agent Targeted"</string> + <!-- XTXT: Green Certificate Detail Screen Attribute: Certificate Issuer --> + <string name="covid_certificate_attribute_certificate_issuer" translatable="false">"Zertifikataussteller / Certificate Issuer"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Certification Id --> + <string name="covid_certificate_attribute_certificate_id" translatable="false">"Zertifikatkennung / Unique Certificate Identifier"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Travel Notice German --> + <string name="covid_certificate_attribute_travel_notice_german" translatable="false">"Diese Bescheinigung ist kein Reisedokument. Die wissenschaftlichen Erkenntnisse zu COVID-19 in den Bereichen Impfung, Testung und Genesung entwickeln sich fortlaufend weiter, auch im Hinblick auf neue besorgniserregende Virusvarianten. Bitte informieren Sie sich vor Reiseantritt über die am Zielort geltenden Gesundheitsmaßnahmen und entsprechenden Beschränkungen. Informationen über die in den jeweiligen EU-Ländern geltenden Einreisebestimmungen finden Sie unter https://reopen.europa.eu/de."</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Travel Notice English --> + <string name="covid_certificate_attribute_travel_notice_english" translatable="false">"This certificate is not a travel document. The scientific evidence on COVID-19 vaccination, testing, and recovery continues to evolve, also in view of new variants of concern of the virus. Before traveling, please check the applicable public health measures and related restrictions applied at the point of destination. Information on the current travel restrictions that apply to EU countries is available at https://reopen.europa.eu/en."</string> + + + <!-- ##################################################### + VACCINATION CERTIFICATE STRINGS BELOW + ##################################################### --> + + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccine --> + <string name="vaccination_certificate_attribute_vaccine_name" translatable="false">"Impfstoff / Vaccine"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccination Type --> + <string name="vaccination_certificate_attribute_vaccine_type" translatable="false">"Art des Impfstoffs / Vaccine Type"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Manufacturer --> + <string name="vaccination_certificate_attribute_manufacturer" translatable="false">"Hersteller / Manufacturer"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccination Number --> + <string name="vaccination_certificate_attribute_vaccination_number" translatable="false">"Nummer der Impfung / Number in a series of vaccinations"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccination Date --> + <string name="vaccination_certificate_attribute_vaccination_date" translatable="false">"Datum der Impfung / Date of vaccination (YYYY-MM-DD)"</string> + <!-- XTXT: Vaccination Certificate Detail Screen Attribute: State of Vaccination --> + <string name="vaccination_certificate_attribute_certificate_country" translatable="false">"Land der Impfung / Member State of Vaccination"</string> + <!-- XTXT: Vaccination Details Vaccination Dose Number--> + <string name="vaccination_certificate_attribute_dose_number" translatable="false">"%1$d of %2$d"</string> + + + <!-- ##################################################### + RECOVERY CERTIFICATE STRINGS BELOW + ##################################################### --> + + <!-- XTXT: Recovery Certificate Detail Screen Attribute: Recovered From Desease --> + <string name="recovery_certificate_attribute_recovered_from" translatable="false">"Genesen von / Recovered from"</string> + <!-- XTXT: Recovery Certificate Detail Screen Attribute: First Positive Test Result --> + <string name="recovery_certificate_attribute_first_positive_test_result" translatable="false">"Datum des ersten positiven Testergebnisses / Date of first positive test result (YYYY-MM-DD)"</string> + <!-- XTXT: Recovery Certificate Detail Screen Attribute: Member State of Test --> + <string name="recovery_certificate_attribute_state_of_testing" translatable="false">"Land der Testung / Member State of Test"</string> + <!-- XTXT: Recovery Certificate Detail Screen Attribute: Start of Certification Period --> + <string name="recovery_certificate_attribute_certificate_certification_period_start" translatable="false">"Zertifikat gültig ab / Certificate valid from (YYYY-MM-DD)"</string> + <!-- XTXT: Recovery Certificate Detail Screen Attribute: End of Certification Period --> + <string name="recovery_certificate_attribute_certificate_certification_period_end" translatable="false">"Zertifikat gültig bis / Certificate valid until (YYYY-MM-DD)"</string> + + + <!-- ##################################################### + TEST CERTIFICATE STRINGS BELOW + ##################################################### --> + + <!-- XTXT: Green Certificate Detail Screen Attribute: Test Type --> + <string name="test_certificate_attribute_test_type" translatable="false">"Art des Tests / Type of Test"</string> + <!-- XTXT: Green Certificate Detail Screen Attribute: Test Name --> + <string name="test_certificate_attribute_test_name" translatable="false">"Produktname / Test Name"</string> + <!-- XTXT: Green Certificate Detail Screen Attribute: Test Manufacturer --> + <string name="test_certificate_attribute_test_manufacturer" translatable="false">"Testhersteller / Test Manufacturer"</string> + <!-- XTXT: Green Certificate Detail Screen Attribute: Test Date --> + <string name="test_certificate_attribute_test_date" translatable="false">"Datum und Uhrzeit der Probenahme / Date and Time of Sample Collection"</string> + <!-- XTXT: Green Certificate Detail Screen Attribute: Result of the Test --> + <string name="test_certificate_attribute_test_result" translatable="false">"Testergebnis / Result of the Test"</string> + <!-- XTXT: Green Certificate Detail Screen Attribute: Testing Center or Facility --> + <string name="test_certificate_attribute_test_center" translatable="false">"Testzentrum oder -einrichtung / Testing Center or Facility"</string> + <!-- XTXT: Green Certificate Detail Screen Attribute: Member State of Test --> + <string name="test_certificate_attribute_state_of_testing" translatable="false">"Land der Testung / Member State of Test"</string> + + +</resources> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml b/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml index a39fbd586393f2a584c2984a0251f141ef559c4c..51010c522b85c0155057d9ee5a3989eb68fb0a19 100644 --- a/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml +++ b/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml @@ -31,4 +31,10 @@ <string name="vaccination_consent_onboarding_legal_information">"Ausführliche Informationen zur Datenverarbeitung finden Sie in der Datenschutzerklärung."</string> <!-- XBUT: Text for vaccination consent accept button --> <string name="vaccination_consent_accept_button">"Weiter"</string> + + <!-- XTXT: Recovery certificate detail title --> + <string name="recovery_certificate_details_title">"Genesenenzertifikat"</string> + <!-- XTXT: Recovery certificate detail subtitle --> + <string name="recovery_certificate_details_subtitle">"EU Digitales COVID-Zertifikat"</string> + </resources> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/values/green_certificate_attribute_strings.xml b/Corona-Warn-App/src/main/res/values/green_certificate_attribute_strings.xml deleted file mode 100644 index 97061edf82bca7596eb2cceb9b44db8599dabcb5..0000000000000000000000000000000000000000 --- a/Corona-Warn-App/src/main/res/values/green_certificate_attribute_strings.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources xmlns:tools="http://schemas.android.com/tools" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" tools:ignore="MissingTranslation"> - <!-- #################################### - Special string files for the strings - that should always keep the german / english - version independent from the selected system language - ###################################### --> - <!-- XTXT: Green Certificate Detail Screen Attribute: Name --> - <string name="green_certificate_attribute_name" translatable="false">"Name, Vorname / Name, First Name"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Date of Birth --> - <string name="green_certificate_attribute_dob" translatable="false">"Geburtsdatum / Date of Birth"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Disease --> - <string name="green_certificate_attribute_disease" translatable="false">"Zielkrankheit bzw. -erreger / Disease or Agent Targeted"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Test Type --> - <string name="green_certificate_attribute_test_type" translatable="false">"Art des Tests / Type of Test"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Test Name --> - <string name="green_certificate_attribute_test_name" translatable="false">"Produktname / Test Name"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Test Manufacturer --> - <string name="green_certificate_attribute_test_manufacturer" translatable="false">"Testhersteller / Test Manufacturer"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Test Date --> - <string name="green_certificate_attribute_test_date" translatable="false">"Datum und Uhrzeit der Probenahme / Date and Time of Sample Collection"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Result of the Test --> - <string name="green_certificate_attribute_test_result" translatable="false">"Testergebnis / Result of the Test"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Testing Center or Facility --> - <string name="green_certificate_attribute_test_center" translatable="false">"Testzentrum oder -einrichtung / Testing Center or Facility"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Member State of Test --> - <string name="green_certificate_attribute_state_of_testing" translatable="false">"Land der Testung / Member State of Test"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Certificate Issuer --> - <string name="green_certificate_attribute_certificate_issuer" translatable="false">"Zertifikataussteller / Certificate Issuer"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Unique Certificate Identifier --> - <string name="green_certificate_attribute_certificate_id" translatable="false">"Zertifikatkennung / Unique Certificate Identifier"</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Travel Notice German --> - <string name="green_certificate_attribute_certificate_travel_notice_german" translatable="false">"Diese Bescheinigung ist kein Reisedokument. Die wissenschaftlichen Erkenntnisse zu COVID-19 in den Bereichen Impfung, Testung und Genesung entwickeln sich fortlaufend weiter, auch im Hinblick auf neue besorgniserregende Virusvarianten. Bitte informieren Sie sich vor Reiseantritt über die am Zielort geltenden Gesundheitsmaßnahmen und entsprechenden Beschränkungen. Informationen über die in den jeweiligen EU-Ländern geltenden Einreisebestimmungen finden Sie unter https://reopen.europa.eu/de."</string> - <!-- XTXT: Green Certificate Detail Screen Attribute: Travel Notice English --> - <string name="green_certificate_attribute_certificate_travel_notice_english" translatable="false">"This certificate is not a travel document. The scientific evidence on COVID-19 vaccination, testing, and recovery continues to evolve, also in view of new variants of concern of the virus. Before traveling, please check the applicable public health measures and related restrictions applied at the point of destination. Information on the current travel restrictions that apply to EU countries is available at https://reopen.europa.eu/en."</string> - -</resources> diff --git a/Corona-Warn-App/src/main/res/values/vaccination_attribute_strings.xml b/Corona-Warn-App/src/main/res/values/vaccination_attribute_strings.xml deleted file mode 100644 index 2464a2d71639412a3eca1906c732a003a74ef714..0000000000000000000000000000000000000000 --- a/Corona-Warn-App/src/main/res/values/vaccination_attribute_strings.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Name --> - <string name="vaccination_certificate_attribute_name" translatable="false">"Name, Vorname / Name, First Name"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Date of Birth --> - <string name="vaccination_certificate_attribute_date_of_birth" translatable="false">"Geburtsdatum / Date of Birth (YYYY-MM-DD)"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Target Disease --> - <string name="vaccination_certificate_attribute_disease_type" translatable="false">"Zielkrankheit oder -erreger / Disease or Agent Targeted"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccine --> - <string name="vaccination_certificate_attribute_vaccine_name" translatable="false">"Impfstoff / Vaccine"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccination Type --> - <string name="vaccination_certificate_attribute_vaccine_type" translatable="false">"Art des Impfstoffs / Vaccine Type"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Manufacturer --> - <string name="vaccination_certificate_attribute_manufacturer" translatable="false">"Hersteller / Manufacturer"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccination Number --> - <string name="vaccination_certificate_attribute_vaccination_number" translatable="false">"Nummer der Impfung / Number in a series of vaccinations"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Vaccination Date --> - <string name="vaccination_certificate_attribute_vaccination_date" translatable="false">"Datum der Impfung / Date of vaccination (YYYY-MM-DD)"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: State of Vaccination --> - <string name="vaccination_certificate_attribute_certificate_country" translatable="false">"Land der Impfung / Member State of Vaccination"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Certification Issuer --> - <string name="vaccination_certificate_attribute_certificate_issuer" translatable="false">"Zertifikataussteller / Certificate Issuer"</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Certification Id --> - <string name="vaccination_certificate_attribute_certificate_id" translatable="false">"Zertifikatkennung / Unique Certificate Identifier"</string> - - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Travel Notice German --> - <string name="vaccination_certificate_attribute_certificate_travel_notice_german" translatable="false">"Diese Bescheinigung ist kein Reisedokument. Die wissenschaftlichen Erkenntnisse zu COVID-19 in den Bereichen Impfung, Testung und Genesung entwickeln sich fortlaufend weiter, auch im Hinblick auf neue besorgniserregende Virusvarianten. Bitte informieren Sie sich vor Reiseantritt über die am Zielort geltenden Gesundheitsmaßnahmen und entsprechenden Beschränkungen. Informationen über die in den jeweiligen EU-Ländern geltenden Einreisebestimmungen finden Sie unter https://reopen.europa.eu/de."</string> - <!-- XTXT: Vaccination Certificate Detail Screen Attribute: Travel Notice English --> - <string name="vaccination_certificate_attribute_certificate_travel_notice_english" translatable="false">"This certificate is not a travel document. The scientific evidence on COVID-19 vaccination, testing, and recovery continues to evolve, also in view of new variants of concern of the virus. Before traveling, please check the applicable public health measures and related restrictions applied at the point of destination. Information on the current travel restrictions that apply to EU countries is available at https://reopen.europa.eu/en."</string> -</resources> \ No newline at end of file diff --git a/translation_v2.json b/translation_v2.json index 8b057cc8a4715d603074d6d2d30d869676ba8315..a4aa4591c5f490ba82c5b55c0ff6012b82b93e48 100644 --- a/translation_v2.json +++ b/translation_v2.json @@ -13,7 +13,6 @@ "antigen_strings.xml", "vaccination_strings.xml", "green_certificate_strings.xml", - "green_certificate_attribute_strings.xml", "covid_certificate_strings.xml" ], "targetFolderPath": "../values-[langCode]"