diff --git a/modules/core/src/main/java/de/deutschebahn/bahnhoflive/repository/AssetDocumentBroker.kt b/modules/core/src/main/java/de/deutschebahn/bahnhoflive/repository/AssetDocumentBroker.kt index 8312fe7d..cc47d2a0 100644 --- a/modules/core/src/main/java/de/deutschebahn/bahnhoflive/repository/AssetDocumentBroker.kt +++ b/modules/core/src/main/java/de/deutschebahn/bahnhoflive/repository/AssetDocumentBroker.kt @@ -18,7 +18,8 @@ class AssetDocumentBroker( ) { companion object { - const val FILE_NAME_LEGAL_NOTICE = "impressum.html" + const val FILE_NAME_LEGAL_NOTICE_EXPIRING = "impressum.html" + const val FILE_NAME_LEGAL_NOTICE_2024_01_01 = "impressum_2024-01-01.html" const val FILE_NAME_PRIVACY_POLICY_2023_08_15 = "datenschutz_2023-08-15.html" const val FILE_NAME_PRIVACY_POLICY_2024_01_01 = "datenschutz_2024-01-01.html" } @@ -27,7 +28,7 @@ class AssetDocumentBroker( private fun hasFile(fileName: String) = assets.list("")?.contains(fileName) == true - val hasLegalNotice get() = hasFile(FILE_NAME_LEGAL_NOTICE) + val hasLegalNotice get() = hasFile(getCurrentLegalNotice().assetFileName) val hasPrivacyPolicy get() = hasFile(getCurrentPrivacyPolicy().assetFileName) @@ -36,8 +37,11 @@ class AssetDocumentBroker( val trackingTag: String, val title: String ) { - LEGAL_NOTICE( - FILE_NAME_LEGAL_NOTICE, TrackingManager.Entity.IMPRESSUM, "Impressum" + LEGAL_NOTICE_EXPRIRING( + FILE_NAME_LEGAL_NOTICE_EXPIRING, TrackingManager.Entity.IMPRESSUM, "Impressum" + ), + LEGAL_NOTICE_UPCOMING( + FILE_NAME_LEGAL_NOTICE_2024_01_01, TrackingManager.Entity.IMPRESSUM, "Impressum" ), PRIVACY_POLICY_EXPIRING( FILE_NAME_PRIVACY_POLICY_2023_08_15, TrackingManager.Entity.DATENSCHUTZ, "Datenschutz" @@ -63,4 +67,9 @@ class AssetDocumentBroker( if (currentYear < 2024) Document.PRIVACY_POLICY_EXPIRING else Document.PRIVACY_POLICY_UPCOMING } + fun getCurrentLegalNotice() = + Calendar.getInstance(Locale.GERMANY).get(Calendar.YEAR).let { currentYear -> + if (currentYear < 2024) Document.LEGAL_NOTICE_EXPRIRING else Document.LEGAL_NOTICE_UPCOMING + } + } \ No newline at end of file diff --git a/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/consent/ConsentFragment.kt b/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/consent/ConsentFragment.kt index a04042c9..a63e65a8 100644 --- a/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/consent/ConsentFragment.kt +++ b/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/consent/ConsentFragment.kt @@ -21,13 +21,14 @@ class ConsentFragment : DialogFragment() { container: ViewGroup?, savedInstanceState: Bundle? ) = FragmentConsentBinding.inflate(inflater, container, false).apply { - val currentPrivacyPolicy = AssetDocumentBroker(requireContext()).getCurrentPrivacyPolicy() + + val assetDocumentBroker = AssetDocumentBroker(requireContext()) val onClickListener: (v: View) -> Unit = { startActivity( WebViewActivity.createIntent( context, - currentPrivacyPolicy.assetFileName, + assetDocumentBroker.getCurrentPrivacyPolicy().assetFileName, "Datenschutz" ) ) diff --git a/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/hub/HubFragment.kt b/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/hub/HubFragment.kt index 7cf0b75f..f3d8fd5b 100644 --- a/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/hub/HubFragment.kt +++ b/modules/core/src/main/java/de/deutschebahn/bahnhoflive/ui/hub/HubFragment.kt @@ -126,14 +126,14 @@ class HubFragment : androidx.fragment.app.Fragment() { with(AssetDocumentBroker(requireContext(), trackingManager)) { legalNotice.prepareLegalButton( hasLegalNotice, - AssetDocumentBroker.Document.LEGAL_NOTICE, + ::getCurrentLegalNotice, this ) privacyPolicy.prepareLegalButton( hasPrivacyPolicy, - getCurrentPrivacyPolicy(), + ::getCurrentPrivacyPolicy, this ) } @@ -169,12 +169,12 @@ class HubFragment : androidx.fragment.app.Fragment() { private fun TextView.prepareLegalButton( available: Boolean, - document: AssetDocumentBroker.Document, + documentProvider: () -> AssetDocumentBroker.Document, assetDocumentBroker: AssetDocumentBroker ) { if (available) { setOnClickListener { - assetDocumentBroker.showDocument(document) + assetDocumentBroker.showDocument(documentProvider()) } } else { visibility = View.GONE