widget - coché sous-tache ne fonctionne plus #32

Closed
opened 2026-03-31 01:14:33 +00:00 by maximus · 0 comments
Owner

Contexte

Suite au commit 810bf2e (consolidation AsyncStorage + debounce expand, #29), le toggle des sous-tâches depuis le widget Android ne fonctionne plus. Les autres actions widget (cocher tâche principale, expand/collapse) fonctionnent toujours.

Cause racine

Le handler TOGGLE_SUBTASK dans widgetTaskHandler.ts appelle renderWidget() (callback du handler) pour mettre à jour le widget. Or, le ListWidget (qui mappe vers un ListView Android) cache ses items. Les changements purement visuels (couleur checkbox, style texte) ne se propagent pas sans appel à notifyAppWidgetViewDataChanged().

Action Type de changement Fonctionne ?
TOGGLE_COMPLETE Supprime un item de la liste (structurel)
TOGGLE_EXPAND Ajoute/retire des sous-tâches (structurel)
TOGGLE_SUBTASK Change couleur checkbox (visuel seulement)

requestWidgetUpdate() (utilisé dans syncWidgetData()) force un rafraîchissement complet incluant le ListView, mais n'est pas appelé dans le handler.

Travail à faire

  • Appeler requestWidgetUpdate() après setWidgetState() dans le handler TOGGLE_SUBTASK pour forcer le rafraîchissement du ListView
  • Par cohérence, faire de même pour TOGGLE_COMPLETE et TOGGLE_EXPAND
  • Tester les 3 actions (cocher tâche, expand, cocher sous-tâche) sur widget réel

Fichiers concernés

  • src/widgets/widgetTaskHandler.ts — ajouter requestWidgetUpdate() dans les handlers click

Critères d'acceptation

  • Cocher une sous-tâche depuis le widget met à jour visuellement la checkbox immédiatement
  • Le compteur ✓ X/Y sur la tâche parente se met à jour
  • La sous-tâche est marquée complétée en DB (vérifiable en ouvrant l'app)
  • Les actions existantes (cocher tâche, expand/collapse) continuent de fonctionner

Complexité

Simple

## Contexte Suite au commit `810bf2e` (consolidation AsyncStorage + debounce expand, #29), le toggle des sous-tâches depuis le widget Android ne fonctionne plus. Les autres actions widget (cocher tâche principale, expand/collapse) fonctionnent toujours. ## Cause racine Le handler `TOGGLE_SUBTASK` dans `widgetTaskHandler.ts` appelle `renderWidget()` (callback du handler) pour mettre à jour le widget. Or, le `ListWidget` (qui mappe vers un `ListView` Android) **cache ses items**. Les changements purement visuels (couleur checkbox, style texte) ne se propagent pas sans appel à `notifyAppWidgetViewDataChanged()`. | Action | Type de changement | Fonctionne ? | |---|---|---| | `TOGGLE_COMPLETE` | Supprime un item de la liste (structurel) | ✅ | | `TOGGLE_EXPAND` | Ajoute/retire des sous-tâches (structurel) | ✅ | | `TOGGLE_SUBTASK` | Change couleur checkbox (visuel seulement) | ❌ | `requestWidgetUpdate()` (utilisé dans `syncWidgetData()`) force un rafraîchissement complet incluant le `ListView`, mais n'est **pas appelé** dans le handler. ## Travail à faire - [ ] Appeler `requestWidgetUpdate()` après `setWidgetState()` dans le handler `TOGGLE_SUBTASK` pour forcer le rafraîchissement du `ListView` - [ ] Par cohérence, faire de même pour `TOGGLE_COMPLETE` et `TOGGLE_EXPAND` - [ ] Tester les 3 actions (cocher tâche, expand, cocher sous-tâche) sur widget réel ## Fichiers concernés - `src/widgets/widgetTaskHandler.ts` — ajouter `requestWidgetUpdate()` dans les handlers click ## Critères d'acceptation - [ ] Cocher une sous-tâche depuis le widget met à jour visuellement la checkbox immédiatement - [ ] Le compteur `✓ X/Y` sur la tâche parente se met à jour - [ ] La sous-tâche est marquée complétée en DB (vérifiable en ouvrant l'app) - [ ] Les actions existantes (cocher tâche, expand/collapse) continuent de fonctionner ## Complexité Simple
maximus added the
status:ready
type:bug
source:human
labels 2026-03-31 01:23:28 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-03-31 04:00:13 +00:00
maximus added
status:review
and removed
status:in-progress
labels 2026-03-31 04:01:38 +00:00
maximus added
status:needs-fix
and removed
status:review
labels 2026-03-31 05:00:33 +00:00
maximus added
status:in-progress
and removed
status:needs-fix
labels 2026-03-31 06:00:14 +00:00
maximus added
status:review
and removed
status:in-progress
labels 2026-03-31 06:01:01 +00:00
maximus added
status:needs-fix
and removed
status:review
labels 2026-03-31 07:01:12 +00:00
maximus added
status:in-progress
and removed
status:needs-fix
labels 2026-03-31 08:00:12 +00:00
maximus added
status:review
and removed
status:in-progress
labels 2026-03-31 08:01:11 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-03-31 09:00:22 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/simpl-liste#32
No description provided.