252 lines
6.1 KiB
Dart
252 lines
6.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import "package:universal_html/html.dart" as html;
|
|
|
|
class MihTheme {
|
|
late int _mainColor;
|
|
late int _secondColor;
|
|
//late int _errColor;
|
|
//late int _succColor;
|
|
late int _mesColor;
|
|
late String mode;
|
|
late String screenType;
|
|
late AssetImage loading;
|
|
late String loadingAssetText;
|
|
late TargetPlatform platform;
|
|
bool kIsWeb = const bool.fromEnvironment('dart.library.js_util');
|
|
String latestVersion = "1.1.14";
|
|
// Options:-
|
|
// f3f9d2 = Cream
|
|
// f0f0c9 = cream2
|
|
// caffd0 = light green
|
|
// B0F2B4 = light grean 2 *
|
|
// 85bda6 = light green 3
|
|
// 70f8ba = green
|
|
// F7F3EA = white
|
|
// a63446 = red
|
|
//747474
|
|
|
|
MihTheme() {
|
|
mode = "Dark";
|
|
//_errColor = 0xffD87E8B;
|
|
//_succColor = 0xffB0F2B4;
|
|
//_mesColor = 0xffc8c8c8d9;
|
|
}
|
|
|
|
ThemeData getData() {
|
|
return ThemeData(
|
|
fontFamily: 'Segoe UI',
|
|
scaffoldBackgroundColor: primaryColor(),
|
|
// pageTransitionsTheme: PageTransitionsTheme(
|
|
// builders: Map<TargetPlatform, PageTransitionsBuilder>.fromIterable(
|
|
// TargetPlatform.values,
|
|
// value: (dynamic _) => const FadeUpwardsPageTransitionsBuilder(),
|
|
// ),
|
|
// ),
|
|
colorScheme: ColorScheme(
|
|
brightness: getBritness(),
|
|
primary: secondaryColor(),
|
|
onPrimary: primaryColor(),
|
|
secondary: primaryColor(),
|
|
onSecondary: secondaryColor(),
|
|
error: errorColor(),
|
|
onError: primaryColor(),
|
|
surface: primaryColor(),
|
|
onSurface: secondaryColor(),
|
|
),
|
|
datePickerTheme: DatePickerThemeData(
|
|
backgroundColor: primaryColor(),
|
|
headerBackgroundColor: secondaryColor(),
|
|
headerForegroundColor: primaryColor(),
|
|
),
|
|
appBarTheme: AppBarTheme(
|
|
color: secondaryColor(),
|
|
foregroundColor: primaryColor(),
|
|
titleTextStyle: TextStyle(
|
|
color: primaryColor(),
|
|
fontSize: 25,
|
|
fontWeight: FontWeight.bold,
|
|
),
|
|
),
|
|
floatingActionButtonTheme: FloatingActionButtonThemeData(
|
|
backgroundColor: secondaryColor(),
|
|
foregroundColor: primaryColor(),
|
|
extendedTextStyle: TextStyle(color: primaryColor()),
|
|
),
|
|
drawerTheme: DrawerThemeData(
|
|
backgroundColor: primaryColor(),
|
|
));
|
|
}
|
|
|
|
String getPlatform() {
|
|
// if (isPwa()) {
|
|
// if (platform == TargetPlatform.android) {
|
|
// return "Android";
|
|
// } else if (platform == TargetPlatform.iOS) {
|
|
// return "iOS";
|
|
// }
|
|
// } else
|
|
if (kIsWeb) {
|
|
return "Web";
|
|
} else if (!kIsWeb) {
|
|
if (platform == TargetPlatform.android) {
|
|
return "Android";
|
|
} else if (platform == TargetPlatform.iOS) {
|
|
return "iOS";
|
|
}
|
|
}
|
|
return "Other";
|
|
}
|
|
|
|
bool isPwa() {
|
|
return html.window.matchMedia('(display-mode: standalone)').matches;
|
|
}
|
|
|
|
void setMode(String m) {
|
|
mode;
|
|
}
|
|
|
|
String getLatestVersion() {
|
|
return latestVersion;
|
|
}
|
|
|
|
ThemeData getThemeData() {
|
|
return getData();
|
|
}
|
|
|
|
ThemeData darkMode() {
|
|
return getData();
|
|
}
|
|
|
|
ThemeData lightMode() {
|
|
return getData();
|
|
}
|
|
|
|
Brightness getBritness() {
|
|
if (mode == "Dark") {
|
|
return Brightness.dark;
|
|
} else {
|
|
return Brightness.light;
|
|
}
|
|
}
|
|
|
|
Color messageTextColor() {
|
|
if (mode == "Dark") {
|
|
_mesColor = 0XFFc8c8c8;
|
|
} else {
|
|
_mesColor = 0XFF747474;
|
|
}
|
|
return Color(_mesColor);
|
|
}
|
|
|
|
Color errorColor() {
|
|
if (mode == "Dark") {
|
|
return const Color(0xffD87E8B);
|
|
} else {
|
|
return const Color(0xffbb3d4f);
|
|
}
|
|
//return Color(_errColor);
|
|
}
|
|
|
|
Color highlightColor() {
|
|
if (mode == "Dark") {
|
|
return const Color(0XFF9bc7fa);
|
|
} else {
|
|
return const Color(0XFF354866);
|
|
}
|
|
}
|
|
|
|
Color successColor() {
|
|
if (mode == "Dark") {
|
|
return const Color(0xffB0F2B4);
|
|
} else {
|
|
return const Color(0xff56a95b);
|
|
}
|
|
}
|
|
|
|
AssetImage loadingImage() {
|
|
if (mode == "Dark") {
|
|
loading = const AssetImage(
|
|
'lib/mih_components/mih_package_components/assets/images/loading_light.gif',
|
|
);
|
|
} else {
|
|
loading = const AssetImage(
|
|
'lib/mih_components/mih_package_components/assets/images/loading_dark.gif',
|
|
);
|
|
}
|
|
return loading;
|
|
}
|
|
|
|
AssetImage altLoadingImage() {
|
|
if (mode == "Dark") {
|
|
loading = const AssetImage(
|
|
'lib/mih_components/mih_package_components/assets/images/loading_dark.gif',
|
|
);
|
|
} else {
|
|
loading = const AssetImage(
|
|
'lib/mih_components/mih_package_components/assets/images/loading_light.gif',
|
|
);
|
|
}
|
|
return loading;
|
|
}
|
|
|
|
String loadingImageLocation() {
|
|
if (mode == "Dark") {
|
|
loadingAssetText =
|
|
'lib/mih_components/mih_package_components/assets/images/loading_light.gif';
|
|
} else {
|
|
loadingAssetText =
|
|
'lib/mih_components/mih_package_components/assets/images/loading_dark.gif';
|
|
}
|
|
return loadingAssetText;
|
|
}
|
|
|
|
String altLoadingImageLocation() {
|
|
if (mode == "Dark") {
|
|
loadingAssetText =
|
|
'lib/mih_components/mih_package_components/assets/images/loading_dark.gif';
|
|
} else {
|
|
loadingAssetText =
|
|
'lib/mih_components/mih_package_components/assets/images/loading_light.gif';
|
|
}
|
|
return loadingAssetText;
|
|
}
|
|
|
|
AssetImage aiLogoImage() {
|
|
if (mode == "Dark") {
|
|
return const AssetImage(
|
|
'lib/mih_components/mih_package_components/assets/images/mzansi_ai-dark.png',
|
|
);
|
|
} else {
|
|
return const AssetImage(
|
|
'lib/mih_components/mih_package_components/assets/images/mzansi_ai-light.png',
|
|
);
|
|
}
|
|
}
|
|
|
|
void setScreenType(double width) {
|
|
if (width <= 800) {
|
|
screenType = "mobile";
|
|
} else {
|
|
screenType = "desktop";
|
|
}
|
|
}
|
|
|
|
Color primaryColor() {
|
|
if (mode == "Dark") {
|
|
_mainColor = 0XFF3A4454;
|
|
} else {
|
|
_mainColor = 0XFFbedcfe;
|
|
}
|
|
return Color(_mainColor);
|
|
}
|
|
|
|
Color secondaryColor() {
|
|
if (mode == "Dark") {
|
|
_secondColor = 0XFFbedcfe;
|
|
} else {
|
|
_secondColor = 0XFF3A4454;
|
|
}
|
|
return Color(_secondColor);
|
|
}
|
|
}
|