Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send bus notifications if first leg is bus #264

Open
wants to merge 6 commits into
base: dev
Choose a base branch
from

Conversation

br648
Copy link
Contributor

@br648 br648 commented Oct 24, 2024

Checklist

  • Appropriate branch selected (all PRs must first be merged to dev before they can be merged to master)
  • Any modified or new methods or classes have helpful JavaDoc and code is thoroughly commented
  • The description lists all applicable issues this PR seeks to resolve
  • The description lists any configuration setting(s) that differ from the default settings
  • All tests and CI builds passing

Description

If the trip starts with a bus leg notify bus op.

@br648
Copy link
Contributor Author

br648 commented Oct 24, 2024

@binh-dam-ibigroup the test that is failing also fails under dev. I think it is a time/locale issue. I bet it will work when I re-run it tomorrow morning!

Failed test has this comment: // Time is in US Pacific time zone (instead of US Eastern) by configuration for other E2E tests.

Copy link
Collaborator

@binh-dam-ibigroup binh-dam-ibigroup left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you need to add a test case for an itinerary which first leg is a bus leg. I am seeing a side effect where, when you start tracking with coordinates near the bus stop, it thinks you are already on the bus.

* Given the traveler's position and leg type, check if bus notification should be sent.
*/
public static boolean shouldNotifyBusOperator(TravelerPosition travelerPosition, boolean isStartOfTrip) {
return (isStartOfTrip)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extract a variable for the leg to pass to isBusLeg and isWithinOperationalNotifyWindow depending on isStartOfTrip, and remove line 180.

@@ -136,10 +136,7 @@ public static TripInstruction alignTravelerToTrip(
Locale locale = travelerPosition.locale;

if (isApproachingEndOfLeg(travelerPosition)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is at the start of a trip where the first leg is transit, there is no approaching the end of the leg.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@binh-dam-ibigroup If possible can you provide a trip which starts with a transit leg? I'm going to edit an existing trip (walk-to-bus-transition.json) to test with, but would prefer a real-world exampl

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@binh-dam-ibigroup this has grown a bit from my initial take on it! I think this covers the what is needed.

@br648 br648 assigned binh-dam-ibigroup and unassigned br648 Oct 29, 2024
@binh-dam-ibigroup
Copy link
Collaborator

@br648 One of the E2E tests is failing and outputting an in incorrect instruction...

Copy link
Collaborator

@binh-dam-ibigroup binh-dam-ibigroup left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one comment tweak, but I am worried about the failing E2E test right now.

@br648
Copy link
Contributor Author

br648 commented Oct 30, 2024

@br648 One of the E2E tests is failing and outputting an in incorrect instruction...

@binh-dam-ibigroup The same test is failing under dev and is not specific to this PR. The CI incorrect instruction is different to the one I get locally. Will see if I can fix.

BusOperatorActions
.getDefault()
.handleSendNotificationAction(tripStatus, travelerPosition);
if (sendBusNotification(travelerPosition, isStartOfTrip)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might have misinterpreted isStartOfTrip when using with sendBusNotification, and that is what is causing the failing trip tracking E2E test. I think true means that this is the first tracking location that is sent (the user just activated live tracking). I think you meant to pass to sendBusNotification a boolean indicating whether a transit leg is the first leg of the trip.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@binh-dam-ibigroup I have updated, I hope it meets expectations.

if (tripInstruction != null) {
return tripInstruction.build();
}
}

if (tripStatus.equals(TripStatus.DEVIATED)) {
TripInstruction tripInstruction = getBackOnTrack(travelerPosition, isStartOfTrip, tripStatus);
TripInstruction tripInstruction = getBackOnTrack(travelerPosition, isStartOfTrip);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bonus points question: I didn't see an equivalent to "Head to " on an itinerary where the first leg is bus and tracking is started at a location away from the bus stop.

Copy link
Collaborator

@binh-dam-ibigroup binh-dam-ibigroup left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much better!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants