fix: honor local library auto-scan cooldown

This commit is contained in:
zarzet
2026-03-16 22:35:17 +07:00
parent 6ecb69feae
commit 9bebed506b
3 changed files with 37 additions and 13 deletions
+29
View File
@@ -0,0 +1,29 @@
import 'package:shared_preferences/shared_preferences.dart';
const localLibraryLastScannedAtKey = 'local_library_last_scanned_at';
DateTime? readLocalLibraryLastScannedAt(SharedPreferences prefs) {
final lastScannedAtStr = prefs.getString(localLibraryLastScannedAtKey);
if (lastScannedAtStr != null && lastScannedAtStr.isNotEmpty) {
return DateTime.tryParse(lastScannedAtStr);
}
// Backward compatibility for older builds that may have stored epoch millis.
final lastScannedAtMs = prefs.getInt(localLibraryLastScannedAtKey);
if (lastScannedAtMs != null) {
return DateTime.fromMillisecondsSinceEpoch(lastScannedAtMs);
}
return null;
}
Future<void> writeLocalLibraryLastScannedAt(
SharedPreferences prefs,
DateTime value,
) {
return prefs.setString(localLibraryLastScannedAtKey, value.toIso8601String());
}
Future<void> clearLocalLibraryLastScannedAt(SharedPreferences prefs) {
return prefs.remove(localLibraryLastScannedAtKey);
}