ankidroid / ankidroid/Anki-Android

Migrate Card Template Editor to Rust backend for atomic notetype updates

Aperta
#19,956 9 commenti 0 reazioni 1 assegnatario Rivendicata da @xenonnn4w Vedi su GitHub
Anki Ecosystem Compatibility
Lingua principale
Kotlin
Stelle
11.8k
Fork
2.9k
Merge medio
2g 3h
PR unite (30g)
171

Descrizione

Migrate the Card Template Editor to use the Rust backend's atomic `updateNotetype()` API instead of the current legacy approach that uses individual `addTemplate()` / `removeTemplate()` / `updateDict()` calls.

The current implementation has an atomicity issue where templates can be persisted to the database even if the final save fails (here)
https://github.com/ankidroid/Anki-Android/blob/0f4f87e486c56236087fbcec37c8929173e67989/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateNotetype.kt#L122-L141
This can cause data corruption with duplicate card types (e.g., "Card 2+", "Card 3++") if the user adds templates, encounters a validation error, and discards changes.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.