From c21633e0d20eb5df1d5b4ef4d14f921f151f9043 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Wed, 15 Nov 2023 11:46:15 +0100 Subject: [PATCH] Erweiterungen --- lib/content_views/accepted_jobs_page.dart | 8 ++- lib/content_views/tour_list_page.dart | 35 ++++++++-- lib/tools/util.dart | 82 +++++++++++++++++++++++ 3 files changed, 117 insertions(+), 8 deletions(-) diff --git a/lib/content_views/accepted_jobs_page.dart b/lib/content_views/accepted_jobs_page.dart index 7d56679..d9fa32b 100644 --- a/lib/content_views/accepted_jobs_page.dart +++ b/lib/content_views/accepted_jobs_page.dart @@ -71,6 +71,8 @@ class _AcceptedJobsPageState extends State { List jobWidgets = []; for (var job in _jobs) { + var vehicleImage = "assets/${mapVehicleTypeToImageName(job.vhtId)}"; + jobWidgets.add( ListTile( onTap: () { @@ -92,15 +94,15 @@ class _AcceptedJobsPageState extends State { textAlign: TextAlign.left, ), Text( - job.crFilter != null ? job.crFilter.toString() : "Kein CR-Filter vorhanden", + job.crFilter != null ? job.crFilter.toString() : "", textAlign: TextAlign.left, ), Row( children: [ - const Icon(Icons.arrow_back, size: 30.0, color: Colors.black), + Image.asset("assets/${mapVehicleTypeToImageName(job.vhtId)}", width: 60, height: 60), const SizedBox(width: 10), Text( - job.vhtId.toString() + mapVehicleTypeToText(job.vhtId) ), ], ), diff --git a/lib/content_views/tour_list_page.dart b/lib/content_views/tour_list_page.dart index 227fb61..38decc3 100644 --- a/lib/content_views/tour_list_page.dart +++ b/lib/content_views/tour_list_page.dart @@ -4,6 +4,7 @@ import 'package:stadtbote/content_views/tour_details_page.dart'; import 'package:stadtbote/content_views/utils/content_view_widget.dart'; import 'package:stadtbote/content_views/utils/header_info.dart'; import 'package:stadtbote/model/job_tour.dart'; +import 'package:stadtbote/popups/map_popup.dart'; import '../model/job.dart'; import '../tools/constants.dart'; @@ -80,18 +81,36 @@ class _TourListPageState extends State { Row( children: [ Text( - widget.job.crFilter != null ? widget.job.crFilter.toString() : "Kein CR-Filter vorhanden", + widget.job.crFilter != null ? widget.job.crFilter.toString() : "", textAlign: TextAlign.left, ), ], ), Row( children: [ - const Icon(Icons.arrow_back, size: 30.0, color: Colors.black), + Image.asset("assets/${mapVehicleTypeToImageName(widget.job.vhtId)}", width: 60, height: 60), const SizedBox(width: 10), - Text( - widget.job.vhtId.toString() + Expanded( + child: Text( + mapVehicleTypeToText(widget.job.vhtId) + ), ), + const SizedBox(width: 10), + SizedBox( + width: 100, + child: ElevatedButton( + style: ButtonStyle( + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + side: const BorderSide(color: Colors.grey), + ), + ), + backgroundColor: MaterialStateProperty.all(Colors.lightGreen), + foregroundColor: MaterialStateProperty.all(Colors.black), + ), + onPressed: () => { showMapPopup(context, widget.job.tours[0], widget.job.tours)}, + child: const Text("Karte"))) ], ), Expanded( @@ -112,6 +131,10 @@ class _TourListPageState extends State { for (var tour in _tours) { Color color = Colors.transparent; switch(tour.state) { + case 0: + color = Colors.white; + break; + case 1: color = Colors.lightGreen; break; @@ -165,6 +188,8 @@ class _TourListPageState extends State { } void _clicked(JobTour tour) { - BroadcastReceiver().publish(Constants.messageTopicPushContentView, arguments: TourDetailsPage(job: widget.job, tour: tour)); + if (tour.state == 0) { + BroadcastReceiver().publish(Constants.messageTopicPushContentView, arguments: TourDetailsPage(job: widget.job, tour: tour)); + } } } diff --git a/lib/tools/util.dart b/lib/tools/util.dart index 96ceb9d..8718b8d 100644 --- a/lib/tools/util.dart +++ b/lib/tools/util.dart @@ -214,6 +214,88 @@ Widget getDefaultButton(String text, Function() onPressed, {Image? image, double ); } +String mapVehicleTypeToImageName(int vehType) +{ + switch (vehType) { + case 1: + return "fahrrad.png"; + + case 2: + return "pkw.png"; + + case 3: + return "kombi.png"; + + case 4: + return "kasten.png"; + + case 5: + return "bus.png"; + + case 6: + return "grbus.png"; + + case 7: + return "lkw.png"; + + case 8: + return "lkw_12.png"; + + case 10: + return "lkw_8.png"; + + case 11: + return "lkw_10.png"; + + case 12: + return "lkw_15.png"; + + case 13: + return "lkw_20.png"; + + case 999: + return "service.png"; + } + + return "unbekannt.png"; +} + +String mapVehicleTypeToText(int vehType) { + switch (vehType) { + case 1: + return "Fahrrad"; + + case 2: + return "Pkw"; + + case 3: + return "Kombi"; + + case 4: + return "Kasten"; + + case 5: + return "Bus"; + + case 6: + return "GrBus"; + + case 7: + case 8: + case 10: + case 11: + case 12: + case 13: + case 14: + return "Lkw"; + + case 999: + return "Service"; + } + + return "!UNBEKANTER VEHICLE TYPE!"; +} + String mapTourMode(String mode) { var text = ""; switch (mode) {