Files
rmtPocketWatcher/flutter_app/lib/services/storage_service.dart
HRiggs 9ff0d62651
Some checks failed
Flutter Release / get-version (push) Successful in 8s
Flutter Release / build-windows (push) Failing after 9s
Flutter Release / build-android (push) Failing after 1m12s
Flutter Release / create-release (push) Has been skipped
check update
2025-12-14 23:11:50 -05:00

66 lines
2.0 KiB
Dart

import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
import '../models/price_data.dart';
class StorageService {
static const String _alertsKey = 'price_alerts';
static const String _customAuecKey = 'custom_auec_amount';
Future<List<PriceAlert>> getAlerts() async {
final prefs = await SharedPreferences.getInstance();
final alertsJson = prefs.getString(_alertsKey);
if (alertsJson == null) return [];
final List<dynamic> decoded = jsonDecode(alertsJson);
return decoded.map((e) => PriceAlert.fromJson(e as Map<String, dynamic>)).toList();
}
Future<void> saveAlerts(List<PriceAlert> alerts) async {
final prefs = await SharedPreferences.getInstance();
final alertsJson = jsonEncode(alerts.map((e) => e.toJson()).toList());
await prefs.setString(_alertsKey, alertsJson);
}
Future<void> addAlert(PriceAlert alert) async {
final alerts = await getAlerts();
alerts.add(alert);
await saveAlerts(alerts);
}
Future<void> updateAlert(PriceAlert alert) async {
final alerts = await getAlerts();
final index = alerts.indexWhere((a) => a.id == alert.id);
if (index != -1) {
alerts[index] = alert;
await saveAlerts(alerts);
}
}
Future<void> deleteAlert(String id) async {
final alerts = await getAlerts();
alerts.removeWhere((a) => a.id == id);
await saveAlerts(alerts);
}
Future<double?> getCustomAuecAmount() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getDouble(_customAuecKey);
}
Future<void> setCustomAuecAmount(double amount) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setDouble(_customAuecKey, amount);
}
// Generic string storage methods for update checking
Future<String?> getString(String key) async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString(key);
}
Future<void> setString(String key, String value) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString(key, value);
}
}