Flutter plugin for scanning and generating QR codes using the ZXing library, supporting Android, iOS, and desktop platforms
flutterbarcode-generatorbarcode-scannergeneratorqrqrcodeqrcode-generatorqrcode-scannerscannerzxingbarcodezxscanner
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
61 lines
1.4 KiB
import 'package:zxscanner/models/models.dart'; |
|
import 'package:hive_flutter/hive_flutter.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 deleteCodes() async { |
|
var items = getCodes(); |
|
await items.deleteAll(items.keys); |
|
return; |
|
} |
|
|
|
Future addCode(Code value) async { |
|
var items = getCodes(); |
|
if (!items.values.contains(value)) { |
|
return items.add(value); |
|
} |
|
return; |
|
} |
|
|
|
Future<void> deleteCode(Code value) async { |
|
var items = getCodes(); |
|
await items.delete(value.key); |
|
return; |
|
} |
|
|
|
Box<Encode> getEncodes() => Hive.box<Encode>('encodes'); |
|
|
|
Future deleteEncodes() async { |
|
var items = getEncodes(); |
|
await items.deleteAll(items.keys); |
|
return; |
|
} |
|
|
|
Future addEncode(Encode value) async { |
|
var items = getEncodes(); |
|
if (!items.values.contains(value)) { |
|
return items.add(value); |
|
} |
|
return; |
|
} |
|
|
|
Future<void> deleteEncode(Encode value) async { |
|
var items = getEncodes(); |
|
await items.delete(value.key); |
|
return; |
|
} |
|
}
|
|
|