added sound

This commit is contained in:
Rene Kievits
2025-10-28 05:44:14 +01:00
parent 29909a07a7
commit 6dabb9c977
10 changed files with 139 additions and 35 deletions

View File

@@ -6,11 +6,13 @@ import '../services/deck_repository.dart';
import '../services/distractor_generator.dart';
import '../widgets/kanji_card.dart';
import '../widgets/options_grid.dart';
import 'package:audioplayers/audioplayers.dart';
import 'settings_screen.dart';
class VocabScreen extends StatefulWidget {
const VocabScreen({super.key});
@override
State<VocabScreen> createState() => _VocabScreenState();
}
@@ -19,7 +21,7 @@ class _VocabScreenState extends State<VocabScreen> {
bool _loading = false;
String _status = 'Loading deck...';
final DistractorGenerator _dg = DistractorGenerator();
final Random _random = Random();
final _audioPlayer = AudioPlayer();
VocabQuizMode _mode = VocabQuizMode.vocabToEnglish;
VocabularyItem? _current;
@@ -138,17 +140,19 @@ class _VocabScreenState extends State<VocabScreen> {
final srsKey = _mode.toString();
var srsItem = current.srsItems[srsKey];
final isNew = srsItem == null;
srsItem ??= VocabSrsItem(vocabId: current.id, quizMode: _mode);
var srsItemNullable = current.srsItems[srsKey];
final isNew = srsItemNullable == null;
final srsItem =
srsItemNullable ?? VocabSrsItem(vocabId: current.id, quizMode: _mode);
setState(() {
_asked += 1;
if (isCorrect) {
_score += 1;
srsItem!.srsStage += 1;
_audioPlayer.play(AssetSource('sfx/confirm.mp3'));
srsItem.srsStage += 1;
} else {
srsItem!.srsStage = max(0, srsItem.srsStage - 1);
srsItem.srsStage = max(0, srsItem.srsStage - 1);
}
srsItem.lastAsked = DateTime.now();
current.srsItems[srsKey] = srsItem;