FluxWater/lib/main.dart

103 lines
3.2 KiB
Dart

// FluxWater:Monitor - Cozy Edition v2.1
// Updates: Added Message Screen with Dialogs
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:provider/provider.dart';
import 'services/flux_service.dart';
import 'widgets/cozy_home_frame.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Hive.initFlutter();
await Hive.openBox('fluxData');
await Hive.openBox('fluxSettings');
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.dark,
systemNavigationBarColor: Color(0xFFFFFBF0),
systemNavigationBarIconBrightness: Brightness.dark,
),
);
runApp(
MultiProvider(
providers: [ChangeNotifierProvider(create: (_) => FluxService())],
child: const FluxWaterApp(),
),
);
}
class FluxWaterApp extends StatelessWidget {
const FluxWaterApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'FluxWater:Monitor',
debugShowCheckedModeBanner: false,
theme: ThemeData(
useMaterial3: true,
brightness: Brightness.light,
scaffoldBackgroundColor: const Color(0xFFFFFBF0),
colorScheme: ColorScheme.fromSeed(
seedColor: const Color(0xFFAED581),
primary: const Color(0xFF81C784),
secondary: const Color(0xFFFFCC80),
surface: const Color(0xFFFFFFFF),
background: const Color(0xFFFFFBF0),
),
textTheme: GoogleFonts.nunitoTextTheme(Theme.of(context).textTheme)
.copyWith(
displayLarge: GoogleFonts.nunito(
fontWeight: FontWeight.w800,
color: const Color(0xFF5D4037),
),
titleLarge: GoogleFonts.nunito(
fontWeight: FontWeight.w700,
color: const Color(0xFF5D4037),
),
bodyLarge: GoogleFonts.quicksand(color: const Color(0xFF795548)),
bodyMedium: GoogleFonts.quicksand(color: const Color(0xFF795548)),
),
appBarTheme: const AppBarTheme(
backgroundColor: Colors.transparent,
elevation: 0,
centerTitle: true,
iconTheme: IconThemeData(color: Color(0xFF5D4037)),
titleTextStyle: TextStyle(
color: Color(0xFF5D4037),
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
cardTheme: CardThemeData(
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(24),
),
color: Colors.white,
),
dialogTheme: DialogThemeData(
backgroundColor: const Color(0xFFFFFBF0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(24),
),
titleTextStyle: GoogleFonts.nunito(
fontSize: 20,
fontWeight: FontWeight.bold,
color: const Color(0xFF5D4037),
),
),
),
home: const CozyHomeFrame(),
);
}
}