Refactor cache key generation to use stable hash codes for java objects arguments

This commit is contained in:
Kevin Rodrigues Borges
2025-12-21 12:56:21 +00:00
parent f810fba0fe
commit 1e8360b15a

View File

@@ -429,10 +429,26 @@ class AniyomiBridge {
String _generateCacheKey(JniIsolateMessageType messageType, Map<String, dynamic> args) {
// Create a stable string representation of the args
final argsString = jsonEncode(args);
// final argsString = jsonEncode(args);
final argsString = args.entries
.map((entry) => "${entry.key}:${_getStableHashCode(entry.value)}")
.join(":").hashCode;
return "${messageType.name}_$argsString";
}
int _getStableHashCode(dynamic value) {
if (value is JSEpisode) {
return value.getUrl().toDartString().hashCode;
}else if (value is JSAnime) {
return value.getUrl().toDartString().hashCode;
} else if (value is JSManga) {
return value.getUrl().toDartString().hashCode;
} else if (value is JSChapter) {
return value.getUrl().toDartString().hashCode;
}
return value.hashCode;
}
// bool _isCacheable(JniIsolateMessageType messageType) {