simplified code across the app and consolidated duplicated helpers

This commit is contained in:
2026-09-27 17:29:54 +02:00
parent 3e856d0b1c
commit ee1240f71a
155 changed files with 1772 additions and 2546 deletions
+18 -18
View File
@@ -66,13 +66,15 @@ class AvatarDiskCache {
return isGroup ? 'g_$hex' : 'u_${hex}_$size';
}
static String _hex(String value) {
final buffer = StringBuffer();
for (final b in utf8.encode(value)) {
buffer.write(b.toRadixString(16).padLeft(2, '0'));
}
return buffer.toString();
}
static String _hex(String value) =>
utf8.encode(value).map((b) => b.toRadixString(16).padLeft(2, '0')).join();
File _file(
String dirPath, {
required String id,
required bool isGroup,
required int size,
}) => File('$dirPath/${fileName(id: id, isGroup: isGroup, size: size)}');
/// Synchronous read for warm sessions (cache directory already resolved).
/// Returns null when the directory isn't known yet — the caller falls back
@@ -86,9 +88,7 @@ class AvatarDiskCache {
final path = _dirPath;
if (path == null) return null;
try {
final file = File(
'$path/${fileName(id: id, isGroup: isGroup, size: size)}',
);
final file = _file(path, id: id, isGroup: isGroup, size: size);
if (!file.existsSync()) return null;
final bytes = file.readAsBytesSync();
return bytes.isEmpty ? null : bytes;
@@ -104,9 +104,7 @@ class AvatarDiskCache {
}) async {
try {
final dir = await _directory();
final file = File(
'${dir.path}/${fileName(id: id, isGroup: isGroup, size: size)}',
);
final file = _file(dir.path, id: id, isGroup: isGroup, size: size);
if (!file.existsSync()) return null;
final bytes = await file.readAsBytes();
return bytes.isEmpty ? null : bytes;
@@ -123,10 +121,12 @@ class AvatarDiskCache {
}) async {
try {
final dir = await _directory();
final file = File(
'${dir.path}/${fileName(id: id, isGroup: isGroup, size: size)}',
);
await file.writeAsBytes(bytes, flush: true);
await _file(
dir.path,
id: id,
isGroup: isGroup,
size: size,
).writeAsBytes(bytes);
if (!_pruned) {
_pruned = true;
unawaited(_prune(dir));
@@ -142,7 +142,7 @@ class AvatarDiskCache {
try {
final dir = await _directory();
if (isGroup) {
final file = File('${dir.path}/${fileName(id: id, isGroup: true, size: 0)}');
final file = _file(dir.path, id: id, isGroup: true, size: 0);
if (file.existsSync()) await file.delete();
return;
}