From 39bba541c052f2c23cebe039b42ad0e8d554ee7a Mon Sep 17 00:00:00 2001 From: firestarsdog <229254897+firestarsdog@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:32:57 -0400 Subject: [PATCH] Replay route order on device --- openpilot/starpilot/ui/replay_settings.py | 2 +- openpilot/starpilot/ui/tests/test_replay_settings.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openpilot/starpilot/ui/replay_settings.py b/openpilot/starpilot/ui/replay_settings.py index 82fcbc60b4..57e0b3aa58 100644 --- a/openpilot/starpilot/ui/replay_settings.py +++ b/openpilot/starpilot/ui/replay_settings.py @@ -353,7 +353,7 @@ class ReplayPage(Widget): if self.route_source is not owner.routes: self.route_source = owner.routes rows = [] - for route in reversed(owner.routes): + for route in sorted(owner.routes, key=lambda route: route.get('startTime') or route.get('fileTime') or 0, reverse=True): calendar, clock, _, source = route_date(route, self.profile, self.clock24_hour) identifier = route['routeId'] name = route.get('displayName') or identifier diff --git a/openpilot/starpilot/ui/tests/test_replay_settings.py b/openpilot/starpilot/ui/tests/test_replay_settings.py index 3bc4df330f..ee4eb02861 100644 --- a/openpilot/starpilot/ui/tests/test_replay_settings.py +++ b/openpilot/starpilot/ui/tests/test_replay_settings.py @@ -67,10 +67,13 @@ def test_route_rows_prioritize_dates_preserve_names_and_keep_route_identity(utc, def test_route_rows_show_newest_first_without_reordering_catalog(profile): page, owner = page_for_input() page.profile = profile - owner.routes = [{**ROUTE, 'routeId': f'{number:08d}--0123456789'} for number in (1, 2, 3)] + owner.routes = [{**ROUTE, 'routeId': '00000001--0123456789', 'startTime': STAMP, 'fileTime': STAMP + 120}, + {**ROUTE, 'routeId': '00000002--0123456789', 'startTime': STAMP + 60}, + {**ROUTE, 'routeId': '00000003--0123456789', 'fileTime': STAMP - 60}, + {**ROUTE, 'routeId': '00000004--0123456789'}] identifiers = [route['routeId'] for route in owner.routes] rows = page._rows() - assert [row.key for row in rows] == identifiers[::-1] + assert [row.key for row in rows] == [identifiers[1], identifiers[0], identifiers[2], identifiers[3]] assert [route['routeId'] for route in owner.routes] == identifiers assert page._rows() is rows