Files
vpn/lib/main.dart
2026-04-18 00:33:17 +03:00

69 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:quasar_jet/models/storage_model.dart';
import 'package:quasar_jet/quick_tile_dispatcher.dart' show quickTileDispatcher;
import 'package:quasar_jet/services/vpn_service.dart';
import 'package:quasar_jet/views/main_view.dart';
import 'package:quasar_jet/theme.dart';
@pragma('vm:entry-point')
void _keepQuickTileDispatcher() {
quickTileDispatcher;
}
@pragma('vm:entry-point')
Future<void> quickTileMain() async {
await quickTileDispatcher();
}
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
final model = StorageModel();
await model.init();
final vpnService = VpnService();
runApp(MyApp(model: model, vpnService: vpnService));
}
// ignore: must_be_immutable
class MyApp extends StatefulWidget {
MyApp({super.key, required this.model, required this.vpnService});
StorageModel model;
VpnService vpnService;
static _MyAppState of(BuildContext context) {
return context.findAncestorStateOfType<_MyAppState>()!;
}
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
ThemeMode _themeMode = ThemeMode.system;
void changeTheme(ThemeMode mode) {
setState(() {
_themeMode = mode;
});
}
@override
void dispose() {
widget.vpnService.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: AppTheme.light,
darkTheme: AppTheme.dark,
themeMode: _themeMode,
home: MainView(model: widget.model, vpnService: widget.vpnService),
);
}
}