Flutter plugin for scanning and generating QR codes using the ZXing library, supporting Android, iOS, and desktop platforms
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.4 KiB

import 'package:hive_flutter/hive_flutter.dart';
import '../models/models.dart';
class DbService {
DbService._privateConstructor();
static final DbService instance = DbService._privateConstructor();
Future<void> initializeApp() async {
await Hive.initFlutter();
Hive.registerAdapter(CodeAdapter());
Hive.registerAdapter(EncodeAdapter());
await Hive.openBox<Code>('codes');
await Hive.openBox<Encode>('encodes');
}
Box<Code> getCodes() => Hive.box<Code>('codes');
Future<void> deleteCodes() async {
final Box<Code> items = getCodes();
await items.deleteAll(items.keys);
}
Future<int> addCode(Code value) async {
final Box<Code> items = getCodes();
if (!items.values.contains(value)) {
return items.add(value);
}
return -1;
}
Future<void> deleteCode(Code value) async {
final Box<Code> items = getCodes();
await items.delete(value.key);
return;
}
Box<Encode> getEncodes() => Hive.box<Encode>('encodes');
Future<void> deleteEncodes() async {
final Box<Encode> items = getEncodes();
await items.deleteAll(items.keys);
}
Future<int> addEncode(Encode value) async {
final Box<Encode> items = getEncodes();
if (!items.values.contains(value)) {
return items.add(value);
}
return -1;
}
Future<void> deleteEncode(Encode value) async {
final Box<Encode> items = getEncodes();
await items.delete(value.key);
return;
}
}