forked from yaso_meth/mih-project
91 lines
2.3 KiB
Dart
91 lines
2.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/scheduler.dart';
|
|
import '../mih_env/env.dart';
|
|
import '../mih_router/routeGenerator.dart';
|
|
import '../mih_theme/mih_theme.dart';
|
|
|
|
class MzanziInnovationHub extends StatefulWidget {
|
|
const MzanziInnovationHub({
|
|
super.key,
|
|
});
|
|
|
|
@override
|
|
State<MzanziInnovationHub> createState() => _MzanziInnovationHubState();
|
|
|
|
// ignore: library_private_types_in_public_api
|
|
static _MzanziInnovationHubState? of(BuildContext context) =>
|
|
context.findAncestorStateOfType<_MzanziInnovationHubState>();
|
|
}
|
|
|
|
class _MzanziInnovationHubState extends State<MzanziInnovationHub> {
|
|
late ThemeMode _themeMode;
|
|
late MihTheme theme;
|
|
|
|
Color getPrimany() {
|
|
return theme.primaryColor();
|
|
}
|
|
|
|
String getTitle() {
|
|
if (AppEnviroment.getEnv() == "Dev") {
|
|
return "Mzansi Innovation Hub - Dev";
|
|
} else {
|
|
return "Mzansi Innovation Hub";
|
|
}
|
|
}
|
|
|
|
void changeTheme(ThemeMode themeMode) {
|
|
setState(() {
|
|
_themeMode = themeMode;
|
|
if (_themeMode == ThemeMode.light) {
|
|
setState(() {
|
|
theme.mode = "Light";
|
|
});
|
|
} else if (_themeMode == ThemeMode.dark) {
|
|
setState(() {
|
|
theme.mode = "Dark";
|
|
});
|
|
} else {
|
|
setState(() {
|
|
theme.mode = "Dark";
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
@override
|
|
void initState() {
|
|
var systemTheme =
|
|
SchedulerBinding.instance.platformDispatcher.platformBrightness;
|
|
bool isDarkMode = systemTheme == Brightness.dark;
|
|
if (isDarkMode) {
|
|
theme.mode = "Dark";
|
|
_themeMode = ThemeMode.dark;
|
|
} else {
|
|
theme.mode = "Light";
|
|
_themeMode = ThemeMode.light;
|
|
}
|
|
theme = MihTheme();
|
|
theme.platform = Theme.of(context).platform;
|
|
super.initState();
|
|
//doInit();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
double width = MediaQuery.sizeOf(context).width;
|
|
theme.setScreenType(width);
|
|
precacheImage(theme.loadingImage(), context);
|
|
precacheImage(theme.logoImage(), context);
|
|
precacheImage(theme.logoFrame(), context);
|
|
return MaterialApp(
|
|
title: getTitle(),
|
|
themeMode: _themeMode,
|
|
theme: theme.getThemeData(),
|
|
darkTheme: theme.getThemeData(),
|
|
debugShowCheckedModeBanner: false,
|
|
initialRoute: '/',
|
|
onGenerateRoute: RouteGenerator.generateRoute,
|
|
);
|
|
}
|
|
}
|