Files
vpn/lib/main.dart
2026-04-05 11:54:37 +03:00

56 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:vpn/models/storage_model.dart';
import 'package:vpn/services/vpn_service.dart';
import 'package:vpn/views/main_view.dart';
import 'package:vpn/theme.dart';
Future<void> main() async {
final model = StorageModel();
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),
);
}
}