worldhopper/lib/providers/precache_pages_provider.dart
Felipe M. 696e963434
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
feat: pre-cache next pages in opds reader
2026-02-10 21:59:11 +01:00

34 lines
1 KiB
Dart

import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shared_preferences/shared_preferences.dart';
part 'precache_pages_provider.g.dart';
/// Key for storing pre-cache pages preference in SharedPreferences
const String _precachePagesKey = 'image_reader_precache_pages';
/// Provider for image reader pre-cache pages state management
@riverpod
class PrecachePagesNotifier extends _$PrecachePagesNotifier {
@override
int build() {
_loadPrecachePages();
return 3; // Default value until loaded
}
/// Load pre-cache pages count from SharedPreferences
Future<void> _loadPrecachePages() async {
final prefs = await SharedPreferences.getInstance();
final count = prefs.getInt(_precachePagesKey);
if (count != null) {
state = count.clamp(0, 5);
}
}
/// Set pre-cache pages count and persist to SharedPreferences
Future<void> setPrecachePages(int count) async {
state = count.clamp(0, 5);
final prefs = await SharedPreferences.getInstance();
await prefs.setInt(_precachePagesKey, count);
}
}