From 27fcddc202d004d3a479fb010d363471f3d607e8 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Wed, 6 Mar 2024 12:50:15 +0100 Subject: [PATCH] Erweiterungen --- lib/content_views/task_list_page.dart | 4 +- lib/model/job_tour.dart | 2 +- lib/model/job_tour.g.dart | 57 ++++++++++++++++++--------- lib/tools/mqtt_core.dart | 2 +- 4 files changed, 42 insertions(+), 23 deletions(-) diff --git a/lib/content_views/task_list_page.dart b/lib/content_views/task_list_page.dart index 93302aa..e2c9c49 100644 --- a/lib/content_views/task_list_page.dart +++ b/lib/content_views/task_list_page.dart @@ -125,7 +125,7 @@ class _TaskListPageState extends State { left: 16.5, top: i == 0 ? 40 : 40, child: Container( - height: i == widget.tour.tasks.length - 1 ? 0 : 20, + height: i == widget.tour.tasks!.length - 1 ? 0 : 20, width: 6, color: isTaskActive(i) ? Constants.colorPrimary : Constants.colorPrimaryOpaque, ), @@ -187,7 +187,7 @@ class _TaskListPageState extends State { Future> _fetchTaskList() async { List taskList = []; - for(var task in widget.tour.tasks) { + for(var task in widget.tour.tasks!) { var taskInfo = await MyApp.isarInstance.taskInfos.filter().sIdEqualTo(task.sId).findFirst(); if (taskInfo == null) { taskInfo = TaskInfo(); diff --git a/lib/model/job_tour.dart b/lib/model/job_tour.dart index 349059b..659b6aa 100644 --- a/lib/model/job_tour.dart +++ b/lib/model/job_tour.dart @@ -20,7 +20,7 @@ class JobTour { late String com; late TourPosition? pos; late String rem; - late List tasks; + late List? tasks; JobTour(); diff --git a/lib/model/job_tour.g.dart b/lib/model/job_tour.g.dart index 87a88ac..5cb71c1 100644 --- a/lib/model/job_tour.g.dart +++ b/lib/model/job_tour.g.dart @@ -109,12 +109,17 @@ int _jobTourEstimateSize( } bytesCount += 3 + object.rem.length * 3; bytesCount += 3 + object.street.length * 3; - bytesCount += 3 + object.tasks.length * 3; { - final offsets = allOffsets[TourTask]!; - for (var i = 0; i < object.tasks.length; i++) { - final value = object.tasks[i]; - bytesCount += TourTaskSchema.estimateSize(value, offsets, allOffsets); + final list = object.tasks; + if (list != null) { + bytesCount += 3 + list.length * 3; + { + final offsets = allOffsets[TourTask]!; + for (var i = 0; i < list.length; i++) { + final value = list[i]; + bytesCount += TourTaskSchema.estimateSize(value, offsets, allOffsets); + } + } } } return bytesCount; @@ -175,12 +180,11 @@ JobTour _jobTourDeserialize( object.state = reader.readLong(offsets[10]); object.street = reader.readString(offsets[11]); object.tasks = reader.readObjectList( - offsets[12], - TourTaskSchema.deserialize, - allOffsets, - TourTask(), - ) ?? - []; + offsets[12], + TourTaskSchema.deserialize, + allOffsets, + TourTask(), + ); return object; } @@ -221,12 +225,11 @@ P _jobTourDeserializeProp

( return (reader.readString(offset)) as P; case 12: return (reader.readObjectList( - offset, - TourTaskSchema.deserialize, - allOffsets, - TourTask(), - ) ?? - []) as P; + offset, + TourTaskSchema.deserialize, + allOffsets, + TourTask(), + )) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -1447,6 +1450,22 @@ extension JobTourQueryFilter }); } + QueryBuilder tasksIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'tasks', + )); + }); + } + + QueryBuilder tasksIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'tasks', + )); + }); + } + QueryBuilder tasksLengthEqualTo( int length) { return QueryBuilder.apply(this, (query) { @@ -1568,8 +1587,8 @@ JobTour _$JobTourFromJson(Map json) => JobTour() ? null : TourPosition.fromJson(json['pos'] as Map) ..rem = json['rem'] as String - ..tasks = (json['tasks'] as List) - .map((e) => TourTask.fromJson(e as Map)) + ..tasks = (json['tasks'] as List?) + ?.map((e) => TourTask.fromJson(e as Map)) .toList(); Map _$JobTourToJson(JobTour instance) => { diff --git a/lib/tools/mqtt_core.dart b/lib/tools/mqtt_core.dart index c0edbe9..cbe5a8b 100644 --- a/lib/tools/mqtt_core.dart +++ b/lib/tools/mqtt_core.dart @@ -207,7 +207,7 @@ class MqttCore { await _sendSyncMessage(); - var sessionStatusMessage = SessionStatus.fromJson(payloadData['status']); + var sessionStatusMessage = SessionStatus.fromJson(payloadData); await MyApp.isarInstance.writeTxn(() async { await MyApp.isarInstance.sessionStatus.clear();