D2 : borner la reprise des .unknown à un seul essai

Complète d5f3686, qui rendait la reprise illimitée : un type MIME réellement
absent de la table se serait re-téléchargé à chaque visite pour se réécrire en
.unknown, en boucle, sur le réseau mobile du visiteur.

La date nulle sert de borne — elle ne vaut que pour les fichiers écrits avant
D2, donc la reprise ne joue qu'une fois. Déduire l'extension de l'URL en repli
n'est pas possible : une URL Firebase n'en porte pas.

flutter analyze : aucune erreur sur le fichier.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Thomas Fransolet 2026-08-12 17:50:40 +02:00
parent d5f36865b6
commit 55869e025c

View File

@ -527,7 +527,12 @@ bool isResourceOutdated(ResourceDTO resource, List<FileSystemEntity> fileList, D
// Fichier écrit avec une extension que la table ne savait pas déduire c'était le
// cas de tous les MP3 avant D3. Il est illisible, et sa date ne le dira jamais :
// le serveur n'a pas changé, c'est le client qui l'avait mal enregistré.
if (localFile.first.uri.pathSegments.last.endsWith(".unknown")) return true;
//
// La date nulle borne la reprise à UN essai : sans elle, un type MIME réellement
// absent de la table se re-téléchargerait à chaque visite pour se réécrire en
// `.unknown`. On ne peut pas non plus déduire l'extension de l'URL en repli une
// URL Firebase n'en porte pas.
if (localFile.first.uri.pathSegments.last.endsWith(".unknown") && localDateUpdate == null) return true;
if (localDateUpdate == null || resource.dateUpdate == null) return false;