getImageByHash method
gets image specified by its hash
Implementation
Future<ImageData?> getImageByHash(String hash,
{bool compressed = false, Data? owner}) async {
// Scoped/local hashes (with folders or local prefix) must not trigger remote fetches
final isLocalScoped =
hash.contains('/') || hash.startsWith(LOCALLY_ADDED_PREFIX);
if (isLocalScoped) {
try {
return await local.getImageByHash(hash,
compressed: compressed, owner: owner);
} catch (_) {
// fallback to normal flow below if not found locally
}
}
final requestType = Helper.SimulatedRequestType.GET;
return _run(
itPrefersCache:
isLocalScoped, //! wir nehmen immer lieber lokale bilder, bandbreite und so
offline: () =>
local.getImageByHash(hash, compressed: compressed, owner: owner),
online: () =>
remote.getImageByHash(hash, compressed: compressed, owner: owner),
requestType: requestType,
).last;
}