diff --git a/lib/ui/contacts_cache.dart b/lib/ui/contacts_cache.dart index 6b700057740bb7b049b6e1171a2aec1b3e5795c8..8683fc145c0e907a88d7661471f94c61249d3b12 100644 --- a/lib/ui/contacts_cache.dart +++ b/lib/ui/contacts_cache.dart @@ -1,8 +1,10 @@ import 'dart:async'; import 'dart:convert'; +import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; +import 'package:path_provider/path_provider.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import '../data/models/contact.dart'; @@ -20,7 +22,13 @@ class ContactsCache { Box<dynamic>? _box; Future<void> init() async { - _box = await Hive.openBox(_boxName); + if (kIsWeb) { + _box = await Hive.openBox(_boxName); + } else { + final Directory appDocDir = await getApplicationDocumentsDirectory(); + final String appDocPath = appDocDir.path; + _box = await Hive.openBox(_boxName, path: appDocPath); + } } Future<void> dispose() async { @@ -91,6 +99,8 @@ class ContactsCache { } } + Future<void> saveContact(Contact contact) async => addContact(contact); + Future<void> addContact(Contact contact) async { // Get the cached version of the contact, if it exists Contact? cachedContact = await _retrieveContact(contact.pubKey);