From 22723c7f71ba842d1b10421a2f9f274aa3e83ea7 Mon Sep 17 00:00:00 2001 From: Nils Reichardt Date: Tue, 23 Apr 2024 19:18:08 +0200 Subject: [PATCH] Add privacy policy and price to legal text (#1523) image This PR adds the price and privacy policy to the legal text in the hope that this fixes the rejection by Apple. --- .../lib/src/buy_section.dart | 46 ++++++++++++++----- .../lib/src/styled_markdown_text.dart | 5 ++ 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/buy_section.dart b/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/buy_section.dart index 6104431c1..47dad4b5b 100644 --- a/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/buy_section.dart +++ b/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/buy_section.dart @@ -110,7 +110,11 @@ class BuySection extends StatelessWidget { ), ], const SizedBox(height: 12), - _LegalText(period: currentPeriod), + _LegalText( + period: currentPeriod, + monthlyPrice: monthlyPrice, + lifetimePrice: lifetimePrice, + ), ], ), ); @@ -239,48 +243,66 @@ class _PeriodOption extends StatelessWidget { } class _LegalText extends StatelessWidget { - const _LegalText({required this.period}); + const _LegalText({ + required this.period, + required this.monthlyPrice, + required this.lifetimePrice, + }); final PurchasePeriod period; + final String? monthlyPrice; + final String? lifetimePrice; @override Widget build(BuildContext context) { return switch (period) { - PurchasePeriod.monthly => const _MonthlySubscriptionLegalText(), - PurchasePeriod.lifetime => const _LifetimeLegalText(), + PurchasePeriod.monthly => + _MonthlySubscriptionLegalText(price: monthlyPrice), + PurchasePeriod.lifetime => _LifetimeLegalText(price: lifetimePrice), }; } } const _termsOfServiceSentence = - 'Durch den Kauf bestätigst du, dass du die [ANBs](https://sharezone.net/terms-of-service) gelesen hast.'; + 'Durch den Kauf bestätigst du, dass du die [ANBs](https://sharezone.net/terms-of-service) gelesen hast. Wir verarbeiten deine Daten gemäß unserer [Datenschutzerklärung](https://sharezone.net/privacy-policy)'; class _LifetimeLegalText extends StatelessWidget { - const _LifetimeLegalText(); + const _LifetimeLegalText({ + required this.price, + }); + + final String? price; @override Widget build(BuildContext context) { - return const StyledMarkdownText( - text: 'Einmalige Zahlung (kein Abo o. ä.). $_termsOfServiceSentence', + final price = this.price ?? '...'; + return StyledMarkdownText( + text: + 'Einmalige Zahlung von $price (kein Abo o. ä.). $_termsOfServiceSentence', ); } } class _MonthlySubscriptionLegalText extends StatelessWidget { - const _MonthlySubscriptionLegalText(); + const _MonthlySubscriptionLegalText({ + required this.price, + }); + + final String? price; @override Widget build(BuildContext context) { final currentPlatform = PlatformCheck.currentPlatform; + final price = this.price ?? '...'; return StyledMarkdownText( text: switch (currentPlatform) { Platform.android => - 'Dein Abo ist monatlich kündbar. Es wird automatisch verlängert, wenn du es nicht mindestens 24 Stunden vor Ablauf der aktuellen Zahlungsperiode über Google Play kündigst. $_termsOfServiceSentence', + 'Dein Abo ($price/Monat) ist monatlich kündbar. Es wird automatisch verlängert, wenn du es nicht mindestens 24 Stunden vor Ablauf der aktuellen Zahlungsperiode über Google Play kündigst. $_termsOfServiceSentence', Platform.iOS || Platform.macOS => - 'Dein Abo ist monatlich kündbar. Es wird automatisch verlängert, wenn du es nicht mindestens 24 Stunden vor Ablauf der aktuellen Zahlungsperiode über den App Store kündigst. $_termsOfServiceSentence', + 'Dein Abo ($price/Monat) ist monatlich kündbar. Es wird automatisch verlängert, wenn du es nicht mindestens 24 Stunden vor Ablauf der aktuellen Zahlungsperiode über den App Store kündigst. $_termsOfServiceSentence', _ => - 'Dein Abo ist monatlich kündbar. Es wird automatisch verlängert, wenn du es nicht vor Ablauf der aktuellen Zahlungsperiode über die App kündigst. $_termsOfServiceSentence', + 'Dein Abo ($price/Monat) ist monatlich kündbar. Es wird automatisch verlängert, wenn du es nicht vor Ablauf der aktuellen Zahlungsperiode über die App kündigst. $_termsOfServiceSentence', }); } } diff --git a/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/styled_markdown_text.dart b/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/styled_markdown_text.dart index d0b74a477..6487acc2f 100644 --- a/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/styled_markdown_text.dart +++ b/lib/sharezone_plus/sharezone_plus_page_ui/lib/src/styled_markdown_text.dart @@ -39,6 +39,11 @@ class StyledMarkdownText extends StatelessWidget { return; } + if (href == 'https://sharezone.net/privacy-policy') { + Navigator.pushNamed(context, 'privacy-policy'); + return; + } + await launchUrl(Uri.parse(href)); }, );