finished functionality of distance traveled and track condition widget
This commit is contained in:
@@ -1,8 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
// TODO FINISH!!
|
|
||||||
|
|
||||||
class StreckeUSpurbedingungen extends StatefulWidget {
|
class StreckeUSpurbedingungen extends StatefulWidget {
|
||||||
final TextEditingController kmAutoController;
|
final TextEditingController kmAutoController;
|
||||||
final TextEditingController kmFussController;
|
final TextEditingController kmFussController;
|
||||||
@@ -25,6 +23,85 @@ class StreckeUSpurbedingungen extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
||||||
|
// vars for percent text fields
|
||||||
|
String carPercent = "0";
|
||||||
|
String footPercent = "0";
|
||||||
|
String bikePercent = "0";
|
||||||
|
|
||||||
|
String goodPercent = "0";
|
||||||
|
String middlePercent = "0";
|
||||||
|
String badPercent = "0";
|
||||||
|
|
||||||
|
String totalKm = "0";
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
// Travle Distance
|
||||||
|
widget.kmAutoController.addListener(onDistanceTravledUpdated);
|
||||||
|
widget.kmFussController.addListener(onDistanceTravledUpdated);
|
||||||
|
widget.kmRadController.addListener(onDistanceTravledUpdated);
|
||||||
|
|
||||||
|
widget.kmAutoController.text = "0";
|
||||||
|
widget.kmFussController.text = "0";
|
||||||
|
widget.kmRadController.text = "0";
|
||||||
|
|
||||||
|
// Track Conditions
|
||||||
|
widget.spGutController.addListener(onTrackConditionsUpdated);
|
||||||
|
widget.spMittelController.addListener(onTrackConditionsUpdated);
|
||||||
|
widget.spSchlechtController.addListener(onTrackConditionsUpdated);
|
||||||
|
|
||||||
|
widget.spGutController.text = "0";
|
||||||
|
widget.spMittelController.text = "0";
|
||||||
|
widget.spSchlechtController.text = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void onDistanceTravledUpdated() {
|
||||||
|
try {
|
||||||
|
double kmAuto = double.parse(widget.kmAutoController.text);
|
||||||
|
double kmFuss = double.parse(widget.kmFussController.text);
|
||||||
|
double kmRad = double.parse(widget.kmRadController.text);
|
||||||
|
double gesKm = (kmAuto + kmFuss + kmRad);
|
||||||
|
|
||||||
|
if (gesKm == 0) {
|
||||||
|
carPercent = "0";
|
||||||
|
footPercent = "0";
|
||||||
|
bikePercent = "0";
|
||||||
|
} else {
|
||||||
|
carPercent = (kmAuto / gesKm * 100).round().toString();
|
||||||
|
footPercent = (kmFuss / gesKm * 100).round().toString();
|
||||||
|
bikePercent = (kmRad / gesKm * 100).round().toString();
|
||||||
|
totalKm = gesKm.toString();
|
||||||
|
}
|
||||||
|
setState(() {});
|
||||||
|
} catch (e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void onTrackConditionsUpdated() {
|
||||||
|
try {
|
||||||
|
double kmGood = double.parse(widget.spGutController.text);
|
||||||
|
double kmMiddle = double.parse(widget.spMittelController.text);
|
||||||
|
double kmBad = double.parse(widget.spSchlechtController.text);
|
||||||
|
double gesKm = (kmGood + kmMiddle + kmBad);
|
||||||
|
|
||||||
|
if (gesKm == 0) {
|
||||||
|
goodPercent = "0";
|
||||||
|
middlePercent = "0";
|
||||||
|
badPercent = "0";
|
||||||
|
} else {
|
||||||
|
goodPercent = (kmGood / gesKm * 100).round().toString();
|
||||||
|
middlePercent = (kmMiddle / gesKm * 100).round().toString();
|
||||||
|
badPercent = (kmBad / gesKm * 100).round().toString();
|
||||||
|
}
|
||||||
|
setState(() {});
|
||||||
|
} catch (e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Column(
|
return Column(
|
||||||
@@ -44,7 +121,7 @@ class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
|||||||
controller: widget.kmAutoController,
|
controller: widget.kmAutoController,
|
||||||
)),
|
)),
|
||||||
Expanded(child: Center(child: Text("="))),
|
Expanded(child: Center(child: Text("="))),
|
||||||
Expanded(child: Center(child: Text(""))),
|
Expanded(child: Center(child: Text(carPercent))),
|
||||||
Expanded(child: Center(child: Text("%"))),
|
Expanded(child: Center(child: Text("%"))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -56,7 +133,7 @@ class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
|||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
controller: widget.kmFussController)),
|
controller: widget.kmFussController)),
|
||||||
Expanded(child: Center(child: Text("="))),
|
Expanded(child: Center(child: Text("="))),
|
||||||
Expanded(child: Center(child: Text(""))),
|
Expanded(child: Center(child: Text(footPercent))),
|
||||||
Expanded(child: Center(child: Text("%"))),
|
Expanded(child: Center(child: Text("%"))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -68,7 +145,7 @@ class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
|||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
controller: widget.kmRadController)),
|
controller: widget.kmRadController)),
|
||||||
Expanded(child: Center(child: Text("="))),
|
Expanded(child: Center(child: Text("="))),
|
||||||
Expanded(child: Center(child: Text(""))),
|
Expanded(child: Center(child: Text(bikePercent))),
|
||||||
Expanded(child: Center(child: Text("%"))),
|
Expanded(child: Center(child: Text("%"))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -85,7 +162,7 @@ class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
|||||||
flex: 3,
|
flex: 3,
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: Alignment.bottomLeft,
|
alignment: Alignment.bottomLeft,
|
||||||
child: Text("data"),
|
child: Text(totalKm),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
@@ -108,7 +185,7 @@ class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
|||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
controller: widget.spGutController)),
|
controller: widget.spGutController)),
|
||||||
Expanded(child: Center(child: Text("="))),
|
Expanded(child: Center(child: Text("="))),
|
||||||
Expanded(child: Center(child: Text(""))),
|
Expanded(child: Center(child: Text(goodPercent))),
|
||||||
Expanded(child: Center(child: Text("%"))),
|
Expanded(child: Center(child: Text("%"))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -120,7 +197,7 @@ class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
|||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
controller: widget.spMittelController)),
|
controller: widget.spMittelController)),
|
||||||
Expanded(child: Center(child: Text("="))),
|
Expanded(child: Center(child: Text("="))),
|
||||||
Expanded(child: Center(child: Text(""))),
|
Expanded(child: Center(child: Text(middlePercent))),
|
||||||
Expanded(child: Center(child: Text("%"))),
|
Expanded(child: Center(child: Text("%"))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -133,7 +210,7 @@ class StreckeUSpurbedingungenState extends State<StreckeUSpurbedingungen> {
|
|||||||
controller: widget.spSchlechtController,
|
controller: widget.spSchlechtController,
|
||||||
)),
|
)),
|
||||||
Expanded(child: Center(child: Text("="))),
|
Expanded(child: Center(child: Text("="))),
|
||||||
Expanded(child: Center(child: Text(""))),
|
Expanded(child: Center(child: Text(badPercent))),
|
||||||
Expanded(child: Center(child: Text("%"))),
|
Expanded(child: Center(child: Text("%"))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user