// lib/ui/screens/settings_screen.dart import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../l10n/gen/app_localizations.dart'; import '../../state/providers.dart'; class SettingsScreen extends ConsumerWidget { const SettingsScreen({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final l10n = AppLocalizations.of(context)!; final adsRemoved = ref.watch(adsRemovedProvider); final iap = ref.read(iapServiceProvider); ref.listen(adsRemovedProvider, (prev, next) { if (next && !(prev ?? false)) { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text(l10n.adsRemovedThanks)), ); } }); return Scaffold( appBar: AppBar(title: Text(l10n.settings)), body: ListView( padding: const EdgeInsets.all(16), children: [ ListTile( title: Text(l10n.removeAds), subtitle: Text(l10n.removeAdsDescription), trailing: adsRemoved ? const Icon(Icons.check_circle, color: Colors.green) : Text(iap.product?.price ?? ''), onTap: adsRemoved ? null : () async { if (!iap.available || iap.product == null) { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text(l10n.purchaseUnavailable)), ); return; } await iap.buyRemoveAds(); }, ), const Divider(), ListTile( leading: const Icon(Icons.restore), title: Text(l10n.restorePurchases), onTap: () => iap.restorePurchases(), ), ], ), ); } }