From e37d250800103aedbf7621e6ef857f94d69352ef Mon Sep 17 00:00:00 2001 From: Matthias Urhahn <matthias.urhahn@sap.com> Date: Thu, 29 Apr 2021 13:52:06 +0200 Subject: [PATCH] Vaccination skeleton classes. (#3010) --- .../test/menu/ui/TestMenuFragmentViewModel.kt | 2 + .../ui/main/MainActivityTestModule.kt | 4 ++ .../vaccination/ui/VaccinationTestFragment.kt | 29 +++++++++++++++ .../ui/VaccinationTestFragmentModule.kt | 18 +++++++++ .../ui/VaccinationTestFragmentViewModel.kt | 15 ++++++++ .../res/layout/fragment_test_vaccination.xml | 37 +++++++++++++++++++ .../res/navigation/test_nav_graph.xml | 12 +++++- .../ui/main/MainActivityModule.kt | 4 +- .../util/di/ApplicationComponent.kt | 2 + .../vaccination/core/ProofCertificate.kt | 8 ++++ .../vaccination/core/VaccinatedPerson.kt | 32 ++++++++++++++++ .../core/VaccinationCertificate.kt | 27 ++++++++++++++ .../vaccination/core/VaccinationModule.kt | 6 +++ .../qrcode/VaccinationCertificateQRCode.kt | 9 +++++ .../core/qrcode/VaccinationQRCodeValidator.kt | 12 ++++++ .../core/repository/VaccinationRepository.kt | 25 +++++++++++++ .../core/server/ProofCertificateServerData.kt | 3 ++ .../core/server/VaccinationProofServer.kt | 15 ++++++++ .../core/server/VaccinationServer.kt | 17 +++++++++ .../core/server/VaccinationValueSet.kt | 7 ++++ .../vaccination/ui/VaccinationUIModule.kt | 6 +++ .../res/navigation/vaccination_nav_graph.xml | 6 +++ 22 files changed, 293 insertions(+), 3 deletions(-) create mode 100644 Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragment.kt create mode 100644 Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentModule.kt create mode 100644 Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentViewModel.kt create mode 100644 Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_vaccination.xml create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/ProofCertificate.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationCertificate.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationCertificateQRCode.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationQRCodeValidator.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateServerData.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationProofServer.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServer.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationValueSet.kt create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/VaccinationUIModule.kt create mode 100644 Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentViewModel.kt index 5481b8257..e4ef69df2 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentViewModel.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentViewModel.kt @@ -21,6 +21,7 @@ import de.rki.coronawarnapp.test.tasks.ui.TestTaskControllerFragment import de.rki.coronawarnapp.util.ui.SingleLiveEvent import de.rki.coronawarnapp.util.viewmodel.CWAViewModel import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory +import de.rki.coronawarnapp.vaccination.ui.VaccinationTestFragment class TestMenuFragmentViewModel @AssistedInject constructor() : CWAViewModel() { @@ -41,6 +42,7 @@ class TestMenuFragmentViewModel @AssistedInject constructor() : CWAViewModel() { PresenceTracingTestFragment.MENU_ITEM, HomeTestCardsFragment.MENU_ITEM, CoronaTestTestFragment.MENU_ITEM, + VaccinationTestFragment.MENU_ITEM, ).let { MutableLiveData(it) } } val showTestScreenEvent = SingleLiveEvent<TestMenuItem>() diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt index 65aa2e652..169db0804 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt @@ -34,6 +34,7 @@ import de.rki.coronawarnapp.test.submission.ui.SubmissionTestFragment import de.rki.coronawarnapp.test.submission.ui.SubmissionTestFragmentModule import de.rki.coronawarnapp.test.tasks.ui.TestTaskControllerFragment import de.rki.coronawarnapp.test.tasks.ui.TestTaskControllerFragmentModule +import de.rki.coronawarnapp.vaccination.ui.VaccinationTestFragmentModule @Module abstract class MainActivityTestModule { @@ -85,4 +86,7 @@ abstract class MainActivityTestModule { @ContributesAndroidInjector(modules = [CoronaTestTestFragmentModule::class]) abstract fun coronaTest(): CoronaTestTestFragment + + @ContributesAndroidInjector(modules = [VaccinationTestFragmentModule::class]) + abstract fun vaccinationTest(): VaccinationTestFragmentModule } diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragment.kt new file mode 100644 index 000000000..5e9b68b66 --- /dev/null +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragment.kt @@ -0,0 +1,29 @@ +package de.rki.coronawarnapp.vaccination.ui + +import android.annotation.SuppressLint +import androidx.fragment.app.Fragment +import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.databinding.FragmentTestVaccinationBinding +import de.rki.coronawarnapp.test.menu.ui.TestMenuItem +import de.rki.coronawarnapp.util.di.AutoInject +import de.rki.coronawarnapp.util.ui.viewBindingLazy +import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider +import de.rki.coronawarnapp.util.viewmodel.cwaViewModels +import javax.inject.Inject + +@SuppressLint("SetTextI18n") +class VaccinationTestFragment : Fragment(R.layout.fragment_test_vaccination), AutoInject { + + @Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory + private val vm: VaccinationTestFragmentViewModel by cwaViewModels { viewModelFactory } + + private val binding: FragmentTestVaccinationBinding by viewBindingLazy() + + companion object { + val MENU_ITEM = TestMenuItem( + title = "Vaccination", + description = "View & Control vaccination related features.", + targetId = R.id.vaccinationTestFragment + ) + } +} diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentModule.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentModule.kt new file mode 100644 index 000000000..fb24039c6 --- /dev/null +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentModule.kt @@ -0,0 +1,18 @@ +package de.rki.coronawarnapp.vaccination.ui + +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 VaccinationTestFragmentModule { + @Binds + @IntoMap + @CWAViewModelKey(VaccinationTestFragmentViewModel::class) + abstract fun testVaccinationFragment( + factory: VaccinationTestFragmentViewModel.Factory + ): CWAViewModelFactory<out CWAViewModel> +} diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentViewModel.kt new file mode 100644 index 000000000..b9e4d4498 --- /dev/null +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/vaccination/ui/VaccinationTestFragmentViewModel.kt @@ -0,0 +1,15 @@ +package de.rki.coronawarnapp.vaccination.ui + +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import de.rki.coronawarnapp.util.coroutine.DispatcherProvider +import de.rki.coronawarnapp.util.viewmodel.CWAViewModel +import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory + +class VaccinationTestFragmentViewModel @AssistedInject constructor( + dispatcherProvider: DispatcherProvider, +) : CWAViewModel(dispatcherProvider = dispatcherProvider) { + + @AssistedFactory + interface Factory : SimpleCWAViewModelFactory<VaccinationTestFragmentViewModel> +} diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_vaccination.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_vaccination.xml new file mode 100644 index 000000000..f170270ef --- /dev/null +++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_vaccination.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> + +<androidx.core.widget.NestedScrollView 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:layout_width="match_parent" + android:layout_height="match_parent" + tools:ignore="HardcodedText"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_margin="8dp" + android:orientation="vertical" + android:paddingBottom="32dp"> + + <androidx.constraintlayout.widget.ConstraintLayout + style="@style/Card" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/spacing_tiny" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" + android:orientation="vertical"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Vaccinations" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + + </LinearLayout> +</androidx.core.widget.NestedScrollView> diff --git a/Corona-Warn-App/src/deviceForTesters/res/navigation/test_nav_graph.xml b/Corona-Warn-App/src/deviceForTesters/res/navigation/test_nav_graph.xml index fcb6ad236..ae905210d 100644 --- a/Corona-Warn-App/src/deviceForTesters/res/navigation/test_nav_graph.xml +++ b/Corona-Warn-App/src/deviceForTesters/res/navigation/test_nav_graph.xml @@ -55,6 +55,9 @@ <action android:id="@+id/action_test_menu_fragment_to_coronaTestTestFragment" app:destination="@id/coronaTestTestFragment" /> + <action + android:id="@+id/action_test_menu_fragment_to_vaccinationTestFragment" + app:destination="@id/vaccinationTestFragment" /> </fragment> <fragment @@ -160,6 +163,11 @@ <fragment android:id="@+id/coronaTestTestFragment" android:name="de.rki.coronawarnapp.test.coronatest.ui.CoronaTestTestFragment" - tools:layout="@layout/fragment_test_coronatest" - android:label="CoronaTestTestFragment" /> + android:label="CoronaTestTestFragment" + tools:layout="@layout/fragment_test_coronatest" /> + <fragment + android:id="@+id/vaccinationTestFragment" + android:name="de.rki.coronawarnapp.vaccination.ui.VaccinationTestFragment" + android:label="VaccinationTestFragment" + tools:layout="@layout/fragment_test_vaccination" /> </navigation> diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivityModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivityModule.kt index 30e1176b6..b81d1a5fc 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivityModule.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivityModule.kt @@ -9,13 +9,13 @@ import de.rki.coronawarnapp.release.NewReleaseInfoFragment import de.rki.coronawarnapp.release.NewReleaseInfoFragmentModule import de.rki.coronawarnapp.tracing.ui.details.TracingDetailsFragmentModule import de.rki.coronawarnapp.ui.coronatest.rat.profile.RATProfileUIModule -import de.rki.coronawarnapp.ui.presencetracing.PresenceTracingUIModule import de.rki.coronawarnapp.ui.information.InformationFragmentModule import de.rki.coronawarnapp.ui.interoperability.InteroperabilityConfigurationFragment import de.rki.coronawarnapp.ui.interoperability.InteroperabilityConfigurationFragmentModule import de.rki.coronawarnapp.ui.main.home.HomeFragmentModule import de.rki.coronawarnapp.ui.onboarding.OnboardingDeltaAnalyticsModule import de.rki.coronawarnapp.ui.onboarding.OnboardingDeltaInteroperabilityModule +import de.rki.coronawarnapp.ui.presencetracing.PresenceTracingUIModule import de.rki.coronawarnapp.ui.settings.SettingFragmentsModule import de.rki.coronawarnapp.ui.settings.SettingsResetFragment import de.rki.coronawarnapp.ui.settings.SettingsResetModule @@ -23,6 +23,7 @@ import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionFragmentModule import de.rki.coronawarnapp.util.viewmodel.CWAViewModel import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory import de.rki.coronawarnapp.util.viewmodel.CWAViewModelKey +import de.rki.coronawarnapp.vaccination.ui.VaccinationUIModule @Module( includes = [ @@ -37,6 +38,7 @@ import de.rki.coronawarnapp.util.viewmodel.CWAViewModelKey AnalyticsUIModule::class, PresenceTracingUIModule::class, RATProfileUIModule::class, + VaccinationUIModule::class, ] ) abstract class MainActivityModule { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/di/ApplicationComponent.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/di/ApplicationComponent.kt index 574ed5dbc..d66b60dcd 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/di/ApplicationComponent.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/di/ApplicationComponent.kt @@ -44,6 +44,7 @@ import de.rki.coronawarnapp.util.encryptionmigration.EncryptionErrorResetTool import de.rki.coronawarnapp.util.security.SecurityModule import de.rki.coronawarnapp.util.serialization.SerializationModule import de.rki.coronawarnapp.util.worker.WorkerBinder +import de.rki.coronawarnapp.vaccination.core.VaccinationModule import javax.inject.Singleton @Singleton @@ -78,6 +79,7 @@ import javax.inject.Singleton SecurityModule::class, PresenceTracingModule::class, CoronaTestModule::class, + VaccinationModule::class, ] ) interface ApplicationComponent : AndroidInjector<CoronaWarnApplication> { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/ProofCertificate.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/ProofCertificate.kt new file mode 100644 index 000000000..9db77d4b5 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/ProofCertificate.kt @@ -0,0 +1,8 @@ +package de.rki.coronawarnapp.vaccination.core + +import org.joda.time.Instant + +interface ProofCertificate { + + val expiresAt: Instant +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt new file mode 100644 index 000000000..24dc25d45 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt @@ -0,0 +1,32 @@ +package de.rki.coronawarnapp.vaccination.core + +import org.joda.time.Instant +import org.joda.time.LocalDate + +data class VaccinatedPerson( + val vaccinationCertificates: Set<VaccinationCertificate>, + val proofCertificates: Set<ProofCertificate>, + val isRefreshing: Boolean, + val lastUpdatedAt: Instant, +) { + val identifier: VaccinatedPersonIdentifier = "" + + val firstName: String + get() = "" + + val lastName: String + get() = "" + + val dateOfBirth: LocalDate + get() = LocalDate.now() + + val vaccinationStatus: Status + get() = Status.INCOMPLETE + + enum class Status { + INCOMPLETE, + COMPLETE + } +} + +typealias VaccinatedPersonIdentifier = String diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationCertificate.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationCertificate.kt new file mode 100644 index 000000000..e2c3580d3 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationCertificate.kt @@ -0,0 +1,27 @@ +package de.rki.coronawarnapp.vaccination.core + +import de.rki.coronawarnapp.ui.Country +import org.joda.time.Instant +import org.joda.time.LocalDate + +interface VaccinationCertificate { + + val firstName: String + val lastName: String + val dateOfBirth: LocalDate + + val vaccinatedAt: Instant + + val vaccinationName: String + val vaccinationManufacturer: String + + val chargeId: String + + val certificateIssuer: String + val certificateCountry: Country + + val certificateId: String + + val identifier: VaccinatedPersonIdentifier + get() = "" +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt new file mode 100644 index 000000000..a8347a192 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt @@ -0,0 +1,6 @@ +package de.rki.coronawarnapp.vaccination.core + +import dagger.Module + +@Module +class VaccinationModule diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationCertificateQRCode.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationCertificateQRCode.kt new file mode 100644 index 000000000..ad4ff24d6 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationCertificateQRCode.kt @@ -0,0 +1,9 @@ +package de.rki.coronawarnapp.vaccination.core.qrcode + +// TODO +data class VaccinationCertificateQRCode( + // Vaccine or prophylaxis + val vaccineNameId: String, + val vaccineMedicinalProduct: String, + val marketAuthorizationHolder: String, +) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationQRCodeValidator.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationQRCodeValidator.kt new file mode 100644 index 000000000..e3767500c --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/qrcode/VaccinationQRCodeValidator.kt @@ -0,0 +1,12 @@ +package de.rki.coronawarnapp.vaccination.core.qrcode + +import dagger.Reusable +import javax.inject.Inject + +@Reusable +class VaccinationQRCodeValidator @Inject constructor() { + + fun validate(raw: String): VaccinationCertificateQRCode { + throw NotImplementedError() + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt new file mode 100644 index 000000000..ba12dd14b --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt @@ -0,0 +1,25 @@ +package de.rki.coronawarnapp.vaccination.core.repository + +import de.rki.coronawarnapp.vaccination.core.VaccinatedPerson +import de.rki.coronawarnapp.vaccination.core.VaccinationCertificate +import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateQRCode +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.emptyFlow +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class VaccinationRepository @Inject constructor() { + + val vaccinationInfos: Flow<Set<VaccinatedPerson>> = emptyFlow() + + suspend fun registerVaccination( + qrCode: VaccinationCertificateQRCode + ): VaccinationCertificate { + throw NotImplementedError() + } + + fun clear() { + throw NotImplementedError() + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateServerData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateServerData.kt new file mode 100644 index 000000000..f298c3328 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateServerData.kt @@ -0,0 +1,3 @@ +package de.rki.coronawarnapp.vaccination.core.server + +interface ProofCertificateServerData diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationProofServer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationProofServer.kt new file mode 100644 index 000000000..8259e4855 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationProofServer.kt @@ -0,0 +1,15 @@ +package de.rki.coronawarnapp.vaccination.core.server + +import de.rki.coronawarnapp.vaccination.core.VaccinationCertificate + +/** + * Talks with IBM servers? + */ +class VaccinationProofServer { + + suspend fun getProofCertificate( + vaccinationCertificate: Set<VaccinationCertificate> + ): ProofCertificateServerData { + throw NotImplementedError() + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServer.kt new file mode 100644 index 000000000..4f2c5e9fc --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServer.kt @@ -0,0 +1,17 @@ +package de.rki.coronawarnapp.vaccination.core.server + +import java.util.Locale + +/** + * Talks with CWA servers + */ +class VaccinationServer { + suspend fun getVaccinationValueSets(languageCode: Locale): VaccinationValueSet { + throw NotImplementedError() + } + + fun clear() { + // Clear cache + throw NotImplementedError() + } +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationValueSet.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationValueSet.kt new file mode 100644 index 000000000..f8c9d6d92 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationValueSet.kt @@ -0,0 +1,7 @@ +package de.rki.coronawarnapp.vaccination.core.server + +import java.util.Locale + +interface VaccinationValueSet { + val languageCode: Locale +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/VaccinationUIModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/VaccinationUIModule.kt new file mode 100644 index 000000000..e98e08156 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/VaccinationUIModule.kt @@ -0,0 +1,6 @@ +package de.rki.coronawarnapp.vaccination.ui + +import dagger.Module + +@Module +class VaccinationUIModule diff --git a/Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml new file mode 100644 index 000000000..516c9387c --- /dev/null +++ b/Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<navigation xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/vaccination_nav_graph"> + + +</navigation> \ No newline at end of file -- GitLab