commit 170825 daham Rechner

This commit is contained in:
2025-08-17 21:28:59 +02:00
parent 503f66756e
commit 3df1be39a8
24 changed files with 1273 additions and 22 deletions

View File

@@ -3,7 +3,9 @@ import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:window_manager/window_manager.dart';
import './extensions/http_overrides.dart';
/// A utility class for initializing the Flutter application.
///
@@ -19,10 +21,15 @@ class AppInitializer {
_ensureInitialized();
await _setupWindowDimensions();
await _setupDeviceOrientation();
//dotENV initial
await dotenv.load(fileName: '.env');
//Overrides initial
HttpOverrides.global = MyHttpOverrides();
}
/// Ensures that Flutter bindings are initialized.
static _ensureInitialized() {
WidgetsFlutterBinding.ensureInitialized();
}

View File

@@ -0,0 +1,29 @@
import 'package:flutter/material.dart';
var kTextStyle = TextStyle(fontSize: 20, color: Colors.grey.shade100);
var kTextStyleSub = TextStyle(fontSize: 16, color: Colors.grey.shade400);
var kColorEuroChart = Colors.red.shade500;
var kColorBenzinChart = Colors.yellow.shade500;
var kColorPerLiterChart = Colors.blueGrey.shade300;
var kChartDescriptionFontStyle = TextStyle(
color: Colors.grey.shade900,
fontWeight: FontWeight.bold,
fontSize: 16,
);
var kBarTitleStyle = TextStyle(
color: Colors.blue.shade900,
fontWeight: FontWeight.bold,
fontSize: 14,
);
var kInputDecorationDropDownMenueYear = const InputDecoration(
prefixIcon: Icon(Icons.date_range),
hintText: 'Jahresauswahl',
filled: true,
fillColor: Colors.black,
errorStyle: TextStyle(color: Colors.yellow),
);

View File

@@ -0,0 +1,9 @@
import 'dart:io';
class MyHttpOverrides extends HttpOverrides{
@override
HttpClient createHttpClient(SecurityContext? context){
return super.createHttpClient(context)
..badCertificateCallback = (X509Certificate cert, String host, int port)=> true;
}
}

View File

@@ -0,0 +1,20 @@
import 'package:get/get.dart';
import '../../pages/login/login_controller.dart';
import '../../pages/tank/tank_controller.dart';
class SampleBindings extends Bindings {
@override
void dependencies() {
// Define your dependencies here
Get.lazyPut<LoginController>(() => LoginController());
Get.lazyPut<TankController>(() => TankController());
// Get.lazyPut<TanklistController>(() => TanklistController(AuthRepository(AppWriteProvider())));
// Get.lazyPut<GraphController>(() => GraphController(AuthRepository(AppWriteProvider())));
// Get.lazyPut<TrackingController>(() => TrackingController(AuthRepository(AppWriteProvider())));
// Get.lazyPut<MapController>(() => MapController(AuthRepository(AppWriteProvider()), LocationRepository(LocationProvider())));
}
}

View File

@@ -0,0 +1,44 @@
import 'package:get/get.dart';
import '../../pages/login/login_view.dart';
import '../../pages/tank/tank_view.dart';
import './sample_bindings.dart';
class SampleRouts {
static final sampleBindings = SampleBindings();
static List<GetPage<dynamic>> samplePages = [
GetPage(
name: LoginPage.namedRoute,
page: () => const LoginPage(),
binding: sampleBindings,
),
GetPage(
name: TankPage.namedRoute,
page: () => const TankPage(),
binding: sampleBindings,
),
// GetPage(
// name: TanklistPage.namedRoute,
// page: () => const TanklistPage(),
// binding: sampleBindings,
// ),
// GetPage(
// name: GraphPage.namedRoute,
// page: () => const GraphPage(),
// binding: sampleBindings,
// ),
// GetPage(
// name: TrackingPage.namedRoute,
// page: () => const TrackingPage(),
// binding: sampleBindings,
// ),
// GetPage(
// name: MapPage.namedRoute,
// page: () => const MapPage(),
// binding: SampleBindings(),
// ),
];
}

View File

@@ -0,0 +1,89 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import '../../data/models/tank_model.dart';
class StaticHelper {
static double sumMonatEuro = 0.0;
static double sumMonatLiter = 0.0;
static List staticSearchList = [];
static GetStorage dataBox = GetStorage('MyUserStorage');
static List listMonth = [
{'month': 'Jänner', 'value': '01'},
{'month': 'Februar', 'value': '02'},
{'month': 'März', 'value': '03'},
{'month': 'April', 'value': '04'},
{'month': 'Mai', 'value': '05'},
{'month': 'Juni', 'value': '06'},
{'month': 'Juli', 'value': '07'},
{'month': 'August', 'value': '08'},
{'month': 'September', 'value': '09'},
{'month': 'Oktober', 'value': '10'},
{'month': 'November', 'value': '11'},
{'month': 'Dezember', 'value': '12'},
];
static List staticListGetDaysInBetween(
List<AppWriteTankModel> list,
String monthValue,
int year,
) {
List<AppWriteTankModel> searchList = [];
List<DateTime> days = [];
var dateYear = year;
var auswahlMonat = int.parse(monthValue);
var startDate = DateTime(dateYear, auswahlMonat, 1);
var endDate = DateTime(dateYear, auswahlMonat + 1, 0);
//List of Days
for (int i = 0; i <= endDate.difference(startDate).inDays; i++) {
days.add(DateTime(startDate.year, startDate.month, startDate.day + i));
}
sumMonatEuro = 0.0;
sumMonatLiter = 0.0;
int entryCounter = 0;
for (var day in days) {
for (AppWriteTankModel model in list) {
int milliSecDate = (DateTime.parse(model.date)).microsecondsSinceEpoch;
if (milliSecDate == day.microsecondsSinceEpoch) {
entryCounter = entryCounter + 1;
model.mnIndexCount = entryCounter;
searchList.add(model);
var mnEuroGesamt =
double.parse(model.liters) * double.parse(model.pricePerLiter);
sumMonatEuro += mnEuroGesamt;
sumMonatLiter += double.parse(model.liters);
}
}
}
searchList.sort((a, b) {
final DateTime dateA = DateTime.parse(a.date);
final DateTime dateB = DateTime.parse(b.date);
return dateB.compareTo(dateA);
});
return staticSearchList = searchList;
}
static getMySnackeBar(String title, String message, Color backgroundColor) {
Get.snackbar(
title,
message,
backgroundColor: backgroundColor,
snackPosition: SnackPosition.BOTTOM,
duration: const Duration(seconds: 4),
);
}
static removeFromStorage() {
dataBox.remove('sessionId');
dataBox.remove('userId');
dataBox.remove('userName');
dataBox.remove('userEmail');
}
static bool hasData() {
return dataBox.hasData('sessionId');
}
}