tracpulse/lib/main.dart

64 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:traccar_client/main_screen.dart';
import 'package:traccar_client/permission_screen.dart';
import 'package:traccar_client/preferences.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Preferences.init();
// Keep status bar dark throughout the app
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(
statusBarColor: Color(0xFF0d0d0d),
statusBarIconBrightness: Brightness.light,
),
);
runApp(const TraccarClientApp());
}
class TraccarClientApp extends StatelessWidget {
const TraccarClientApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Traccar Client',
debugShowCheckedModeBanner: false,
theme: ThemeData(
useMaterial3: true,
brightness: Brightness.dark,
scaffoldBackgroundColor: const Color(0xFF0d0d0d),
colorScheme: const ColorScheme.dark(
surface: Color(0xFF0d0d0d),
primary: Color(0xFF00bcd4),
secondary: Color(0xFF00e676),
),
appBarTheme: const AppBarTheme(
centerTitle: true,
backgroundColor: Color(0xFF161616),
foregroundColor: Color(0xFFe0e0e0),
elevation: 0,
),
snackBarTheme: const SnackBarThemeData(
backgroundColor: Color(0xFF1a1a1a),
contentTextStyle: TextStyle(
fontFamily: 'monospace',
color: Color(0xFFe0e0e0),
),
),
pageTransitionsTheme: const PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
),
),
home: Preferences.permissionsGranted
? const MainScreen()
: const PermissionScreen(),
);
}
}