Files
Redesnigned-Finamp/lib/models/locale_adapter.dart
T
Zakaria 1563409cb1
Build / Build for Android (push) Has been cancelled
Build / Build for iOS (push) Has been cancelled
first commit
2026-05-18 14:15:38 -04:00

34 lines
833 B
Dart

import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
class LocaleAdapter extends TypeAdapter<Locale> {
@override
int get typeId => 42;
@override
Locale read(BinaryReader reader) {
final localeList = reader.readStringList();
final languageCode = localeList[0];
// scriptCode and countryCode are empty strings when null (see write)
final scriptCode = localeList[1] == "" ? null : localeList[1];
final countryCode = localeList[2] == "" ? null : localeList[2];
return Locale.fromSubtags(
languageCode: languageCode,
scriptCode: scriptCode,
countryCode: countryCode,
);
}
@override
void write(BinaryWriter writer, Locale obj) {
writer.writeStringList([
obj.languageCode,
obj.scriptCode ?? "",
obj.countryCode ?? "",
]);
}
}