possible to exclude levels and change how questions are served
This commit is contained in:
@@ -103,6 +103,7 @@ class DeckRepository {
|
||||
readingType: r[DbConstants.readingTypeColumn] as String?,
|
||||
srsStage: r[DbConstants.srsStageColumn] as int,
|
||||
lastAsked: DateTime.parse(r[DbConstants.lastAskedColumn] as String),
|
||||
disabled: (r[DbConstants.disabledColumn] as int? ?? 0) == 1,
|
||||
);
|
||||
srsItemsByKanjiId.putIfAbsent(srsItem.subjectId, () => []).add(srsItem);
|
||||
}
|
||||
@@ -118,17 +119,53 @@ class DeckRepository {
|
||||
return kanjiItems;
|
||||
}
|
||||
|
||||
Future<void> updateSrsItems(List<SrsItem> items) async {
|
||||
final db = await DatabaseHelper().db;
|
||||
final batch = db.batch();
|
||||
for (final item in items) {
|
||||
var where = '${DbConstants.kanjiIdColumn} = ? AND ${DbConstants.quizModeColumn} = ?';
|
||||
final whereArgs = [item.subjectId, item.quizMode.toString()];
|
||||
if (item.readingType != null) {
|
||||
where += ' AND ${DbConstants.readingTypeColumn} = ?';
|
||||
whereArgs.add(item.readingType!);
|
||||
} else {
|
||||
where += ' AND ${DbConstants.readingTypeColumn} IS NULL';
|
||||
}
|
||||
|
||||
batch.update(
|
||||
DbConstants.srsItemsTable,
|
||||
{
|
||||
DbConstants.srsStageColumn: item.srsStage,
|
||||
DbConstants.lastAskedColumn: item.lastAsked.toIso8601String(),
|
||||
DbConstants.disabledColumn: item.disabled ? 1 : 0,
|
||||
},
|
||||
where: where,
|
||||
whereArgs: whereArgs,
|
||||
);
|
||||
}
|
||||
await batch.commit(noResult: true);
|
||||
}
|
||||
|
||||
Future<void> updateSrsItem(SrsItem item) async {
|
||||
final db = await DatabaseHelper().db;
|
||||
var where = '${DbConstants.kanjiIdColumn} = ? AND ${DbConstants.quizModeColumn} = ?';
|
||||
final whereArgs = [item.subjectId, item.quizMode.toString()];
|
||||
if (item.readingType != null) {
|
||||
where += ' AND ${DbConstants.readingTypeColumn} = ?';
|
||||
whereArgs.add(item.readingType!);
|
||||
} else {
|
||||
where += ' AND ${DbConstants.readingTypeColumn} IS NULL';
|
||||
}
|
||||
|
||||
await db.update(
|
||||
DbConstants.srsItemsTable,
|
||||
{
|
||||
DbConstants.srsStageColumn: item.srsStage,
|
||||
DbConstants.lastAskedColumn: item.lastAsked.toIso8601String(),
|
||||
DbConstants.disabledColumn: item.disabled ? 1 : 0,
|
||||
},
|
||||
where:
|
||||
'${DbConstants.kanjiIdColumn} = ? AND ${DbConstants.quizModeColumn} = ? AND ${DbConstants.readingTypeColumn} = ?',
|
||||
whereArgs: [item.subjectId, item.quizMode.toString(), item.readingType],
|
||||
where: where,
|
||||
whereArgs: whereArgs,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -140,6 +177,7 @@ class DeckRepository {
|
||||
DbConstants.readingTypeColumn: item.readingType,
|
||||
DbConstants.srsStageColumn: item.srsStage,
|
||||
DbConstants.lastAskedColumn: item.lastAsked.toIso8601String(),
|
||||
DbConstants.disabledColumn: item.disabled ? 1 : 0,
|
||||
}, conflictAlgorithm: ConflictAlgorithm.replace);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user