From 1ae7671495c515e2ad5c67b9cdc994d1e500c0a7 Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 29 Apr 2026 16:00:03 +0200 Subject: [PATCH] Auto-sync: 20260429_160000 --- lib/screens/paywall_screen.dart | 14 +++++++------- memory-bank/change-log.md | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/screens/paywall_screen.dart b/lib/screens/paywall_screen.dart index c0bab5b..8f55bc2 100644 --- a/lib/screens/paywall_screen.dart +++ b/lib/screens/paywall_screen.dart @@ -13,7 +13,7 @@ class PaywallScreen extends StatefulWidget { } class _PaywallScreenState extends State with SingleTickerProviderStateMixin { - Package? _yearlyPackage; + Package? _monthlyPackage; bool _isLoading = true; bool _isPurchasing = false; late AnimationController _animationController; @@ -32,8 +32,8 @@ class _PaywallScreenState extends State with SingleTickerProvider final offerings = await SubscriptionService.fetchOfferings(); if (offerings != null && offerings.current != null) { setState(() { - // Cerchiamo il pacchetto annuale - _yearlyPackage = offerings.current!.annual; + // Cerchiamo il pacchetto mensile + _monthlyPackage = offerings.current!.monthly; _isLoading = false; }); } else { @@ -44,12 +44,12 @@ class _PaywallScreenState extends State with SingleTickerProvider } Future _buyPackage() async { - if (_yearlyPackage == null) return; + if (_monthlyPackage == null) return; setState(() { _isPurchasing = true; }); - final success = await SubscriptionService.purchasePackage(_yearlyPackage!); + final success = await SubscriptionService.purchasePackage(_monthlyPackage!); if (mounted) { setState(() { @@ -215,7 +215,7 @@ class _PaywallScreenState extends State with SingleTickerProvider // Bottone Acquisto if (_isLoading) const CircularProgressIndicator(color: Colors.white) - else if (_yearlyPackage != null) + else if (_monthlyPackage != null) Padding( padding: const EdgeInsets.symmetric(horizontal: 30), child: ElevatedButton( @@ -237,7 +237,7 @@ class _PaywallScreenState extends State with SingleTickerProvider child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), ) : Text( - 'Passa a PRO - ${_yearlyPackage!.storeProduct.priceString} / anno', + 'Sblocca per 1 mese - ${_monthlyPackage!.storeProduct.priceString}', style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), diff --git a/memory-bank/change-log.md b/memory-bank/change-log.md index 70157ab..897fb6f 100644 --- a/memory-bank/change-log.md +++ b/memory-bank/change-log.md @@ -3,7 +3,8 @@ - **2026-04-28**: Modificato il campo "Telefono / Email" in due campi separati in `comp_6-7.dart` (Contraente) e `comp_9.dart` (Conducente) con implementazione Regex per formati internazionali ed email. Aggiornata logica `pdf_engine.dart` per stampare la stringa concatenata nel PDF e aggiornato il salvataggio locale `profilo_service.dart`. **Eseguito e validato test end-to-end** (`full_flow_test.dart`) verificando l'autocompilazione delle email, il bypass OTP e la generazione integra del file PDF. - **2026-04-28**: Risolti i bug del Paywall: aggiunto `SingleChildScrollView` per evitare il "bottom overflow" su schermi piccoli (es. iOS) e rimosso l'escape errato dell'interpolazione stringhe che nascondeva il prezzo (`\${_yearlyPackage...}`). - **2026-04-28**: Separata l'inizializzazione dell'SDK RevenueCat (`subscription_service.dart`) in due chiavi API distinte per piattaforma: una per iOS (`appl_dIdoPn...`) configurata con il certificato P8 di App Store Connect, e una per Android (`goog_DsVh...`). -- **2026-04-29**: Avviata fase di debug per la visibilità dei pacchetti su Android ("Pacchetti non disponibili"). Analisi dei requisiti Google Play Console (Track di test interno, Entitlements RevenueCat, e Product ID). +- **2026-04-29**: Modificato il Paywall (`paywall_screen.dart`) per abbandonare il modello ad "Abbonamento Ricorrente". Sostituito con un modello "Una-Tantum/Prepagato" da 1 mese (0,99€). Aggiornata la UI del bottone in "Sblocca per 1 mese - [prezzo]" per riflettere un pagamento singolo non rinnovabile. +- **2026-04-29**: Avviata fase di debug per la visibilità dei pacchetti su Android ("Pacchetti non disponibili"). Analisi dei requisiti Google Play Console (Track di test interno, Entitlements RevenueCat, e Product ID). Caricata la release `1.0.8 (7)` sul Play Console interno per sbloccare la creazione abbonamenti. - **2026-04-28**: Implementata Autocompilazione (Ricorda i miei dati). Creato `ProfiloService` con persistenza locale via `shared_preferences`. Aggiunto popup "Vuoi usare i dati salvati?" su `comp_6-7.dart` e workflow "silenzioso" su `comp_9.dart`. - **2026-04-24**: Implementazione In-App Purchases (RevenueCat) con aggiunta del plugin `purchases_flutter`. Creato `SubscriptionService`, aggiunto campo `isPro` in `GlobalData`, e costruito il Paywall Custom (Glassmorphism) per bloccare la funzionalità "Scambio Dati" agli utenti non paganti. - **2026-04-24**: Sostituiti tutti i metodi deprecati `.withOpacity(...)` con `.withValues(alpha: ...)` in 12 file dell'app, rimuovendo 36 avvisi dal compilatore Dart.