From 55869e025c88105e1ef10c081c8327a8fa4574c1 Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Wed, 12 Aug 2026 17:50:40 +0200 Subject: [PATCH] =?UTF-8?q?D2=20:=20borner=20la=20reprise=20des=20.unknown?= =?UTF-8?q?=20=C3=A0=20un=20seul=20essai?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- lib/Services/downloadConfiguration.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/Services/downloadConfiguration.dart b/lib/Services/downloadConfiguration.dart index 005941b..28f91fe 100644 --- a/lib/Services/downloadConfiguration.dart +++ b/lib/Services/downloadConfiguration.dart @@ -527,7 +527,12 @@ bool isResourceOutdated(ResourceDTO resource, List 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;