From 1e8360b15aa713f9dc92fd3bb8930395bb73e14e Mon Sep 17 00:00:00 2001 From: Kevin Rodrigues Borges <115191440+K3vinb5@users.noreply.github.com> Date: Sun, 21 Dec 2025 12:56:21 +0000 Subject: [PATCH] Refactor cache key generation to use stable hash codes for java objects arguments --- lib/aniyomi_bridge.dart | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/aniyomi_bridge.dart b/lib/aniyomi_bridge.dart index 1b125cb..876601d 100644 --- a/lib/aniyomi_bridge.dart +++ b/lib/aniyomi_bridge.dart @@ -429,10 +429,26 @@ class AniyomiBridge { String _generateCacheKey(JniIsolateMessageType messageType, Map 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) {