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..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 @@ -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)