import 'package:hive_flutter/hive_flutter.dart'; const String kDataBox = "data"; const String kKeyDataBoxIds = "ids"; const String kSettingsBox = "settings"; const String kKeySettingsBoxDarkMode = "darkMode"; Future openBoxes() async { await Hive.initFlutter(); await Hive.openBox(kDataBox); await Hive.openBox(kSettingsBox); } class HiveHandler { late final Box dataBox; late final Box settingsBox; HiveHandler() { dataBox = Hive.box(kDataBox); settingsBox = Hive.box(kSettingsBox); } dynamic getDarkMode() => settingsBox.get(kKeySettingsBoxDarkMode); Future setDarkMode(bool isDark) => settingsBox.put(kKeySettingsBoxDarkMode, isDark); dynamic getIds() => dataBox.get(kKeyDataBoxIds); Future setIds(List? ids) => dataBox.put(kKeyDataBoxIds, ids); dynamic getRequestModel(String id) => dataBox.get(id); Future setRequestModel( String id, Map? requestModelJson) => dataBox.put(id, requestModelJson); Future clear() => dataBox.clear(); void delete(String key) => dataBox.delete(key); Future removeUnused() async { var ids = getIds(); if (ids != null) { ids = ids as List; for (var key in dataBox.keys.toList()) { if (key != kKeyDataBoxIds && !ids.contains(key)) { await dataBox.delete(key); } } } } }