FOXA-3113 : le service de chaîne n'écrit plus Watch Next pendant la lecture #1011
No reviewers
Labels
No labels
montee-majeure
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
foXaCe/NuvioTV!1011
Loading…
Reference in a new issue
No description provided.
Delete branch "passe-20261018-160000-watchnext"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
FOXA-3113 — le service de chaîne du lanceur n'écrit plus « Watch Next » pendant la lecture.
58a11250eFOXA-3113 : le service de chaine n'ecrit plus Watch Next pendant la lecturePourquoi
L'upsert « Watch Next » passe par une IPC vers le fournisseur Leanback, sur le fil de la boîte.
Deux chemins l'appellent :
HomeViewModelFOXA-652—combine(items, isPlaybackActive) { if (!isPlaying) … }AndroidTvChannelSyncService.reconcileFromCacheC'était le seul écrivain non gardé. ⚠ Le ticket visait
updateSingleWatchNextProgram, qui n'existeplus : la fonction a disparu, mais le principe — ne pas écrire pendant la lecture — restait à
appliquer au chemin qui écrit.
On ne perd rien : la position finale est poussée à l'arrêt par
HomeViewModel, qui observe le mêmedrapeau. La chaîne du lanceur (
manager.reconcile) reste réconciliée plus haut — ce n'est pas le mêmefournisseur, et elle ne dépend pas de cette écriture.
Ce qui a été mesuré
2 tests :
if (TvRecommendationManager.isPlaybackActive.value) return@runCatchingavanttvRecommendationManager.updateWatchNextFromCwItems(HomeViewModelet le service contiennent tous deuxTvRecommendationManager.isPlaybackActive— un drapeau recopié à côté divergerait au premier changement⚠ Le banc lit la source. Aucun banc du dépôt n'instancie ce service (DataStore, cache CW, manager
de chaîne, notifications). Ce qu'il interdit est le retour du trou.
⚠ Le défaut n'est pas constaté sur la boîte : le ticket le dit lui-même (« à mesurer : le défaut
n'est pas constaté sur la Freebox Pop »). Ce qui est livré est la règle — aucun upsert pendant la
lecture — pas une preuve de saccade évitée.
Porte jouée par la forge : « Porte / porte* » est le seul contexte qu'exige la protection de
main.Scope boundaries
manager.reconcile(la chaîne du lanceur) n'est pas touché.HomeViewModeln'est pas modifié : sagarde existait déjà. Aucun autre écrivain Watch Next n'existe dans le dépôt.
L'upsert Watch Next passe par une IPC vers le fournisseur Leanback, sur le fil de la boite. Deux chemins l'appellent : - `HomeViewModel` — garde depuis `FOXA-652` : `combine(items, isPlaybackActive) { if (!isPlaying) … }` ; - `AndroidTvChannelSyncService.reconcileFromCache` — appele aussi par le rafraichissement PERIODIQUE de la chaine du lanceur, qui pouvait tomber en pleine lecture. C'etait le seul ecrivain non garde. On ne perd rien : la position finale est poussee a l'arret par `HomeViewModel`, qui observe le meme drapeau. La chaine du lanceur (`manager.reconcile`) reste reconciliee plus haut — ce n'est pas le meme fournisseur. 2 tests : la garde precede l'ecriture, et les deux ecrivains lisent le MEME drapeau — un drapeau recopie a cote divergerait au premier changement.