feat(train): the body's figures in a sealed, synced profile (ADR 0030, D33, D34)
A person's profile, one row per person (its ID derived from theirs), sealed like a workout: sex, birth date, height, weight, resting and maximum heart rate, VO2max, training background, typical day and sleep goal, each optional. "Your body" in the account sheet edits it; the Loop's setup is to reuse its form. The migration only adds the synced table `profile`, deleted with the person's sync space. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
2acc9fc6b6
commit
de6fe5c15a
1 changed files with 20185 additions and 9 deletions
|
|
@ -957,6 +957,210 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'Health Connect gave no track for it.'**
|
||||
String get workoutNoTrack;
|
||||
|
||||
/// No description provided for @profileTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your body'**
|
||||
String get profileTitle;
|
||||
|
||||
/// Under Your body in the account sheet.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'What your band and your heart-rate zones work from'**
|
||||
String get profileHint;
|
||||
|
||||
/// No description provided for @profileIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Each figure is optional and sealed with your key, as your workouts are; your instance can\'t read them.'**
|
||||
String get profileIntro;
|
||||
|
||||
/// No description provided for @profileLocked.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your profile is sealed with a key this device doesn\'t hold.'**
|
||||
String get profileLocked;
|
||||
|
||||
/// No description provided for @profileSex.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sex'**
|
||||
String get profileSex;
|
||||
|
||||
/// No description provided for @profileSexHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'As Polar\'s formulas take it: the one your body\'s figures follow'**
|
||||
String get profileSexHint;
|
||||
|
||||
/// No description provided for @profileSexFemale.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Female'**
|
||||
String get profileSexFemale;
|
||||
|
||||
/// No description provided for @profileSexMale.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Male'**
|
||||
String get profileSexMale;
|
||||
|
||||
/// No description provided for @profileNotGiven.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Not given'**
|
||||
String get profileNotGiven;
|
||||
|
||||
/// No description provided for @profileBirthDate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Birth date'**
|
||||
String get profileBirthDate;
|
||||
|
||||
/// No description provided for @profileHeight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Height'**
|
||||
String get profileHeight;
|
||||
|
||||
/// No description provided for @profileHeightUnit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'cm'**
|
||||
String get profileHeightUnit;
|
||||
|
||||
/// No description provided for @profileWeight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Weight'**
|
||||
String get profileWeight;
|
||||
|
||||
/// No description provided for @profileWeightUnit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'kg'**
|
||||
String get profileWeightUnit;
|
||||
|
||||
/// No description provided for @profileRestingHeartRate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Resting heart rate'**
|
||||
String get profileRestingHeartRate;
|
||||
|
||||
/// No description provided for @profileMaxHeartRate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Highest heart rate'**
|
||||
String get profileMaxHeartRate;
|
||||
|
||||
/// No description provided for @profileBpmUnit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'bpm'**
|
||||
String get profileBpmUnit;
|
||||
|
||||
/// No description provided for @profileVo2Max.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'VO2max'**
|
||||
String get profileVo2Max;
|
||||
|
||||
/// No description provided for @profileVo2MaxUnit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'ml/kg/min'**
|
||||
String get profileVo2MaxUnit;
|
||||
|
||||
/// No description provided for @profileTrainingBackground.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Training background'**
|
||||
String get profileTrainingBackground;
|
||||
|
||||
/// No description provided for @trainingOccasional.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Occasional'**
|
||||
String get trainingOccasional;
|
||||
|
||||
/// No description provided for @trainingRegular.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Regular'**
|
||||
String get trainingRegular;
|
||||
|
||||
/// No description provided for @trainingFrequent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Frequent'**
|
||||
String get trainingFrequent;
|
||||
|
||||
/// No description provided for @trainingHeavy.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Heavy'**
|
||||
String get trainingHeavy;
|
||||
|
||||
/// No description provided for @trainingSemiPro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Semi-pro'**
|
||||
String get trainingSemiPro;
|
||||
|
||||
/// No description provided for @trainingPro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Pro'**
|
||||
String get trainingPro;
|
||||
|
||||
/// No description provided for @profileTypicalDay.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Typical day'**
|
||||
String get profileTypicalDay;
|
||||
|
||||
/// No description provided for @typicalDaySitting.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Mostly sitting'**
|
||||
String get typicalDaySitting;
|
||||
|
||||
/// No description provided for @typicalDayStanding.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Mostly standing'**
|
||||
String get typicalDayStanding;
|
||||
|
||||
/// No description provided for @typicalDayMoving.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Mostly moving'**
|
||||
String get typicalDayMoving;
|
||||
|
||||
/// No description provided for @profileSleepGoal.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sleep goal'**
|
||||
String get profileSleepGoal;
|
||||
|
||||
/// No description provided for @profileSave.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Save'**
|
||||
String get profileSave;
|
||||
|
||||
/// No description provided for @profileSaved.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Saved'**
|
||||
String get profileSaved;
|
||||
|
||||
/// No description provided for @profileInvalid.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Check the figures marked.'**
|
||||
String get profileInvalid;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
Loading…
Reference in a new issue