<commit_before># trainasone-connectiq
TrainAsONE Connect IQ app

This is a simple Connect IQ app to download workouts from the
https://trainasone.com AI running coach.

It is available in the Garmin Store as
https://apps.garmin.com/en-US/apps/dfbebe0d-1cff-471d-afc0-3cb0be0c89c3

Requirements
- Garmin device or simulator
- ConnectIQ 2.x & advanced workouts required for workout download
- ClientId and ClientSecret from <EMAIL>

Current functionality
- Authenticate against TrainAsONE server via OAuth2
- Indicate next workout details (including distance & duration)
- Download next workout to device
  - Run next planned workout
  - Refetch next planned workout
  - Login as different TrainAsONE user

Target devices (ConnectIQ 2.x running with PersistedContent)
- D2 Charlie
- Fenix 5
- Fenix 5S
- Fenix 5X
- Fenix Chronos
- Forerunner 735xt
- Forerunner 935
- Quatix 5
- Vivoactive 3 (If Garmin enable PersistedContent)

When run on other devices it should still show the next workout, but
will not be able to download to the device.

To build
- Install Eclipse with Garmin ConnectIQ plugin and configure
- Checkout this repository
- Copy source/Config.mc.template to source/Config.mc
- Obtain ClientId and ClientSecret from <EMAIL>
- Make the world a better place (hoo!)

This is still very much a work in progress. It runs as a widget but
currently plays fast and loose with stacking views.

Source formatting preferences
- 2 character spaces
- Use spaces rather than tabs
- Unix line endings
<commit_msg>Add a brief note on releasing TrainAsONE and TrainAsONE-lite to Garmin app store<commit_after># trainasone-connectiq
TrainAsONE Connect IQ app

This is a simple Connect IQ app to download workouts from the
https://trainasone.com AI running coach.

It is available in the Garmin Store as
https://apps.garmin.com/en-US/apps/dfbebe0d-1cff-471d-afc0-3cb0be0c89c3

Requirements
- Garmin device or simulator
- ConnectIQ 2.x & advanced workouts required for workout download
- ClientId and ClientSecret from <EMAIL>

Current functionality
- Authenticate against TrainAsONE server via OAuth2
- Indicate next workout details (including distance & duration)
- Download next workout to device
  - Run next planned workout
  - Refetch next planned workout
  - Login as different TrainAsONE user

Target devices for full functionality (ConnectIQ 2.x with PersistedContent)
- D2 Charlie
- Fenix 5
- Fenix 5S
- Fenix 5X
- Fenix Chronos
- Forerunner 735xt
- Forerunner 935
- Quatix 5
- Vivoactive 3 (If Garmin enable PersistedContent)

When run on other devices it should still show the next workout, but
will not be able to download to the device.

To build
- Install Eclipse with Garmin ConnectIQ plugin and configure
- Checkout this repository
- Copy source/Config.mc.template to source/Config.mc
- Obtain ClientId and ClientSecret from <EMAIL>
- Make the world a better place (hoo!)

This is still very much a work in progress. It runs as a widget but
currently plays fast and loose with stacking views.

Source formatting preferences
- 2 character spaces
- Use spaces rather than tabs
- Unix line endings

Releasing
- Update version in source/Version.mc
- Copy manifest-downloadcapable.xml to manifest.xml, run App Export Wizard, upload generated .iq as TrainAsONE
- Copy manifest-allwatches.xml to manifest.xml, run App Export Wizard, save generated .iq as TrainAsONE-lite


{'fraction_non_alphanumeric': 0.05005924170616114, 'fraction_numerical': 0.016587677725118485, 'mean_word_length': 4.132218844984802, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 9, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3534462', 'n_tokens_mistral': 1014, 'n_tokens_neox': 937, 'n_words': 445}