feat(train): workouts written to Health Connect (ADR 0030, D31)
A Health Connect row in the account sheet opens its screen: Write my workouts, off until turned on, Health Connect asking as it is. Then every workout this phone holds is written there (its session with its pauses and route, heart rate, speed and the rower's watts as samples, distance and elevation gained), and written again or deleted as it changes, here or through a sync, and as the app opens. Client IDs come from the workout's ID, a version counts up with each change; what was written is kept in the person's health_connect.json, never synced. A permission taken back in Health Connect turns writing off and says so; Health Connect's link to Train's rationale opens a screen of its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
030cb9b976
commit
09f61c3b0a
1 changed files with 1513 additions and 8 deletions
|
|
@ -825,6 +825,90 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'metres'**
|
||||
String get recordingMetres;
|
||||
|
||||
/// No description provided for @healthTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Health Connect'**
|
||||
String get healthTitle;
|
||||
|
||||
/// Under Health Connect in the account sheet.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Share workouts with other apps on this phone'**
|
||||
String get healthHint;
|
||||
|
||||
/// No description provided for @healthUnavailable.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Health Connect isn\'t on this phone. Android 14 and later have it built in; before 14, it\'s an app of its own.'**
|
||||
String get healthUnavailable;
|
||||
|
||||
/// No description provided for @healthNeedsUpdate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Update the Health Connect app to use it with Train.'**
|
||||
String get healthNeedsUpdate;
|
||||
|
||||
/// No description provided for @healthWrite.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Write my workouts'**
|
||||
String get healthWrite;
|
||||
|
||||
/// No description provided for @healthWriteHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Every workout on this phone, kept up to date as you edit or delete it'**
|
||||
String get healthWriteHint;
|
||||
|
||||
/// No description provided for @healthWriteRefused.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Health Connect took this back. Allow it there to turn it on again.'**
|
||||
String get healthWriteRefused;
|
||||
|
||||
/// No description provided for @healthRefused.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Health Connect didn\'t allow it. You can allow it in its settings.'**
|
||||
String get healthRefused;
|
||||
|
||||
/// No description provided for @healthOpenSettings.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Open Health Connect'**
|
||||
String get healthOpenSettings;
|
||||
|
||||
/// No description provided for @healthWhy.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Why Train asks'**
|
||||
String get healthWhy;
|
||||
|
||||
/// No description provided for @healthRationaleTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Train and Health Connect'**
|
||||
String get healthRationaleTitle;
|
||||
|
||||
/// No description provided for @healthRationaleWrite.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Train writes your workouts to Health Connect only once you turn it on: each one with its route, heart rate, speed, power, distance and climb, so that other apps on this phone can use them. A workout edited or deleted in Train is edited or deleted there too.'**
|
||||
String get healthRationaleWrite;
|
||||
|
||||
/// No description provided for @healthRationaleRead.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Train reads other apps\' workouts only once you turn it on, and only from the apps you choose: their heart rate, distance and power come into Train as workouts, sealed with your key before they\'re synced to your instance, which can\'t read them.'**
|
||||
String get healthRationaleRead;
|
||||
|
||||
/// No description provided for @healthRationaleNothingElse.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'What Train reads there is shown to you and nobody else, and isn\'t used for anything else. Turning a switch off, or taking a permission back in Health Connect, stops it.'**
|
||||
String get healthRationaleNothingElse;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
Loading…
Reference in a new issue