Line data Source code
1 : import 'dart:io'; 2 : 3 : import 'package:flutter/cupertino.dart'; 4 : import 'package:hive/hive.dart'; 5 : import 'package:pal/src/database/entity/helper/helper_trigger_type.dart'; 6 : import 'entity/helper/helper_entity.dart'; 7 : import 'entity/helper/helper_group_entity.dart'; 8 : import 'entity/helper/helper_type.dart'; 9 : import 'entity/helper/schema_entity.dart'; 10 : import 'entity/page_user_visit_entity.dart'; 11 : import 'entity/page_entity.dart'; 12 : import 'package:hive_flutter/hive_flutter.dart'; 13 : 14 : typedef Future<Box<T>> LocalDbOpener<T>(); 15 : 16 : class HiveClient { 17 : 18 4 : HiveClient({bool shouldInit = true}) { 19 : if(!shouldInit) 20 : return; 21 2 : init(); 22 : } 23 : 24 : @visibleForTesting 25 2 : init() async { 26 6 : await Hive.initFlutter(); 27 0 : initAdapters(); 28 : } 29 : 30 2 : @visibleForTesting 31 : initLocal() { 32 4 : Hive.init('localstorage'); 33 2 : initAdapters(); 34 : } 35 : 36 2 : @visibleForTesting 37 : initAdapters() { 38 6 : Hive.registerAdapter(SchemaEntityAdapter()); 39 6 : Hive.registerAdapter(HelperGroupEntityAdapter()); 40 6 : Hive.registerAdapter(HelperEntityAdapter()); 41 6 : Hive.registerAdapter(PageEntityAdapter()); 42 6 : Hive.registerAdapter(HelperGroupUserVisitEntityAdapter()); 43 6 : Hive.registerAdapter(HelperTypeAdapter()); 44 6 : Hive.registerAdapter(HelperTriggerTypeAdapter()); 45 6 : Hive.registerAdapter(HelperTextEntityAdapter()); 46 6 : Hive.registerAdapter(HelperImageEntityAdapter()); 47 6 : Hive.registerAdapter(HelperBorderEntityAdapter()); 48 6 : Hive.registerAdapter(HelperBoxEntityAdapter()); 49 : } 50 : 51 4 : LocalDbOpener<SchemaEntity> get openSchemaBox => 52 6 : () => Hive.openBox<SchemaEntity>('schema'); 53 : 54 4 : LocalDbOpener<HelperGroupUserVisitEntity> get openVisitsBox => 55 6 : () => Hive.openBox<HelperGroupUserVisitEntity>('visits'); 56 : 57 : 58 0 : close() => Hive.close(); 59 : }