ObjectBox

This commit is contained in:
Sven committed 2025-10-23 11:28:03 +02:00
1 parent e548f62bde
commit f8317be627
60 files changed
+2367 -15049

No files matched your search

+16 -21
View File
@@ -2,13 +2,12 @@ import 'package:dart_mq/dart_mq.dart';
import 'package:flutter/material.dart';
import 'package:flutter_chat_ui/flutter_chat_ui.dart';
import 'package:flutter_chat_types/flutter_chat_types.dart' as types;
import 'package:isar/isar.dart';
import 'package:stadtbote/content_views/utils/content_view_widget.dart';
import 'package:stadtbote/main.dart';
import 'package:stadtbote/messages/pop_content_view_message.dart';
import 'package:stadtbote/model/chat_message.dart' as sbmessage;
import 'package:stadtbote/model/chat_message.dart';
import 'package:stadtbote/model/session_status.dart';
import 'package:stadtbote/objectbox.g.dart';
import 'package:stadtbote/network_messages/messages_showed.dart';
import 'package:stadtbote/tools/constants.dart';
import 'package:stadtbote/tools/messages/publish_payload_message.dart';
@@ -49,7 +48,9 @@ class _MessagesPageState extends State<MessagesPage> with ProducerMixin {
super.initState();
Future.delayed(const Duration(seconds: 0), () async {
var status = await MyApp.isarInstance.sessionStatus.where().findFirst();
final box = MyApp.objectBoxStore.box<SessionStatus>();
final sessions = box.getAll();
var status = sessions.isNotEmpty ? sessions.first : null;
_sid = status != null ? status.sid : 'Unbekannt';
_sendMessagesReadMessage();
@@ -97,9 +98,8 @@ class _MessagesPageState extends State<MessagesPage> with ProducerMixin {
message.read = true;
message.id = await sbmessage.ChatMessage.getNextId();
await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.chatMessages.put(message);
});
final box = MyApp.objectBoxStore.box<sbmessage.ChatMessage>();
box.put(message);
sendMessage(
routingKey: Constants.messageTopicPublishPayload,
@@ -124,7 +124,9 @@ class _MessagesPageState extends State<MessagesPage> with ProducerMixin {
Future<void> _fetchMessages() async {
_messages.clear();
var messages = await MyApp.isarInstance.chatMessages.where().findAll();
final box = MyApp.objectBoxStore.box<sbmessage.ChatMessage>();
var messages = box.getAll();
for (var message in messages) {
_messages.add(types.TextMessage(
author: message.from == _sid ? _user : _central,
@@ -136,9 +138,7 @@ class _MessagesPageState extends State<MessagesPage> with ProducerMixin {
_messages.sort((a, b) => b.createdAt! > a.createdAt! ? 1 : 0);
message.read = true;
await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.chatMessages.put(message);
});
box.put(message);
}
setState(() {});
@@ -177,13 +177,8 @@ class _MessagesPageState extends State<MessagesPage> with ProducerMixin {
child: getDefaultButton(
'Ja',
() async => {
await MyApp.isarInstance.writeTxn(
() async => {
await MyApp.isarInstance
.chatMessages
.delete(int.parse(
message.id))
}),
MyApp.objectBoxStore.box<sbmessage.ChatMessage>()
.remove(int.parse(message.id)),
_fetchMessages(),
setState(() {}),
Navigator.of(MyApp.appNavigatorKey
@@ -201,10 +196,10 @@ class _MessagesPageState extends State<MessagesPage> with ProducerMixin {
}
void _sendMessagesReadMessage() async {
var unreadChatMessages = await MyApp.isarInstance.chatMessages
.filter()
.readEqualTo(false)
.findAll();
final box = MyApp.objectBoxStore.box<sbmessage.ChatMessage>();
final query = box.query(ChatMessage_.read.equals(false)).build();
var unreadChatMessages = query.find();
query.close();
if (unreadChatMessages.isNotEmpty) {
List<String> chatMessageIds = [];