first commit
This commit is contained in:
20
lib/providers/background_sync_provider.dart
Normal file
20
lib/providers/background_sync_provider.dart
Normal file
@@ -0,0 +1,20 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../services/background_sync_service.dart';
|
||||
|
||||
// BackgroundSyncService Provider
|
||||
final backgroundSyncServiceProvider = Provider<BackgroundSyncService>((ref) {
|
||||
final service = BackgroundSyncService();
|
||||
|
||||
// 当 Provider 被销毁时,停止服务
|
||||
ref.onDispose(() {
|
||||
service.stop();
|
||||
});
|
||||
|
||||
return service;
|
||||
});
|
||||
|
||||
// 后台同步状态 Provider
|
||||
final backgroundSyncStatusProvider = StateProvider<bool>((ref) {
|
||||
return false;
|
||||
});
|
||||
|
||||
54
lib/providers/statistics_provider.dart
Normal file
54
lib/providers/statistics_provider.dart
Normal 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();
|
||||
});
|
||||
|
||||
20
lib/providers/time_tracking_provider.dart
Normal file
20
lib/providers/time_tracking_provider.dart
Normal file
@@ -0,0 +1,20 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../services/time_tracking_service.dart';
|
||||
|
||||
// TimeTrackingService Provider
|
||||
final timeTrackingServiceProvider = Provider<TimeTrackingService>((ref) {
|
||||
return TimeTrackingService();
|
||||
});
|
||||
|
||||
// 权限状态 Provider
|
||||
final permissionStatusProvider = FutureProvider<bool>((ref) async {
|
||||
final service = ref.read(timeTrackingServiceProvider);
|
||||
return await service.hasPermission();
|
||||
});
|
||||
|
||||
// 后台追踪状态 Provider
|
||||
final backgroundTrackingStatusProvider = FutureProvider<bool>((ref) async {
|
||||
final service = ref.read(timeTrackingServiceProvider);
|
||||
return await service.isBackgroundTrackingActive();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user