feat: добавить адаптер IconData для Hive

This commit is contained in:
2025-06-09 17:00:21 +03:00
parent d578c72691
commit 8414233e14
2 changed files with 26 additions and 0 deletions
+4
View File
@@ -1,6 +1,7 @@
import 'package:hive_ce_flutter/hive_flutter.dart';
import 'package:logger/logger.dart';
import '/models/category.dart';
import '/models/icon_data_adapter.dart';
import '/models/tag.dart';
import '/models/transaction_record.dart';
import '/utils/category_utils.dart';
@@ -19,6 +20,9 @@ class HiveService {
await Hive.initFlutter();
// Регистрация адаптеров
if (!Hive.isAdapterRegistered(IconDataAdapter().typeId)) {
Hive.registerAdapter(IconDataAdapter());
}
if (!Hive.isAdapterRegistered(CategoryAdapter().typeId)) {
Hive.registerAdapter(CategoryAdapter());
}
+22
View File
@@ -0,0 +1,22 @@
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
class IconDataAdapter extends TypeAdapter<IconData> {
@override
final typeId = 100; // Уникальный ID, не пересекающийся с другими адаптерами
@override
IconData read(BinaryReader reader) {
return IconData(
reader.readInt(), // codePoint
fontFamily: reader.readString(), // fontFamily
);
}
@override
void write(BinaryWriter writer, IconData obj) {
writer
..writeInt(obj.codePoint)
..writeString(obj.fontFamily ?? 'MaterialIcons');
}
}