Vaani/lib/framework.dart
2025-12-04 16:55:25 +08:00

33 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:vaani/features/downloads/providers/download_manager.dart';
import 'package:vaani/features/playback_reporting/providers/playback_reporter_provider.dart';
import 'package:vaani/features/shake_detector/shake_detector_provider.dart';
import 'package:vaani/features/skip_start_end/providers/skip_start_end_provider.dart';
import 'package:vaani/features/sleep_timer/providers/sleep_timer_provider.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/shared/utils/helper.dart';
import 'package:vaani/shared/widgets/tray_manager.dart';
class Framework extends ConsumerWidget {
final Widget child;
const Framework(this.child, {super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
// Eagerly initialize providers by watching them.
// By using "watch", the provider will stay alive and not be disposed.
try {
ref.watch(simpleDownloadManagerProvider);
if (Helper.isAndroid()) ref.watch(shakeDetectorProvider);
ref.watch(sleepTimerProvider);
ref.watch(skipStartEndProvider);
ref.watch(playbackReporterProvider);
} catch (e) {
debugPrintStack(stackTrace: StackTrace.current, label: e.toString());
appLogger.severe(e.toString());
}
if (Helper.isDesktop()) return TrayManager(child);
return child;
}
}