Auto-sync: 20260429_160000

This commit is contained in:
Paolo 2026-04-29 16:00:03 +02:00
parent 997adafb8d
commit 1ae7671495
2 changed files with 9 additions and 8 deletions

View file

@ -13,7 +13,7 @@ class PaywallScreen extends StatefulWidget {
}
class _PaywallScreenState extends State<PaywallScreen> with SingleTickerProviderStateMixin {
Package? _yearlyPackage;
Package? _monthlyPackage;
bool _isLoading = true;
bool _isPurchasing = false;
late AnimationController _animationController;
@ -32,8 +32,8 @@ class _PaywallScreenState extends State<PaywallScreen> 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<PaywallScreen> with SingleTickerProvider
}
Future<void> _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<PaywallScreen> 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<PaywallScreen> 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,
),

View file

@ -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.