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 _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 setPrecachePages(int count) async { state = count.clamp(0, 5); final prefs = await SharedPreferences.getInstance(); await prefs.setInt(_precachePagesKey, count); } }