From 29ed0a7fbfa6f5916e05fba9dc7bd3a792439498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 7 Apr 2026 08:50:54 -0400 Subject: [PATCH 1/2] Route > merge different `route_sort_order` --- .../java/org/mtransit/parser/gtfs/GReader.java | 3 ++- .../org/mtransit/parser/gtfs/data/GRoute.kt | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/mtransit/parser/gtfs/GReader.java b/src/main/java/org/mtransit/parser/gtfs/GReader.java index bb406c89..46d1623d 100644 --- a/src/main/java/org/mtransit/parser/gtfs/GReader.java +++ b/src/main/java/org/mtransit/parser/gtfs/GReader.java @@ -535,8 +535,9 @@ private static void processRoute(GAgencyTools agencyTools, GSpec gSpec, HashMap< if (previousGRoute != null && previousGRoute.equalsExceptMergeable(gRoute)) { final String mergedRouteLongName = GRoute.mergeRouteLongNames(previousGRoute.getRouteLongName(), gRoute.getRouteLongName()); final String mergedRouteColor = GRoute.mergeRouteColors(previousGRoute.getRouteColor(), gRoute.getRouteColor()); + final Integer mergedRouteSortOrder = GRoute.mergeRouteSortOrders(previousGRoute.getRouteSortOrder(), gRoute.getRouteSortOrder()); if (mergedRouteLongName != null) { // merge successful - gSpec.addRoute(previousGRoute.clone(mergedRouteLongName, mergedRouteColor), true); + gSpec.addRoute(previousGRoute.clone(mergedRouteLongName, mergedRouteColor, mergedRouteSortOrder), true); return; } } diff --git a/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt b/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt index c6acb32b..c72e33cc 100644 --- a/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt +++ b/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt @@ -143,14 +143,18 @@ data class GRoute( routeDesc != o.routeDesc -> false // not equal routeType != o.routeType -> false // not equal routeTextColor != o.routeTextColor -> false // not equal - routeSortOrder != o.routeSortOrder -> false // not equal else -> true // mostly equal } } - fun clone(routeLongName: String?, routeColor: String?) = this.copy( + fun clone( + routeLongName: String?, + routeColor: String?, + routeSortOrder: Int?, + ) = this.copy( routeLongName = routeLongName, routeColor = routeColor, + routeSortOrder = routeSortOrder, ) companion object { @@ -260,5 +264,15 @@ data class GRoute( val mergedColorHex = ColorUtils.convertToHEX(mergedColorInt) return mergedColorHex } + + @JvmStatic + fun mergeRouteSortOrders(routeSortOrder1: Int?, routeSortOrder2: Int?): Int? { + if (routeSortOrder2 == null) { + return routeSortOrder1 + } else if (routeSortOrder1 == null) { + return routeSortOrder2 + } + return null // -1 // not merged < route sort order not used at the moment + } } } \ No newline at end of file From 0e1657ca9ae48185da7c6fbfeab224bbc8555b46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Tue, 7 Apr 2026 10:01:55 -0400 Subject: [PATCH 2/2] PR comment --- src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt b/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt index c72e33cc..70178cc3 100644 --- a/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt +++ b/src/main/java/org/mtransit/parser/gtfs/data/GRoute.kt @@ -272,6 +272,9 @@ data class GRoute( } else if (routeSortOrder1 == null) { return routeSortOrder2 } + if (routeSortOrder1 == routeSortOrder2) { + return routeSortOrder1 + } return null // -1 // not merged < route sort order not used at the moment } }