41 lines
1.1 KiB
Dart
41 lines
1.1 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import '../database/database_helper.dart';
|
|
import '../models/configuracion.dart';
|
|
import '../services/notification_service.dart';
|
|
|
|
class ConfiguracionProvider extends ChangeNotifier {
|
|
final DatabaseHelper _db = DatabaseHelper.instance;
|
|
Configuracion? _config;
|
|
bool _cargando = false;
|
|
|
|
Configuracion? get config => _config;
|
|
bool get cargando => _cargando;
|
|
|
|
Future<void> cargarConfiguracion() async {
|
|
_cargando = true;
|
|
notifyListeners();
|
|
_config = await _db.getConfiguracion();
|
|
if (_config == null) {
|
|
_config = Configuracion(diasRecordatorio: '7,3,1,0');
|
|
await _db.saveConfiguracion(_config!);
|
|
}
|
|
_cargando = false;
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> guardarConfiguracion(Configuracion config) async {
|
|
await _db.saveConfiguracion(config);
|
|
_config = config;
|
|
await NotificationService.instance.scheduleRecordatorios();
|
|
notifyListeners();
|
|
}
|
|
|
|
List<int> get diasRecordatorioList {
|
|
if (_config == null) return [7, 3, 1, 0];
|
|
return _config!.diasRecordatorio
|
|
.split(',')
|
|
.map((e) => int.tryParse(e.trim()) ?? 0)
|
|
.toList();
|
|
}
|
|
}
|