time_progress_tracker/lib/persistence/time_progress_repository.dart
Andreas Fahrecker 976fbec455 Renamed all Timer named things to TimeProgress
Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
2020-10-16 14:25:15 +02:00

28 lines
940 B
Dart

import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:time_progress_calculator/persistence/time_progress_entity.dart';
class TimeProgressRepository {
static const String _key = "time_progress_repo";
final SharedPreferences prefs;
final JsonCodec codec;
TimeProgressRepository(this.prefs, {this.codec = json});
Future<List<TimeProgressEntity>> loadTimeProgressList() {
final String jsonString = this.prefs.getString(_key);
return codec
.decode(jsonString)["timers"]
.cast<Map<String, Object>>()
.map<TimeProgressEntity>(TimeProgressEntity.fromJson)
.toList(growable: false);
}
Future<bool> saveTimeProgressList(List<TimeProgressEntity> timeProgressList) {
final String jsonString = codec
.encode({"timers": timeProgressList.map((timer) => timer.toJson()).toList()});
return this.prefs.setString(_key, jsonString);
}
}