add pages and level grouping for the browser

This commit is contained in:
Rene Kievits
2025-10-28 20:13:46 +01:00
parent da48b3973e
commit bef4519ab5
4 changed files with 215 additions and 43 deletions

View File

@@ -18,6 +18,7 @@ class SrsItem {
class KanjiItem {
final int id;
final int level;
final String characters;
final List<String> meanings;
final List<String> onyomi;
@@ -26,6 +27,7 @@ class KanjiItem {
KanjiItem({
required this.id,
required this.level,
required this.characters,
required this.meanings,
required this.onyomi,
@@ -35,6 +37,7 @@ class KanjiItem {
factory KanjiItem.fromSubject(Map<String, dynamic> subj) {
final int id = subj['id'] as int;
final data = subj['data'] as Map<String, dynamic>;
final int level = data['level'] as int;
final String characters = (data['characters'] ?? '') as String;
final List<String> meanings = <String>[];
final List<String> onyomi = <String>[];
@@ -60,6 +63,7 @@ class KanjiItem {
return KanjiItem(
id: id,
level: level,
characters: characters,
meanings: meanings,
onyomi: onyomi,
@@ -105,6 +109,7 @@ class PronunciationAudio {
class VocabularyItem {
final int id;
final int level;
final String characters;
final List<String> meanings;
final List<String> readings;
@@ -113,6 +118,7 @@ class VocabularyItem {
VocabularyItem(
{required this.id,
required this.level,
required this.characters,
required this.meanings,
required this.readings,
@@ -121,6 +127,7 @@ class VocabularyItem {
factory VocabularyItem.fromSubject(Map<String, dynamic> subj) {
final int id = subj['id'] as int;
final data = subj['data'] as Map<String, dynamic>;
final int level = data['level'] as int;
final String characters = (data['characters'] ?? '') as String;
final List<String> meanings = <String>[];
final List<String> readings = <String>[];
@@ -155,6 +162,7 @@ class VocabularyItem {
return VocabularyItem(
id: id,
level: level,
characters: characters,
meanings: meanings,
readings: readings,