first commit

This commit is contained in:
ytc1012
2025-11-13 15:45:28 +08:00
commit 6b321890c0
54 changed files with 8412 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../models/daily_stats.dart';
import '../models/app_usage.dart';
import '../services/statistics_service.dart';
// StatisticsService Provider
final statisticsServiceProvider = Provider<StatisticsService>((ref) {
return StatisticsService();
});
// 今日统计 Provider
final todayStatsProvider = FutureProvider<DailyStats>((ref) async {
final service = ref.read(statisticsServiceProvider);
return await service.getTodayStats();
});
// 本周统计 Provider
final weekStatsProvider = FutureProvider<List<DailyStats>>((ref) async {
final service = ref.read(statisticsServiceProvider);
return await service.getWeekStats();
});
// 本月统计 Provider
final monthStatsProvider = FutureProvider<List<DailyStats>>((ref) async {
final service = ref.read(statisticsServiceProvider);
return await service.getMonthStats();
});
// 今日统计列表 Provider用于日视图只返回今日数据
final todayStatsListProvider = FutureProvider<List<DailyStats>>((ref) async {
final service = ref.read(statisticsServiceProvider);
final todayStats = await service.getTodayStats();
return [todayStats];
});
// 今日 Top 应用 Provider
final todayTopAppsProvider = FutureProvider<List<AppUsage>>((ref) async {
final service = ref.read(statisticsServiceProvider);
final now = DateTime.now();
final startOfDay = DateTime(now.year, now.month, now.day);
final endOfDay = startOfDay.add(const Duration(days: 1));
return await service.getTopApps(
startTime: startOfDay,
endTime: endOfDay,
limit: 5,
);
});
// 刷新今日统计 Provider
final refreshTodayStatsProvider = FutureProvider.family<DailyStats, void>((ref, _) async {
final service = ref.read(statisticsServiceProvider);
return await service.refreshTodayStats();
});