import 'package:flutter/material.dart';
import '../../core/localization/app_localizations.dart';
import '../../services/offline_cache_service.dart';
import '../../services/analytics_service.dart';
class OfflineDownloadsPage extends StatefulWidget {
const OfflineDownloadsPage({super.key});
@override
State<OfflineDownloadsPage> createState() => _OfflineDownloadsPageState();
}
class _OfflineDownloadsPageState extends State<OfflineDownloadsPage> {
int? _entries;
@override
void initState() {
super.initState();
AnalyticsService.instance.screenView('offline_downloads');
_refresh();
}
Future<void> _refresh() async {
final value = await OfflineCacheService.entryCount();
if (mounted) setState(() => _entries = value);
}
@override
Widget build(BuildContext context) {
final l10n = AppLocalizations.of(context);
return Scaffold(
appBar: AppBar(title: Text(l10n.t('offlineDownloadsTitle'))),
body: ListView(
padding: const EdgeInsets.all(20),
children: [
ListTile(
contentPadding: EdgeInsets.zero,
leading:
const CircleAvatar(child: Icon(Icons.offline_pin_outlined)),
title: Text(l10n.t('offlineStoredContent')),
subtitle:
Text(l10n.tf('offlineStoredEntries', {'n': _entries ?? 0})),
),
const SizedBox(height: 12),
Text(l10n.t('offlineDownloadsNote')),
const SizedBox(height: 24),
OutlinedButton.icon(
onPressed: () async {
final messenger = ScaffoldMessenger.of(context);
await OfflineCacheService.clear();
await AnalyticsService.instance.track('offline_cache_clear');
await _refresh();
if (!context.mounted) return;
messenger.showSnackBar(
SnackBar(content: Text(l10n.t('offlineCacheCleared'))));
},
icon: const Icon(Icons.delete_outline_rounded),
label: Text(l10n.t('clearCache')),
),
],
),
);
}
}

