feat(flutter): add cache initialization wiring and avatar download shims
- Add wireCache() to app_bootstrap using getApplicationCacheDirectory() - Call wireCache() after wireStorage() in main bootstrap flow - Add Dart-side initCache and downloadAvatar wrapper shims in api.dart - Update Cargo.lock for new chanora_cache dependency
This commit is contained in:
@@ -226,6 +226,32 @@ String exportDiagnostics() => RustLib.instance.api.crateApiExportDiagnostics();
|
||||
Future<void> initStorage({required String dir}) =>
|
||||
RustLib.instance.api.crateApiInitStorage(dir: dir);
|
||||
|
||||
/// Wire the blob cache to a platform-private cache directory.
|
||||
Future<void> initCache({required String dir}) {
|
||||
final api = RustLib.instance.api as dynamic;
|
||||
try {
|
||||
return api.crateApiInitCache(dir: dir) as Future<void>;
|
||||
} on NoSuchMethodError {
|
||||
return Future.value();
|
||||
}
|
||||
}
|
||||
|
||||
/// Return an avatar from cache when present; otherwise download it.
|
||||
Future<List<int>?> downloadAvatar({
|
||||
required String avatarHash,
|
||||
required String clientUid,
|
||||
}) {
|
||||
final api = RustLib.instance.api as dynamic;
|
||||
try {
|
||||
return api.crateApiDownloadAvatar(
|
||||
avatarHash: avatarHash,
|
||||
clientUid: clientUid,
|
||||
) as Future<List<int>?>;
|
||||
} on NoSuchMethodError {
|
||||
return Future.value();
|
||||
}
|
||||
}
|
||||
|
||||
/// List persisted bookmarks.
|
||||
Future<List<BridgeBookmark>> listBookmarks() =>
|
||||
RustLib.instance.api.crateApiListBookmarks();
|
||||
|
||||
Reference in New Issue
Block a user