40 lines
1.1 KiB
Dart
40 lines
1.1 KiB
Dart
import 'dart:convert';
|
|
import 'dart:math';
|
|
import 'package:flutter/services.dart';
|
|
|
|
/// Service to manage encouragement messages
|
|
class EncouragementService {
|
|
List<String> _messages = [];
|
|
final Random _random = Random();
|
|
|
|
/// Load encouragement messages from assets
|
|
Future<void> loadMessages() async {
|
|
try {
|
|
final String jsonString =
|
|
await rootBundle.loadString('assets/encouragements.json');
|
|
final List<dynamic> jsonList = json.decode(jsonString);
|
|
_messages = jsonList.cast<String>();
|
|
} catch (e) {
|
|
// Fallback messages if file can't be loaded
|
|
_messages = [
|
|
"Showing up is half the battle.",
|
|
"Every minute counts.",
|
|
"You're learning, not failing.",
|
|
"Gentleness is strength.",
|
|
"Progress over perfection.",
|
|
];
|
|
}
|
|
}
|
|
|
|
/// Get a random encouragement message
|
|
String getRandomMessage() {
|
|
if (_messages.isEmpty) {
|
|
return "You're doing great!";
|
|
}
|
|
return _messages[_random.nextInt(_messages.length)];
|
|
}
|
|
|
|
/// Get all messages (for testing)
|
|
List<String> getAllMessages() => List.from(_messages);
|
|
}
|