From 3870e09f5c935d0be070a926be8bbcb60810e294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 24 Mar 2026 11:29:33 -0400 Subject: [PATCH 1/2] JSON config > + `direction_[finder|splitter]_disabled_until` --- .../java/org/mtransit/parser/DefaultAgencyTools.java | 8 ++++---- .../mtransit/parser/config/gtfs/data/RouteConfig.kt | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/mtransit/parser/DefaultAgencyTools.java b/src/main/java/org/mtransit/parser/DefaultAgencyTools.java index 7a3239cb..4c491135 100644 --- a/src/main/java/org/mtransit/parser/DefaultAgencyTools.java +++ b/src/main/java/org/mtransit/parser/DefaultAgencyTools.java @@ -823,12 +823,12 @@ public void forgetOriginalTripId(@NotNull String gOriginalTripId) { @Override public boolean directionSplitterEnabled() { - return Configs.getRouteConfig().getDirectionSplitterEnabled(); + return Configs.getRouteConfig().isDirectionSplitterEnabled(getTodayDateInt()); } @Override public boolean directionSplitterEnabled(long routeId) { - return directionSplitterEnabled(); + return Configs.getRouteConfig().isDirectionSplitterEnabled(getTodayDateInt(), routeId); } @Override @@ -891,12 +891,12 @@ public String cleanDirectionHeadsign(boolean fromStopName, @NotNull String direc @Override public boolean directionFinderEnabled() { - return Configs.getRouteConfig().getDirectionFinderEnabled(); + return Configs.getRouteConfig().isDirectionFinderEnabled(getTodayDateInt()); } @Override public boolean directionFinderEnabled(long routeId, @NotNull GRoute gRoute) { - return directionFinderEnabled(); + return Configs.getRouteConfig().isDirectionFinderEnabled(getTodayDateInt(), routeId); } @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 9ab983e0..71554aa7 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 @@ -81,8 +81,12 @@ data class RouteConfig( val directionHeadsignRemoveRouteDesc: Boolean = false, // OPT-IN feature @SerialName("direction_splitter_enabled") val directionSplitterEnabled: Boolean = false, // OPT-IN feature + @SerialName("direction_splitter_disabled_until") + val directionSplitterDisabledUntil: Map = emptyMap(), // OPT-IN feature @SerialName("direction_finder_enabled") val directionFinderEnabled: Boolean = false, // OPT-IN feature + @SerialName("direction_finder_disabled_until") + val directionFinderDisabledUntil: Map = emptyMap(), // OPT-IN feature @SerialName("allow_non_descriptive_head_signs") val allowNonDescriptiveHeadSigns: Map = emptyMap(), // OPT-IN feature @SerialName("allow_non_descriptive_head_signs_until") @@ -365,6 +369,14 @@ data class RouteConfig( return string } + @JvmOverloads + fun isDirectionSplitterEnabled(todayDate: Int,routeId: Long? = null) = + directionSplitterEnabled && !isAllowedUntil(directionSplitterDisabledUntil[routeId], todayDate) + + @JvmOverloads + fun isDirectionFinderEnabled(todayDate: Int,routeId: Long? = null) = + directionFinderEnabled && !isAllowedUntil(directionFinderDisabledUntil[routeId], todayDate) + fun allowIgnoreInvalidStopTimes(todayDate: Int) = allowInvalidStopTimes || isAllowedUntil(allowInvalidStopTimesUntil, todayDate) From 15584affdff1fa5f1e850fc396de2cb4d50c1f82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 24 Mar 2026 13:37:16 -0400 Subject: [PATCH 2/2] Update src/main/java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../java/org/mtransit/parser/config/gtfs/data/RouteConfig.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 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 71554aa7..6884d7dd 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 @@ -370,11 +370,11 @@ data class RouteConfig( } @JvmOverloads - fun isDirectionSplitterEnabled(todayDate: Int,routeId: Long? = null) = + fun isDirectionSplitterEnabled(todayDate: Int, routeId: Long? = null) = directionSplitterEnabled && !isAllowedUntil(directionSplitterDisabledUntil[routeId], todayDate) @JvmOverloads - fun isDirectionFinderEnabled(todayDate: Int,routeId: Long? = null) = + fun isDirectionFinderEnabled(todayDate: Int, routeId: Long? = null) = directionFinderEnabled && !isAllowedUntil(directionFinderDisabledUntil[routeId], todayDate) fun allowIgnoreInvalidStopTimes(todayDate: Int) =