149 lines
6.2 KiB
Dart
149 lines
6.2 KiB
Dart
import 'package:get/get.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get_storage/get_storage.dart';
|
|
|
|
import '../helper/constants.dart';
|
|
|
|
enum MainView { dashboard, traun, sarleinsbach, lannach, settings }
|
|
|
|
class HomeController extends GetxController {
|
|
// Der Key, mit dem wir das Scaffold von hier aus steuern
|
|
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
|
|
|
|
final boxSettings = GetStorage();
|
|
final currentView = MainView.dashboard.obs;
|
|
|
|
//--------------Settings View---------------------------
|
|
final askiUserController = TextEditingController().obs;
|
|
final askiPasswordController = TextEditingController().obs;
|
|
final loginUrlController = TextEditingController().obs;
|
|
final powerUrlController = TextEditingController().obs;
|
|
|
|
final pvTraunDeviceController = TextEditingController().obs;
|
|
final pvTraunDeviceMeterIdPVController = TextEditingController().obs;
|
|
final pvTraunDeviceMeterIdImportController = TextEditingController().obs;
|
|
|
|
final pvSarleinsbachDeviceController = TextEditingController().obs;
|
|
final pvSarleinsbachDeviceMeterIdPV01Controller = TextEditingController().obs;
|
|
final pvSarleinsbachDeviceMeterIdPV02Controller = TextEditingController().obs;
|
|
final pvSarleinsbachDeviceMeterIdPV03Controller = TextEditingController().obs;
|
|
final pvSarleinsbachDeviceMeterIdImportController = TextEditingController().obs;
|
|
|
|
final pvLannachDeviceController = TextEditingController().obs;
|
|
final pvLannachDeviceMeterIdPVController = TextEditingController().obs;
|
|
final pvLannachDeviceMeterIdImportController = TextEditingController().obs;
|
|
|
|
void saveSettings() {
|
|
String askiUser = askiUserController.value.text;
|
|
String askiPassword = askiPasswordController.value.text;
|
|
String loginUrl = loginUrlController.value.text;
|
|
String powerUrl = powerUrlController.value.text;
|
|
//traun
|
|
String pvTraunDevice = pvTraunDeviceController.value.text;
|
|
int pvTraunDeviceMeterIdPV = int.parse(pvTraunDeviceMeterIdPVController.value.text);
|
|
int pvTraunDeviceMeterIdImport = int.parse(pvTraunDeviceMeterIdImportController.value.text);
|
|
//sarleinsbach
|
|
String pvSarleinsbachDevice = pvSarleinsbachDeviceController.value.text;
|
|
int pvSarleinsbachDeviceMeterIdPV01 = int.parse(pvSarleinsbachDeviceMeterIdPV01Controller.value.text);
|
|
int pvSarleinsbachDeviceMeterIdPV02 = int.parse(pvSarleinsbachDeviceMeterIdPV02Controller.value.text);
|
|
int pvSarleinsbachDeviceMeterIdPV03 = int.parse(pvSarleinsbachDeviceMeterIdPV03Controller.value.text);
|
|
int pvSarleinsbachDeviceMeterIdImport = int.parse(pvSarleinsbachDeviceMeterIdImportController.value.text);
|
|
//lannach
|
|
String pvLannachDevice = pvLannachDeviceController.value.text;
|
|
int pvLannachDeviceMeterIdPV = int.parse(pvLannachDeviceMeterIdPVController.value.text);
|
|
int pvLannachDeviceMeterIdImport = int.parse(pvLannachDeviceMeterIdImportController.value.text);
|
|
|
|
|
|
boxSettings.write('askiUser', askiUser);
|
|
boxSettings.write('askiPassword', askiPassword);
|
|
boxSettings.write('loginUrl', loginUrl);
|
|
boxSettings.write('powerUrl', powerUrl);
|
|
boxSettings.write('pvTraunDevice', pvTraunDevice);
|
|
boxSettings.write('pvTraunDeviceMeterIdPV', pvTraunDeviceMeterIdPV);
|
|
boxSettings.write('pvTraunDeviceMeterIdImport', pvTraunDeviceMeterIdImport);
|
|
boxSettings.write('pvSarleinsbachDevice', pvSarleinsbachDevice);
|
|
boxSettings.write('pvSarleinsbachDeviceMeterIdPV01', pvSarleinsbachDeviceMeterIdPV01);
|
|
boxSettings.write('pvSarleinsbachDeviceMeterIdPV02', pvSarleinsbachDeviceMeterIdPV02);
|
|
boxSettings.write('pvSarleinsbachDeviceMeterIdPV03', pvSarleinsbachDeviceMeterIdPV03);
|
|
boxSettings.write('pvSarleinsbachDeviceMeterIdImport', pvSarleinsbachDeviceMeterIdImport);
|
|
boxSettings.write('pvLannachDevice', pvLannachDevice);
|
|
boxSettings.write('pvLannachDeviceMeterIdPV', pvLannachDeviceMeterIdPV);
|
|
boxSettings.write('pvLannachDeviceMeterIdImport', pvLannachDeviceMeterIdImport);
|
|
|
|
kDisplaySnackBarGreen("Settings saved successfully!");
|
|
|
|
print('Einstellungen gespeichert:');
|
|
print('ASKI User: $askiUser');
|
|
print('ASKI Password: $askiPassword');
|
|
print('Login URL: $loginUrl');
|
|
print('Power URL: $powerUrl');
|
|
}
|
|
//------------------------------------------------------
|
|
|
|
void changeView(MainView view) {
|
|
currentView.value = view;
|
|
}
|
|
|
|
void toggleDrawer() {
|
|
final ScaffoldState? state = scaffoldKey.currentState;
|
|
|
|
if (state != null) {
|
|
if (state.isDrawerOpen) {
|
|
print("Schließe Drawer...");
|
|
state.closeDrawer(); // Wartet auf das Ende der Schließ-Animation
|
|
print("Drawer geschlossen.");
|
|
} else {
|
|
print("Öffne Drawer...");
|
|
state.openDrawer(); // Wartet auf das Ende der Öffnen-Animation
|
|
print("Drawer geöffnet.");
|
|
}
|
|
}
|
|
}
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
_readStorageData();
|
|
}
|
|
|
|
void _readStorageData() {
|
|
bool hasAskiUser = boxSettings.hasData('askiUser');
|
|
if (hasAskiUser) {
|
|
askiUserController.value.text = boxSettings.read('askiUser');
|
|
}
|
|
bool hasAskiPassword = boxSettings.hasData('askiPassword');
|
|
if (hasAskiPassword) {
|
|
askiPasswordController.value.text = boxSettings.read('askiPassword');
|
|
}
|
|
bool hasLoginUrl = boxSettings.hasData('loginUrl');
|
|
if (hasLoginUrl) {
|
|
loginUrlController.value.text = boxSettings.read('loginUrl');
|
|
}
|
|
bool hasPowerUrl = boxSettings.hasData('powerUrl');
|
|
if (hasPowerUrl) {
|
|
powerUrlController.value.text = boxSettings.read('powerUrl');
|
|
}
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
askiUserController.close();
|
|
askiPasswordController.close();
|
|
loginUrlController.close();
|
|
powerUrlController.close();
|
|
pvTraunDeviceController.close();
|
|
pvTraunDeviceMeterIdPVController.close();
|
|
pvTraunDeviceMeterIdImportController.close();
|
|
pvSarleinsbachDeviceController.close();
|
|
pvSarleinsbachDeviceMeterIdPV01Controller.close();
|
|
pvSarleinsbachDeviceMeterIdPV02Controller.close();
|
|
pvSarleinsbachDeviceMeterIdPV03Controller.close();
|
|
pvSarleinsbachDeviceMeterIdImportController.close();
|
|
pvLannachDeviceController.close();
|
|
pvLannachDeviceMeterIdPVController.close();
|
|
pvLannachDeviceMeterIdImportController.close();
|
|
super.onClose();
|
|
}
|
|
|
|
}
|