Erweiterungen
This commit is contained in:
1 parent
3dab4025e7
commit
3d7ae9de2a
16 files changed
+438
-327
No files matched your search
@@ -3,13 +3,16 @@ import 'dart:convert';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_broadcast_receiver/flutter_broadcast_receiver.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:stadtbote/content_views/accepted_jobs_page.dart';
|
||||
import 'package:stadtbote/content_views/assigned_jobs_page.dart';
|
||||
import 'package:stadtbote/content_views/finished_jobs_page.dart';
|
||||
import 'package:stadtbote/content_views/messages_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/status.dart';
|
||||
import 'package:stadtbote/popups/infos_popup.dart';
|
||||
import 'package:stadtbote/tools/session_info_update.dart';
|
||||
|
||||
import '../main.dart';
|
||||
import '../model/job.dart';
|
||||
@@ -17,7 +20,16 @@ import '../tools/constants.dart';
|
||||
import '../tools/util.dart';
|
||||
|
||||
class MainPage extends ContentViewWidget {
|
||||
const MainPage({super.key});
|
||||
final ValueNotifier<String> _zipValueNotifier = ValueNotifier("----");
|
||||
final ValueNotifier<String> _sidValueNotifier = ValueNotifier("----");
|
||||
|
||||
MainPage({super.key}) {
|
||||
Status? status = MyApp.isarInstance.status.where().findFirstSync();
|
||||
if (status != null) {
|
||||
_zipValueNotifier.value = status.locZip;
|
||||
_sidValueNotifier.value = status.sid;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
State<MainPage> createState() => _MainPageState();
|
||||
@@ -27,21 +39,31 @@ class MainPage extends ContentViewWidget {
|
||||
return HeaderInfo(
|
||||
titleWidget: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 3),
|
||||
child: const Column(children: [
|
||||
Text(
|
||||
'Zeile 1',
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18.0,
|
||||
),
|
||||
child: Column(children: [
|
||||
ValueListenableBuilder<String>(
|
||||
valueListenable: _zipValueNotifier,
|
||||
builder: (context, value, child) {
|
||||
return Text(
|
||||
value,
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18.0,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
SizedBox(height: 5),
|
||||
Text(
|
||||
'Zeile 2',
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18.0,
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
ValueListenableBuilder<String>(
|
||||
valueListenable: _sidValueNotifier,
|
||||
builder: (context, value, child) {
|
||||
return Text(
|
||||
value,
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18.0,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
]),
|
||||
),
|
||||
@@ -55,6 +77,13 @@ class MainPage extends ContentViewWidget {
|
||||
}
|
||||
|
||||
class _MainPageState extends State<MainPage> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_initMessages();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(
|
||||
@@ -123,7 +152,7 @@ class _MainPageState extends State<MainPage> {
|
||||
);
|
||||
}
|
||||
|
||||
void _test() async {
|
||||
_test() async {
|
||||
var json = await rootBundle.loadString('assets/job.json');
|
||||
var jsonMap = jsonDecode(json);
|
||||
var payload = jsonMap["payload"];
|
||||
@@ -138,4 +167,10 @@ class _MainPageState extends State<MainPage> {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
_initMessages() {
|
||||
BroadcastReceiver().subscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, (statusInfoUpdate) {
|
||||
widget._sidValueNotifier.value = statusInfoUpdate.status.sid;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@ import 'package:stadtbote/popups/tasks_popups/scan_barcodes_popup.dart';
|
||||
import 'package:stadtbote/popups/tasks_popups/signature_popup.dart';
|
||||
import 'package:stadtbote/popups/tasks_popups/station_notice_popup.dart';
|
||||
import 'package:stadtbote/popups/tasks_popups/take_photos_popup.dart';
|
||||
import 'package:stadtbote/tools/constants.dart';
|
||||
|
||||
import '../main.dart';
|
||||
import '../model/task_info.dart';
|
||||
@@ -105,11 +106,11 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
children: [
|
||||
Positioned(
|
||||
left: 16.5,
|
||||
top: i == 0 ? 5 : 0,
|
||||
top: i == 0 ? 40 : 40,
|
||||
child: Container(
|
||||
height: i == widget.tour.tasks.length - 1 ? 1: 60,
|
||||
height: i == widget.tour.tasks.length - 1 ? 0 : 20,
|
||||
width: 6,
|
||||
color: Colors.green
|
||||
color: isTaskActive(i) ? Constants.colorPrimary : Constants.colorPrimaryOpaque,
|
||||
),
|
||||
),
|
||||
Column(
|
||||
@@ -117,9 +118,9 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
Container(
|
||||
width: 40,
|
||||
height: 40,
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.grey,
|
||||
color: isTaskActive(i) ? Constants.colorPrimary : Constants.colorPrimaryOpaque,
|
||||
),
|
||||
child: const Icon(Icons.check, size: 30.0, color: Colors.white),
|
||||
),
|
||||
@@ -130,7 +131,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
const SizedBox(width: 20),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
taskInfo.task.topic,
|
||||
@@ -142,7 +143,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
taskInfo.additionalText ?? 'Additonal text',
|
||||
taskInfo.additionalText ?? '',
|
||||
textAlign: TextAlign.left,
|
||||
style: const TextStyle(
|
||||
color: Colors.blue,
|
||||
@@ -169,12 +170,14 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
|
||||
for(var task in widget.tour.tasks) {
|
||||
var taskInfo = await MyApp.isarInstance.taskInfos.filter().sIdEqualTo(task.sId).findFirst();
|
||||
taskInfo ??= TaskInfo();
|
||||
if (taskInfo == null) {
|
||||
taskInfo = TaskInfo();
|
||||
taskInfo.answer = null;
|
||||
taskInfo.additionalText = null;
|
||||
taskInfo.completed = task.opt as bool;
|
||||
}
|
||||
|
||||
taskInfo.task = task;
|
||||
|
||||
taskInfo.answer = null;
|
||||
taskInfo.additionalText = null;
|
||||
|
||||
taskList.add(taskInfo);
|
||||
}
|
||||
|
||||
@@ -225,6 +228,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
DateFormat dateFormat = DateFormat("dd.MM.yyyy HH:mm");
|
||||
|
||||
taskInfo.additionalText = dateFormat.format(DateTime.now());
|
||||
taskInfo.completed = true;
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
@@ -239,6 +243,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
_popup.dismiss(context);
|
||||
|
||||
taskInfo.additionalText = comissionNumber;
|
||||
taskInfo.completed = true;
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
@@ -253,16 +258,26 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
_popup.dismiss(context);
|
||||
|
||||
taskInfo.additionalText = "Barcodes gescannt";
|
||||
taskInfo.completed = true;
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
void _processTakePhotos(TaskInfo taskInfo) {
|
||||
_processTakePhotos(TaskInfo taskInfo) {
|
||||
_popup = showTakePhotosPopup(context, taskInfo, () => {
|
||||
_popup.dismiss(context)
|
||||
_finishProcessTakePhotos(taskInfo)
|
||||
});
|
||||
}
|
||||
|
||||
_finishProcessTakePhotos(TaskInfo taskInfo) {
|
||||
_popup.dismiss(context);
|
||||
|
||||
taskInfo.additionalText = "Fotos aufgenommen";
|
||||
taskInfo.completed = true;
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
void _processStationNotice(TaskInfo taskInfo) {
|
||||
_popup = showStationNoticePopup(context, taskInfo, (notice) => {
|
||||
_finishProcessStationNotice(taskInfo, notice)
|
||||
@@ -273,6 +288,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
_popup.dismiss(context);
|
||||
|
||||
taskInfo.additionalText = notice;
|
||||
taskInfo.completed = true;
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
@@ -287,6 +303,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
_popup.dismiss(context);
|
||||
|
||||
taskInfo.additionalText = receiptGiver;
|
||||
taskInfo.completed = true;
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
@@ -298,8 +315,20 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
_popup = showSignaturePopup(context, taskInfo, () => {
|
||||
_popup.dismiss(context),
|
||||
|
||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
|
||||
taskInfo.completed = true,
|
||||
|
||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
bool isTaskActive(int index) {
|
||||
for (int i = 0; i < index; i++) {
|
||||
var taskInfo = _taskList[i];
|
||||
|
||||
if (!taskInfo.completed) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
+7
-5
@@ -92,7 +92,7 @@ class _MainState extends State<Main> {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||
_initMessages();
|
||||
|
||||
_currentContent = const MainPage();
|
||||
_currentContent = MainPage();
|
||||
|
||||
var headerInfo = await _currentContent.getHeaderInfo(context);
|
||||
_currentTitleWidget = headerInfo.titleWidget;
|
||||
@@ -152,8 +152,8 @@ class _MainState extends State<Main> {
|
||||
Visibility(
|
||||
visible: _leftButtonVisible,
|
||||
child: Container(
|
||||
width: 40,
|
||||
height: 40,
|
||||
width: 60,
|
||||
height: 60,
|
||||
decoration: const BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.white,
|
||||
@@ -165,6 +165,7 @@ class _MainState extends State<Main> {
|
||||
},
|
||||
child: CircleAvatar(
|
||||
radius: 15,
|
||||
backgroundColor: Constants.colorPrimary,
|
||||
child: Padding(padding: const EdgeInsets.all(1.0), child: _leftIconButton),
|
||||
),
|
||||
),
|
||||
@@ -174,8 +175,8 @@ class _MainState extends State<Main> {
|
||||
Visibility(
|
||||
visible: _rightButtonVisible,
|
||||
child: Container(
|
||||
width: 40,
|
||||
height: 40,
|
||||
width: 60,
|
||||
height: 60,
|
||||
decoration: const BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Colors.red,
|
||||
@@ -186,6 +187,7 @@ class _MainState extends State<Main> {
|
||||
_rightButtonOnPressed();
|
||||
},
|
||||
child: CircleAvatar(
|
||||
backgroundColor: Constants.colorPrimary,
|
||||
radius: 15,
|
||||
child: Padding(padding: const EdgeInsets.all(1.0), child: _rightIconButton),
|
||||
),
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:stadtbote/tools/util.dart';
|
||||
|
||||
part 'start_session_message.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class StartSessionMessage {
|
||||
Id get isarId => Util.fastHash(messageId);
|
||||
|
||||
late String recv;
|
||||
|
||||
late bool store;
|
||||
|
||||
late String messageId;
|
||||
|
||||
late Payload payload;
|
||||
|
||||
StartSessionMessage();
|
||||
|
||||
factory StartSessionMessage.fromJson(Map<String, dynamic> json) => _$StartSessionMessageFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$StartSessionMessageToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class Payload {
|
||||
@JsonKey(name:'start_session')
|
||||
late String startSession;
|
||||
|
||||
Payload();
|
||||
|
||||
factory Payload.fromJson(Map<String, dynamic> json) => _$PayloadFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$PayloadToJson(this);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'start_session_message.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
StartSessionMessage _$StartSessionMessageFromJson(Map<String, dynamic> json) =>
|
||||
StartSessionMessage()
|
||||
..recv = json['recv'] as String
|
||||
..store = json['store'] as bool
|
||||
..messageId = json['messageId'] as String
|
||||
..payload = Payload.fromJson(json['payload'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$StartSessionMessageToJson(
|
||||
StartSessionMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'recv': instance.recv,
|
||||
'store': instance.store,
|
||||
'messageId': instance.messageId,
|
||||
'payload': instance.payload,
|
||||
};
|
||||
|
||||
Payload _$PayloadFromJson(Map<String, dynamic> json) =>
|
||||
Payload()..startSession = json['start_session'] as String;
|
||||
|
||||
Map<String, dynamic> _$PayloadToJson(Payload instance) => <String, dynamic>{
|
||||
'start_session': instance.startSession,
|
||||
};
|
||||
@@ -9,21 +9,21 @@ class Status {
|
||||
final Id id = 0;
|
||||
|
||||
@JsonKey(name: 'cust_id')
|
||||
int? custId;
|
||||
late int custId;
|
||||
@JsonKey(name: 'hq_id')
|
||||
int? hqId;
|
||||
late int hqId;
|
||||
@JsonKey(name: 'usr_id')
|
||||
int? usrId;
|
||||
late int usrId;
|
||||
@JsonKey(name: 'cr_id')
|
||||
int? crId;
|
||||
late int crId;
|
||||
@JsonKey(name: 'sid')
|
||||
String? sid;
|
||||
late String sid;
|
||||
@JsonKey(name: 'vht_id')
|
||||
int? vhtId;
|
||||
late int vhtId;
|
||||
@JsonKey(name: 'loc_zip')
|
||||
String? locZip;
|
||||
late String locZip;
|
||||
|
||||
Status({this.hqId, this.usrId, this.crId, this.sid, this.vhtId, this.locZip, this.custId});
|
||||
Status();
|
||||
|
||||
factory Status.fromJson(Map<String, dynamic> json) => _$StatusFromJson(json);
|
||||
|
||||
|
||||
+67
-192
@@ -73,18 +73,8 @@ int _statusEstimateSize(
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
var bytesCount = offsets.last;
|
||||
{
|
||||
final value = object.locZip;
|
||||
if (value != null) {
|
||||
bytesCount += 3 + value.length * 3;
|
||||
}
|
||||
}
|
||||
{
|
||||
final value = object.sid;
|
||||
if (value != null) {
|
||||
bytesCount += 3 + value.length * 3;
|
||||
}
|
||||
}
|
||||
bytesCount += 3 + object.locZip.length * 3;
|
||||
bytesCount += 3 + object.sid.length * 3;
|
||||
return bytesCount;
|
||||
}
|
||||
|
||||
@@ -109,15 +99,14 @@ Status _statusDeserialize(
|
||||
List<int> offsets,
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
final object = Status(
|
||||
crId: reader.readLongOrNull(offsets[0]),
|
||||
custId: reader.readLongOrNull(offsets[1]),
|
||||
hqId: reader.readLongOrNull(offsets[2]),
|
||||
locZip: reader.readStringOrNull(offsets[3]),
|
||||
sid: reader.readStringOrNull(offsets[4]),
|
||||
usrId: reader.readLongOrNull(offsets[5]),
|
||||
vhtId: reader.readLongOrNull(offsets[6]),
|
||||
);
|
||||
final object = Status();
|
||||
object.crId = reader.readLong(offsets[0]);
|
||||
object.custId = reader.readLong(offsets[1]);
|
||||
object.hqId = reader.readLong(offsets[2]);
|
||||
object.locZip = reader.readString(offsets[3]);
|
||||
object.sid = reader.readString(offsets[4]);
|
||||
object.usrId = reader.readLong(offsets[5]);
|
||||
object.vhtId = reader.readLong(offsets[6]);
|
||||
return object;
|
||||
}
|
||||
|
||||
@@ -129,19 +118,19 @@ P _statusDeserializeProp<P>(
|
||||
) {
|
||||
switch (propertyId) {
|
||||
case 0:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readLong(offset)) as P;
|
||||
case 1:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readLong(offset)) as P;
|
||||
case 2:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readLong(offset)) as P;
|
||||
case 3:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
return (reader.readString(offset)) as P;
|
||||
case 4:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
return (reader.readString(offset)) as P;
|
||||
case 5:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readLong(offset)) as P;
|
||||
case 6:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
return (reader.readLong(offset)) as P;
|
||||
default:
|
||||
throw IsarError('Unknown property with id $propertyId');
|
||||
}
|
||||
@@ -233,23 +222,7 @@ extension StatusQueryWhere on QueryBuilder<Status, Status, QWhereClause> {
|
||||
}
|
||||
|
||||
extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> crIdIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'crId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> crIdIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'crId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> crIdEqualTo(int? value) {
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> crIdEqualTo(int value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'crId',
|
||||
@@ -259,7 +232,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> crIdGreaterThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -272,7 +245,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> crIdLessThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -285,8 +258,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> crIdBetween(
|
||||
int? lower,
|
||||
int? upper, {
|
||||
int lower,
|
||||
int upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
@@ -301,24 +274,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> custIdIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'custId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> custIdIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'custId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> custIdEqualTo(
|
||||
int? value) {
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> custIdEqualTo(int value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'custId',
|
||||
@@ -328,7 +284,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> custIdGreaterThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -341,7 +297,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> custIdLessThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -354,8 +310,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> custIdBetween(
|
||||
int? lower,
|
||||
int? upper, {
|
||||
int lower,
|
||||
int upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
@@ -370,23 +326,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> hqIdIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'hqId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> hqIdIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'hqId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> hqIdEqualTo(int? value) {
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> hqIdEqualTo(int value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'hqId',
|
||||
@@ -396,7 +336,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> hqIdGreaterThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -409,7 +349,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> hqIdLessThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -422,8 +362,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> hqIdBetween(
|
||||
int? lower,
|
||||
int? upper, {
|
||||
int lower,
|
||||
int upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
@@ -490,24 +430,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> locZipIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'locZip',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> locZipIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'locZip',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> locZipEqualTo(
|
||||
String? value, {
|
||||
String value, {
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -520,7 +444,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> locZipGreaterThan(
|
||||
String? value, {
|
||||
String value, {
|
||||
bool include = false,
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
@@ -535,7 +459,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> locZipLessThan(
|
||||
String? value, {
|
||||
String value, {
|
||||
bool include = false,
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
@@ -550,8 +474,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> locZipBetween(
|
||||
String? lower,
|
||||
String? upper, {
|
||||
String lower,
|
||||
String upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
bool caseSensitive = true,
|
||||
@@ -636,24 +560,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> sidIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'sid',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> sidIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'sid',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> sidEqualTo(
|
||||
String? value, {
|
||||
String value, {
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -666,7 +574,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> sidGreaterThan(
|
||||
String? value, {
|
||||
String value, {
|
||||
bool include = false,
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
@@ -681,7 +589,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> sidLessThan(
|
||||
String? value, {
|
||||
String value, {
|
||||
bool include = false,
|
||||
bool caseSensitive = true,
|
||||
}) {
|
||||
@@ -696,8 +604,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> sidBetween(
|
||||
String? lower,
|
||||
String? upper, {
|
||||
String lower,
|
||||
String upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
bool caseSensitive = true,
|
||||
@@ -780,23 +688,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> usrIdIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'usrId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> usrIdIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'usrId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> usrIdEqualTo(int? value) {
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> usrIdEqualTo(int value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'usrId',
|
||||
@@ -806,7 +698,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> usrIdGreaterThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -819,7 +711,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> usrIdLessThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -832,8 +724,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> usrIdBetween(
|
||||
int? lower,
|
||||
int? upper, {
|
||||
int lower,
|
||||
int upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
@@ -848,23 +740,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> vhtIdIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'vhtId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> vhtIdIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'vhtId',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> vhtIdEqualTo(int? value) {
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> vhtIdEqualTo(int value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'vhtId',
|
||||
@@ -874,7 +750,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> vhtIdGreaterThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -887,7 +763,7 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> vhtIdLessThan(
|
||||
int? value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -900,8 +776,8 @@ extension StatusQueryFilter on QueryBuilder<Status, Status, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Status, Status, QAfterFilterCondition> vhtIdBetween(
|
||||
int? lower,
|
||||
int? upper, {
|
||||
int lower,
|
||||
int upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
@@ -1158,43 +1034,43 @@ extension StatusQueryProperty on QueryBuilder<Status, Status, QQueryProperty> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, int?, QQueryOperations> crIdProperty() {
|
||||
QueryBuilder<Status, int, QQueryOperations> crIdProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'crId');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, int?, QQueryOperations> custIdProperty() {
|
||||
QueryBuilder<Status, int, QQueryOperations> custIdProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'custId');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, int?, QQueryOperations> hqIdProperty() {
|
||||
QueryBuilder<Status, int, QQueryOperations> hqIdProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'hqId');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, String?, QQueryOperations> locZipProperty() {
|
||||
QueryBuilder<Status, String, QQueryOperations> locZipProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'locZip');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, String?, QQueryOperations> sidProperty() {
|
||||
QueryBuilder<Status, String, QQueryOperations> sidProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'sid');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, int?, QQueryOperations> usrIdProperty() {
|
||||
QueryBuilder<Status, int, QQueryOperations> usrIdProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'usrId');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Status, int?, QQueryOperations> vhtIdProperty() {
|
||||
QueryBuilder<Status, int, QQueryOperations> vhtIdProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'vhtId');
|
||||
});
|
||||
@@ -1205,15 +1081,14 @@ extension StatusQueryProperty on QueryBuilder<Status, Status, QQueryProperty> {
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Status _$StatusFromJson(Map<String, dynamic> json) => Status(
|
||||
hqId: json['hq_id'] as int?,
|
||||
usrId: json['usr_id'] as int?,
|
||||
crId: json['cr_id'] as int?,
|
||||
sid: json['sid'] as String?,
|
||||
vhtId: json['vht_id'] as int?,
|
||||
locZip: json['loc_zip'] as String?,
|
||||
custId: json['cust_id'] as int?,
|
||||
);
|
||||
Status _$StatusFromJson(Map<String, dynamic> json) => Status()
|
||||
..custId = json['cust_id'] as int
|
||||
..hqId = json['hq_id'] as int
|
||||
..usrId = json['usr_id'] as int
|
||||
..crId = json['cr_id'] as int
|
||||
..sid = json['sid'] as String
|
||||
..vhtId = json['vht_id'] as int
|
||||
..locZip = json['loc_zip'] as String;
|
||||
|
||||
Map<String, dynamic> _$StatusToJson(Status instance) => <String, dynamic>{
|
||||
'cust_id': instance.custId,
|
||||
|
||||
@@ -13,6 +13,8 @@ class TaskInfo {
|
||||
|
||||
late String? answer;
|
||||
|
||||
late bool completed;
|
||||
|
||||
@ignore
|
||||
late TourTask task;
|
||||
|
||||
|
||||
@@ -27,8 +27,13 @@ const TaskInfoSchema = CollectionSchema(
|
||||
name: r'answer',
|
||||
type: IsarType.string,
|
||||
),
|
||||
r'sId': PropertySchema(
|
||||
r'completed': PropertySchema(
|
||||
id: 2,
|
||||
name: r'completed',
|
||||
type: IsarType.bool,
|
||||
),
|
||||
r'sId': PropertySchema(
|
||||
id: 3,
|
||||
name: r'sId',
|
||||
type: IsarType.long,
|
||||
)
|
||||
@@ -76,7 +81,8 @@ void _taskInfoSerialize(
|
||||
) {
|
||||
writer.writeString(offsets[0], object.additionalText);
|
||||
writer.writeString(offsets[1], object.answer);
|
||||
writer.writeLong(offsets[2], object.sId);
|
||||
writer.writeBool(offsets[2], object.completed);
|
||||
writer.writeLong(offsets[3], object.sId);
|
||||
}
|
||||
|
||||
TaskInfo _taskInfoDeserialize(
|
||||
@@ -88,8 +94,9 @@ TaskInfo _taskInfoDeserialize(
|
||||
final object = TaskInfo();
|
||||
object.additionalText = reader.readStringOrNull(offsets[0]);
|
||||
object.answer = reader.readStringOrNull(offsets[1]);
|
||||
object.completed = reader.readBool(offsets[2]);
|
||||
object.id = id;
|
||||
object.sId = reader.readLong(offsets[2]);
|
||||
object.sId = reader.readLong(offsets[3]);
|
||||
return object;
|
||||
}
|
||||
|
||||
@@ -105,6 +112,8 @@ P _taskInfoDeserializeProp<P>(
|
||||
case 1:
|
||||
return (reader.readStringOrNull(offset)) as P;
|
||||
case 2:
|
||||
return (reader.readBool(offset)) as P;
|
||||
case 3:
|
||||
return (reader.readLong(offset)) as P;
|
||||
default:
|
||||
throw IsarError('Unknown property with id $propertyId');
|
||||
@@ -499,6 +508,16 @@ extension TaskInfoQueryFilter
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterFilterCondition> completedEqualTo(
|
||||
bool value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'completed',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterFilterCondition> idEqualTo(Id value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
@@ -636,6 +655,18 @@ extension TaskInfoQuerySortBy on QueryBuilder<TaskInfo, TaskInfo, QSortBy> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterSortBy> sortByCompleted() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'completed', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterSortBy> sortByCompletedDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'completed', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterSortBy> sortBySId() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'sId', Sort.asc);
|
||||
@@ -675,6 +706,18 @@ extension TaskInfoQuerySortThenBy
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterSortBy> thenByCompleted() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'completed', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterSortBy> thenByCompletedDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'completed', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QAfterSortBy> thenById() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'id', Sort.asc);
|
||||
@@ -717,6 +760,12 @@ extension TaskInfoQueryWhereDistinct
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QDistinct> distinctByCompleted() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'completed');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, TaskInfo, QDistinct> distinctBySId() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'sId');
|
||||
@@ -744,6 +793,12 @@ extension TaskInfoQueryProperty
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, bool, QQueryOperations> completedProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'completed');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TaskInfo, int, QQueryOperations> sIdProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'sId');
|
||||
|
||||
@@ -138,8 +138,8 @@ TourTask _tourTaskDeserialize(
|
||||
object.max = reader.readLongOrNull(offsets[0]);
|
||||
object.maxLen = reader.readLongOrNull(offsets[1]);
|
||||
object.min = reader.readLongOrNull(offsets[2]);
|
||||
object.opt = reader.readBoolOrNull(offsets[3]);
|
||||
object.reenter = reader.readBoolOrNull(offsets[4]);
|
||||
object.opt = reader.readBool(offsets[3]);
|
||||
object.reenter = reader.readBool(offsets[4]);
|
||||
object.rt = reader.readBoolOrNull(offsets[5]);
|
||||
object.sId = reader.readLong(offsets[6]);
|
||||
object.taskArrival = reader.readLongOrNull(offsets[7]);
|
||||
@@ -165,9 +165,9 @@ P _tourTaskDeserializeProp<P>(
|
||||
case 2:
|
||||
return (reader.readLongOrNull(offset)) as P;
|
||||
case 3:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readBool(offset)) as P;
|
||||
case 4:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
return (reader.readBool(offset)) as P;
|
||||
case 5:
|
||||
return (reader.readBoolOrNull(offset)) as P;
|
||||
case 6:
|
||||
@@ -398,24 +398,8 @@ extension TourTaskQueryFilter
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> optIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'opt',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> optIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'opt',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> optEqualTo(
|
||||
bool? value) {
|
||||
bool value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'opt',
|
||||
@@ -424,24 +408,8 @@ extension TourTaskQueryFilter
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> reenterIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'reenter',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> reenterIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'reenter',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> reenterEqualTo(
|
||||
bool? value) {
|
||||
bool value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'reenter',
|
||||
@@ -1123,8 +1091,8 @@ TourTask _$TourTaskFromJson(Map<String, dynamic> json) => TourTask()
|
||||
..sId = json['s_id'] as int
|
||||
..type = json['type'] as int
|
||||
..topic = json['topic'] as String
|
||||
..opt = json['opt'] as bool?
|
||||
..reenter = json['reenter'] as bool?
|
||||
..opt = json['opt'] as bool
|
||||
..reenter = json['reenter'] as bool
|
||||
..min = json['min'] as int?
|
||||
..max = json['max'] as int?
|
||||
..maxLen = json['max_len'] as int?
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:stadtbote/tools/constants.dart';
|
||||
|
||||
class ColoredSafeArea extends StatelessWidget {
|
||||
final Widget child;
|
||||
@@ -9,7 +10,7 @@ class ColoredSafeArea extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
color: Theme.of(context).colorScheme.primaryContainer,
|
||||
color: Constants.colorPrimary,
|
||||
child: SafeArea(
|
||||
child: child,
|
||||
),
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import 'dart:ui';
|
||||
|
||||
class Constants {
|
||||
static const Color colorPrimary = Color(0xff0095DB);
|
||||
static const Color colorPrimary = Color(0xFFE00029);
|
||||
static const Color colorPrimaryOpaque = Color(0x33E00029);
|
||||
|
||||
static const String messageTopicConnectionStatusChanged = "connection_status_changed";
|
||||
static const String messageTopicSessionInfoUpdate = "status_info_updated";
|
||||
static const String messageTopicStatusInfoUpdate = "session_info_updated";
|
||||
static const String messageTopicPushContentView = "push_content_view";
|
||||
static const String messageTopicPopContentView = "pop_content_view";
|
||||
static const String messageTopicReplaceContentView = "replace_content_view";
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:math';
|
||||
import 'dart:typed_data' as typed;
|
||||
|
||||
import 'package:flutter_broadcast_receiver/flutter_broadcast_receiver.dart';
|
||||
import 'package:mqtt_client/mqtt_client.dart';
|
||||
@@ -9,9 +10,12 @@ import 'package:stadtbote/model/bootstrap_request.dart';
|
||||
import 'package:stadtbote/model/bootstrap_response_payload.dart';
|
||||
import 'package:stadtbote/model/device_object.dart';
|
||||
import 'package:stadtbote/model/job.dart';
|
||||
import 'package:stadtbote/model/start_session_message.dart';
|
||||
import 'package:stadtbote/tools/connection_status.dart';
|
||||
import 'package:stadtbote/tools/session_info_update.dart';
|
||||
import 'package:typed_data/typed_buffers.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import '../main.dart';
|
||||
import '../model/status.dart';
|
||||
@@ -64,6 +68,8 @@ class MqttCore {
|
||||
_reconnectDelay = 0;
|
||||
|
||||
_setupSubscriptions();
|
||||
|
||||
_initSession();
|
||||
} else {
|
||||
Util.logInfo('Verbindung zum MQTT-Broker fehlgeschlagen!');
|
||||
|
||||
@@ -146,6 +152,8 @@ class MqttCore {
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.status.put(statusMessage);
|
||||
});
|
||||
|
||||
BroadcastReceiver().publish<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, arguments: StatusInfoUpdate(status: statusMessage));
|
||||
}
|
||||
|
||||
void _jobMessageReceived(payloadData) async {
|
||||
@@ -211,4 +219,64 @@ class MqttCore {
|
||||
_startReconnectTimer();
|
||||
}
|
||||
}
|
||||
|
||||
_initSession() {
|
||||
var playload = Payload();
|
||||
playload.startSession = "true";
|
||||
|
||||
var startSessionMessage = StartSessionMessage();
|
||||
startSessionMessage.recv = "server";
|
||||
startSessionMessage.store = true;
|
||||
startSessionMessage.messageId = const Uuid().v4();;
|
||||
startSessionMessage.payload = playload;
|
||||
|
||||
var jsonMap = startSessionMessage.toJson();
|
||||
var json = jsonEncode(jsonMap);
|
||||
Util.logInfo("json: $json");
|
||||
|
||||
final builder = MqttClientPayloadBuilder();
|
||||
builder.addString(json);
|
||||
var payload = builder.payload;
|
||||
|
||||
var topic = "$_toServerTopic/init";
|
||||
Util.logInfo("topic: $topic");
|
||||
|
||||
var messageId = _mqttClient.publishMessage(topic, MqttQos.exactlyOnce, payload!);
|
||||
Util.logInfo("messageId: $messageId");
|
||||
}
|
||||
|
||||
/*
|
||||
private async void StartSession()
|
||||
{
|
||||
App.Logger.Debug("StartSession called");
|
||||
|
||||
App.Logger.Debug("Setting state to start session");
|
||||
_mqttState = MqttStateEnum.StartSession;
|
||||
|
||||
var startSession = new JObject
|
||||
{
|
||||
new JProperty("recv", "server"),
|
||||
new JProperty("store", true),
|
||||
new JProperty("id", Guid.NewGuid().ToString()),
|
||||
new JProperty("payload", new JObject(
|
||||
new JProperty("start_session", "true")))
|
||||
};
|
||||
|
||||
var json = JsonConvert.SerializeObject(startSession);
|
||||
|
||||
var topic = _toServerTopic + "/init";
|
||||
var message = new MqttApplicationMessage()
|
||||
{
|
||||
Topic = topic,
|
||||
Payload = Encoding.UTF8.GetBytes(json),
|
||||
QualityOfServiceLevel = MqttQualityOfServiceLevel.ExactlyOnce,
|
||||
Retain = true,
|
||||
MessageExpiryInterval = 3600,
|
||||
};
|
||||
await _mqttClient.PublishAsync(message);
|
||||
App.Logger.Debug("StartSession message " + json + " published to " + topic);
|
||||
|
||||
SendEnqueuedMessages();
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
import 'package:stadtbote/model/status.dart';
|
||||
|
||||
class StatusInfoUpdate {
|
||||
StatusInfoUpdate({required this.status});
|
||||
|
||||
final Status status;
|
||||
}
|
||||
Reference in new issue
Block a user