From 89c3e451fe7d0595f3fdabc05eb91b6820b96f68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 3 Mar 2026 08:14:35 -0500 Subject: [PATCH 1/2] JSON config > add `allow_non_descriptive_head_signs[until]` --- src/main/java/org/mtransit/parser/DefaultAgencyTools.java | 2 +- .../org/mtransit/parser/config/gtfs/data/RouteConfig.kt | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/mtransit/parser/DefaultAgencyTools.java b/src/main/java/org/mtransit/parser/DefaultAgencyTools.java index 8cc6af1..0c0640e 100644 --- a/src/main/java/org/mtransit/parser/DefaultAgencyTools.java +++ b/src/main/java/org/mtransit/parser/DefaultAgencyTools.java @@ -893,7 +893,7 @@ public boolean directionFinderEnabled(long routeId, @NotNull GRoute gRoute) { @Override public boolean allowNonDescriptiveHeadSigns(long routeId) { - return false; // this is bad, some transit agency data can NOT be fixed :( + return Configs.getRouteConfig().allowNonDescriptiveHeadSigns(getTodayDateInt(), routeId); // this is bad, some transit agency data can NOT be fixed :( } @Override diff --git a/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt b/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt index c7bdd72..e5c408d 100644 --- a/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt +++ b/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt @@ -82,6 +82,10 @@ data class RouteConfig( val directionSplitterEnabled: Boolean = false, // OPT-IN feature @SerialName("direction_finder_enabled") val directionFinderEnabled: Boolean = false, // OPT-IN feature + @SerialName("allow_non_descriptive_head_signs") + val allowNonDescriptiveHeadSigns: Map = emptyMap(), // OPT-IN feature + @SerialName("allow_non_descriptive_head_signs_until") + val allowNonDescriptiveHeadSignsUntil: Map = emptyMap(), // OPT-IN feature // STOP @SerialName("stop_id_cleanup_regex") val stopIdCleanupRegex: String? = null, // optional @@ -340,4 +344,8 @@ data class RouteConfig( fun allowIgnoreInvalidStopTimes(todayDate: Int) = allowInvalidStopTimes || (allowInvalidStopTimesUntil?.toIntOrNull()?.let { todayDate <= it } ?: false) + + fun allowNonDescriptiveHeadSigns(todayDate: Int, mRouteId: Long) = + allowNonDescriptiveHeadSigns[mRouteId] == true + || (allowNonDescriptiveHeadSignsUntil[mRouteId]?.toIntOrNull()?.let { todayDate <= it } ?: false) } From bdac1806bd5b804894ff5317251ce777807c654a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 3 Mar 2026 08:18:58 -0500 Subject: [PATCH 2/2] PR comments --- .../org/mtransit/parser/config/gtfs/data/RouteConfig.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt b/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt index e5c408d..88fafed 100644 --- a/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt +++ b/src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt @@ -343,9 +343,11 @@ data class RouteConfig( } fun allowIgnoreInvalidStopTimes(todayDate: Int) = - allowInvalidStopTimes || (allowInvalidStopTimesUntil?.toIntOrNull()?.let { todayDate <= it } ?: false) + allowInvalidStopTimes || isAllowedUntil(allowInvalidStopTimesUntil, todayDate) fun allowNonDescriptiveHeadSigns(todayDate: Int, mRouteId: Long) = - allowNonDescriptiveHeadSigns[mRouteId] == true - || (allowNonDescriptiveHeadSignsUntil[mRouteId]?.toIntOrNull()?.let { todayDate <= it } ?: false) + allowNonDescriptiveHeadSigns[mRouteId] == true || isAllowedUntil(allowNonDescriptiveHeadSignsUntil[mRouteId], todayDate) + + private fun isAllowedUntil(dateStr: String?, todayDate: Int) = + dateStr?.toIntOrNull()?.let { todayDate <= it } ?: false }