Ensure that Garmin Connect accounts have a valid ExternalID
Handle cases in GC where no activity duration is reported.
Updated interchange GetDistance() to detect implicit pauses, not bail out on encountering waypoints without location data.
Changed to python logging module for sync, added per-user logging of all diagnostic sync info.
Fixed parameter issue in Endomondo, service method exception logging in sync core.
Un-broke Strava uploading after new logging was put in place.
Added Garmin Connect to the splash preamble.
NAD prep.
Fixed mistake that prevented activity origins being recorded, reduced memory churn when updating origins in the db.
Increase implicit pause timespan to allow for low-power/low-frequency recording modes.
Removed limit on activity duration calculation discrepancies.
Updated stats processor to log error statistics.
Include total sync time used in sync_status_stats.
Added control to lock account to user diagnostic screen.
Fixed logging of activity TZ so it won't break when activity is downloaded from Dropbox.
Added facility to manually mark an activity as synchronized.
Fixed authenticating against an existing account that wasn't GC.
Updated activity statistics to include service endpoints.
Fixed Garmin Connect issue with certain users not having usernames reported back at the SSL endpoint.
Clarify that you can log in with username or email on services with internal auth.