Sojourn
Garmin app to view trip itineraries
The trip info is loaded from
a JSON file created
by the companion Sojourn
app that is available for
Android
(manual here)
and
iOS
(available soon)
devices.
A trip consists of multiple days and
each day consists of multiple events.
The available events are:
Flight
Rental car
Car suttle/ride share
Train
Lodging
Activity
Sojourn maintains the trip
info in the watches memory
so that,
onece downloaded,
it can be viewed at
any time,
any where.
Sojourn is licensed under the GPL V3.0.
The latest source tree is available
for browsing
here
and tarballs for the latest and older versions are located at the following links:
Main display
The startup screen show:
- The destination for the trip
- The date for the first day of the trip
- A line showing the date and day of the week for each day of the trip
Selecting (tapping on watches with touch screens
or pushing the select button on older watches)
brings up a Detail page showing all of the
events for that day.
Detail page
This page show a brief summary for each event of the day.
The Day at the top of the page shows
the day of the trip,
counting the first day of the trip as day 1.
The actual date and day of the week is shown
below this field.
Each event has an icon identifying the event type and
the time of day for when the event starts
(or the time the events ends if there
is no start time,
car rental pickups and
hotel checkouts are the
most common occrences of this situation).
Tapping on an event brings up the Event page that
shows all of the details about that particular event.
The events are sorted based upon the shown time.
Event page
This page shows all of the information about a specific event.
There are up to 8 different pieces of info for an event that
will need to be scrolled on the watch given the limited amount
of display space available
(on a touch screen device like a Venu
this is pretty easy,
on a button only device like a Forerunner 55
this is a little cumbersome but still doable).
Get new itinerary
This get new itinerary page is displayed
when you back out of
the main page
or the app starts with no
itinerary.
This page allows you to accept
a new itinerary from the
companion phone app or
from a URL that is specified
in the setting for the app.
This page allows you to obtain
a new itinerary and has 3 selectable
options:
- Phone app - Tapping this control will cause the app
to wait for a new itinerary from the companion phone app
while displaying the above above (trust me, it looks much
better on the watch than in the picture). Since the phone
will wait foreever the back button
sends the app back to Get new itinerary page
if
you decide it's taking too long. When the watch successfully
gets the new itinerary it automatically goes to the start
and displays the days of the itinerary.
- https://dropbox.com - Tapping this control will cause the app
to download a new itinerary from the URL in the settings
while displaying the above screen (the difference is the
second line will show the URL being requested). If the download
fails the app will return to the Get new itinerary page.
Again, if the download takes too long then tapping the back button
sends the app back to the Get new itinerary page.
Read the section JSON URL carefully,
it explains why you probably won't be able to get this option to work.
- Cancel - Cancels the new itinerary attempt and
returns to the original itinerary.
JSON URL
Garmin has made dealing with JSON encode URL data rather
inconvenient.
The issue is that Garmin is very picky about
the data that it will accept.
JSON data files must be tagged as JSON
formatted or the Garmin URL code will not interpret
it properly
and this means that the cloud server supplying the URL
(typically something like Google Drive,
Dropbox, iCloud, OneDrive) must identify
the data as a JSON file.
I have not been able to get any of the
cloud services that I have access to to
specify Content-Type: application/json
and,
therefore,
Sojourn is not able to download an itinery
for me.
If you can get your cloud service to specify
the right content type then it should work for
you.
Ultimately,
I intend to add a JSON parser
to the Sojourn app
(I'll have to write it myself since
Garmin doesn't provide an API to do
this even though their firmware clearly
has the capability buried in it somewhere)
and then the app will be able to download
a text file from any cloud service and
then turn that text file into an itinerary.