All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
34 lines
1 KiB
Dart
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);
|
|
}
|
|
}
|