File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import 'dart:typed_data';
22import 'package:riverpod_annotation/riverpod_annotation.dart' ;
33import 'package:image_picker/image_picker.dart' ;
44import 'package:flutter_image_compress/flutter_image_compress.dart' ;
5+ import 'package:off_chat/src/core/database/database_provider.dart' ;
56import 'package:off_chat/src/core/database/isar_service.dart' ;
67import 'package:off_chat/src/core/database/models/message.dart' ;
78import 'package:off_chat/src/features/chat/data/message_handler.dart' ;
@@ -12,8 +13,15 @@ part 'chat_controller.g.dart';
1213class ChatController extends _$ChatController {
1314 @override
1415 Stream <List <Message >> build (String remoteDeviceId) {
15- final stableId = int .parse (remoteDeviceId);
16- return IsarService ().watchMessagesWithDevice (stableId);
16+ // Ensure Isar is initialized
17+ final isarAsync = ref.watch (isarDatabaseProvider);
18+
19+ if (isarAsync.hasValue) {
20+ final stableId = int .parse (remoteDeviceId);
21+ return IsarService ().watchMessagesWithDevice (stableId);
22+ }
23+
24+ return const Stream .empty ();
1725 }
1826
1927 Future <void > sendTextMessage (String text) async {
Original file line number Diff line number Diff line change 11import 'dart:async' ;
22import 'package:riverpod_annotation/riverpod_annotation.dart' ;
3+ import 'package:off_chat/src/core/database/database_provider.dart' ;
34import 'package:off_chat/src/core/database/isar_service.dart' ;
45import 'package:off_chat/src/core/database/models/found_device.dart' ;
56
@@ -9,11 +10,18 @@ part 'discovery_controller.g.dart';
910class DiscoveryController extends _$DiscoveryController {
1011 @override
1112 Stream <List <FoundDevice >> build () {
12- return IsarService ().watchFoundDevices ();
13+ // Watch the provider to ensure Isar is initialized
14+ final isarAsync = ref.watch (isarDatabaseProvider);
15+
16+ if (isarAsync.hasValue) {
17+ return IsarService ().watchFoundDevices ();
18+ }
19+
20+ // Return empty stream while initializing
21+ return const Stream .empty ();
1322 }
1423
1524 Future <void > manualRefresh () async {
1625 // Background service handles discovery cycle automatically.
17- // We could potentially trigger a manual scan via service invoke if needed.
1826 }
1927}
You can’t perform that action at this time.
0 commit comments