From 40c13a4bb122ee36631a60f738f85fcdbfd233f3 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Mon, 7 Nov 2022 17:49:36 +0100 Subject: work --- lib/pages/all_routes_page.dart | 130 +++++++++++++++++++++++++++++++++++++ lib/pages/delivery_login_page.dart | 32 +++++++-- lib/pages/navigation_page.dart | 2 +- 3 files changed, 158 insertions(+), 6 deletions(-) create mode 100644 lib/pages/all_routes_page.dart (limited to 'lib/pages') diff --git a/lib/pages/all_routes_page.dart b/lib/pages/all_routes_page.dart new file mode 100644 index 0000000..39b49c2 --- /dev/null +++ b/lib/pages/all_routes_page.dart @@ -0,0 +1,130 @@ +import 'package:carousel_slider/carousel_slider.dart'; +import 'package:flutter/material.dart'; +import 'package:in_date_utils/in_date_utils.dart' as DateUtilities; +import 'package:loading_animation_widget/loading_animation_widget.dart'; +import 'package:training_planner/main.dart'; +import 'package:training_planner/models/route_list.dart'; +import 'package:training_planner/route.dart'; +import 'package:training_planner/shift.dart'; +import 'package:training_planner/style/style.dart'; +import 'package:training_planner/utils/date.dart'; +import 'package:training_planner/widgets/agenda_week.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; + +class AllRoutesPage extends StatefulWidget { + @override + _AllRoutesPageState createState() => _AllRoutesPageState(); + + const AllRoutesPage({Key? key}) : super(key: key); +} + +class _AllRoutesPageState extends State { + RouteList? routeInfo; + @override + initState() { + super.initState(); + debugPrint('XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD!!!'); + apiService.getRoutes().then((value) => { + setState(() => {routeInfo = value}) + }); + } + + List createRoutesDataWidgets() { + List result = []; + + for (var route in routeInfo!.routes!) { + result.add(Padding( + padding: const EdgeInsets.only(bottom: 8, left: 10, right: 10), + child: Container( + decoration: BoxDecoration( + border: Border.all(color: Style.logbookEntryBorder), + color: Style.logbookEntryBackground, + borderRadius: BorderRadius.all(Radius.circular(8))), + child: Padding( + padding: const EdgeInsets.all(8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + route.tripNumber.toString(), + style: TextStyle( + color: Colors.white, fontWeight: FontWeight.bold), + ), + ], + ), + ), + ), + )); + } + + return result; + } + + Widget getDataList() { + var monthDataWidgets = createRoutesDataWidgets(); + if (monthDataWidgets.isEmpty) { + return Center( + child: Text('Geen data beschikbaar'), + ); + } + + return SafeArea( + child: CustomScrollView( + physics: null, + slivers: [ + SliverPadding(padding: EdgeInsets.only(top: 20)), + SliverList( + delegate: SliverChildBuilderDelegate( + (BuildContext context, int index) { + return monthDataWidgets[index]; + }, + childCount: monthDataWidgets.length, + )), + SliverPadding(padding: EdgeInsets.only(top: 20)), + ], + ), + ); + } + + Widget getLoadingScreen() { + return LoadingAnimationWidget.flickr( + leftDotColor: Style.titleColor, + rightDotColor: Style.background, + size: MediaQuery.of(context).size.width / 4, + ); + } + + Widget getLoadingScreenOrDataList() { + if (routeInfo != null) { + return getDataList(); + } else { + return getLoadingScreen(); + } + } + + @override + Widget build(BuildContext context) { + return ShaderMask( + shaderCallback: (Rect rect) { + return LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Style.background, + Colors.transparent, + Colors.transparent, + Style.background + ], + stops: [ + 0.0, + 0.05, + 0.95, + 1.0 + ], // 10% purple, 80% transparent, 10% purple + ).createShader(rect); + }, + blendMode: BlendMode.dstOut, + child: getLoadingScreenOrDataList(), + ); + } +} diff --git a/lib/pages/delivery_login_page.dart b/lib/pages/delivery_login_page.dart index bdf1b0e..15ab4b3 100644 --- a/lib/pages/delivery_login_page.dart +++ b/lib/pages/delivery_login_page.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:training_planner/events/RouteLoadedEvent.dart'; +import 'package:training_planner/models/login_request.dart'; +import 'package:training_planner/models/login_response.dart'; import 'package:training_planner/pages/agenda_page.dart'; +import 'package:training_planner/pages/all_routes_page.dart'; import 'package:training_planner/pages/developer_page.dart'; import 'package:training_planner/pages/logbook_page.dart'; import 'package:training_planner/pages/navigation_page.dart'; @@ -20,23 +23,33 @@ class DeliveryLoginPage extends StatefulWidget { class _DeliveryLoginPageState extends State { final pnumberController = TextEditingController(); final daycodeController = TextEditingController(); - + final versionController = TextEditingController(); @override initState() { super.initState(); pnumberController.text = remoteAuthService.storedPNumber; daycodeController.text = remoteAuthService.storedDaycode; + versionController.text = "1.12.3-prod"; } _attemptLogin() async { - bool success = await remoteAuthService.authenticate( - pnumberController.text, daycodeController.text); - if (success) { + try { + LoginResponse res = await apiService.login(LoginRequest( + username: pnumberController.text, + password: daycodeController.text, + pdaSoftwareVersion: versionController.text, + deviceImei: "990010902435339", + deviceName: "Sussyamongus A11", + deviceIdentifier: "990010902435339")); Navigator.push( context, - MaterialPageRoute(builder: (context) => NavigationPage()), + MaterialPageRoute(builder: (context) => AllRoutesPage()), ); + } catch (e) { + debugPrint(e.toString()); + ScaffoldMessenger.of(context) + .showSnackBar(const SnackBar(content: Text('Gegevens kloppen niet'))); } } @@ -69,6 +82,15 @@ class _DeliveryLoginPageState extends State { ], ), Padding(padding: EdgeInsets.all(10)), + TextField( + decoration: InputDecoration(labelText: "Versie"), + keyboardType: TextInputType.number, + controller: versionController, + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly + ], + ), + Padding(padding: EdgeInsets.all(10)), OutlinedButton( onPressed: () => _attemptLogin(), child: Text('Inloggen')) ], diff --git a/lib/pages/navigation_page.dart b/lib/pages/navigation_page.dart index 2d8c52b..3ab40fd 100644 --- a/lib/pages/navigation_page.dart +++ b/lib/pages/navigation_page.dart @@ -221,7 +221,7 @@ class _NavigationPageState extends State { _routingExample!.activeTask.fullAddress, style: TextStyle( color: Color.fromARGB(255, 0, 0, 0), - fontSize: 18, + fontSize: 15, ), ), ), -- cgit v1.2.3-70-g09d2