feat: добавить адаптер IconData для Hive
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user