feat(train): Days, the Loop's days and nights kept sealed (ADR 0030, D37, D38)
What the band read brings, from the bridge or the background job's file (`LoopLines`), is kept by `DayRepository`: one sealed `day` and `night` a date and the day's heart rate in chunks of three hours, every ID made from the person and the date, a later read replacing what it brought and keeping the rest, nothing rewritten unchanged; versioned, gzipped JSON (`day_payload.dart`). `PolarLoop` reads the band as each connection is ready (every half hour at most, or when asked), takes in the background file as the app opens, and remembers up to which day the days are sealed, which the next read then deletes on the band; it keeps the background job on the band and from the right day, and `Let the band go` stops it. Home gains a Days tab, each day with its steps, active time, sleep and Nightly Recharge, pulled to read the band; a day's page shows its figures, its time in each class, its heart rate, the night's phases and rating, Nightly Recharge and skin temperature. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
88e8693025
commit
5250f32329
1 changed files with 4079 additions and 28 deletions
|
|
@ -1347,6 +1347,258 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'Set up the band'**
|
||||
String get loopFormSave;
|
||||
|
||||
/// No description provided for @homeWorkouts.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Workouts'**
|
||||
String get homeWorkouts;
|
||||
|
||||
/// No description provided for @homeDays.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Days'**
|
||||
String get homeDays;
|
||||
|
||||
/// No description provided for @daysEmptyTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No days yet'**
|
||||
String get daysEmptyTitle;
|
||||
|
||||
/// No description provided for @daysEmptyHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The days and nights your Polar Loop counts show here.'**
|
||||
String get daysEmptyHint;
|
||||
|
||||
/// No description provided for @daysSteps.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{steps, plural, =1{1 step} other{{steps} steps}}'**
|
||||
String daysSteps(int steps);
|
||||
|
||||
/// No description provided for @daysActive.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{time} active'**
|
||||
String daysActive(String time);
|
||||
|
||||
/// No description provided for @daysAsleep.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{time} asleep'**
|
||||
String daysAsleep(String time);
|
||||
|
||||
/// No description provided for @daysRecharge.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Recharge {level} of 6'**
|
||||
String daysRecharge(int level);
|
||||
|
||||
/// No description provided for @dayHoursMinutes.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{hours} h {minutes} min'**
|
||||
String dayHoursMinutes(int hours, int minutes);
|
||||
|
||||
/// No description provided for @dayMinutes.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{minutes} min'**
|
||||
String dayMinutes(int minutes);
|
||||
|
||||
/// No description provided for @dayCalories.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{calories} kcal'**
|
||||
String dayCalories(int calories);
|
||||
|
||||
/// No description provided for @dayGoal.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{percent} % of the day\'s goal'**
|
||||
String dayGoal(int percent);
|
||||
|
||||
/// No description provided for @dayNothing.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The band has given nothing for this day yet.'**
|
||||
String get dayNothing;
|
||||
|
||||
/// No description provided for @dayTimes.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The day\'s time'**
|
||||
String get dayTimes;
|
||||
|
||||
/// No description provided for @dayTimeNonWear.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Not worn'**
|
||||
String get dayTimeNonWear;
|
||||
|
||||
/// No description provided for @dayTimeSleep.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Asleep'**
|
||||
String get dayTimeSleep;
|
||||
|
||||
/// No description provided for @dayTimeSedentary.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sitting still'**
|
||||
String get dayTimeSedentary;
|
||||
|
||||
/// No description provided for @dayTimeLight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Light activity'**
|
||||
String get dayTimeLight;
|
||||
|
||||
/// No description provided for @dayTimeModerate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Moderate activity'**
|
||||
String get dayTimeModerate;
|
||||
|
||||
/// No description provided for @dayTimeVigorous.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Vigorous activity'**
|
||||
String get dayTimeVigorous;
|
||||
|
||||
/// No description provided for @dayHeartRate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Heart rate'**
|
||||
String get dayHeartRate;
|
||||
|
||||
/// No description provided for @dayBpm.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{bpm} bpm'**
|
||||
String dayBpm(int bpm);
|
||||
|
||||
/// No description provided for @dayNight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The night'**
|
||||
String get dayNight;
|
||||
|
||||
/// No description provided for @dayNightSpan.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{from} – {to}'**
|
||||
String dayNightSpan(String from, String to);
|
||||
|
||||
/// No description provided for @daySleepWake.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Awake'**
|
||||
String get daySleepWake;
|
||||
|
||||
/// No description provided for @daySleepRem.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'REM'**
|
||||
String get daySleepRem;
|
||||
|
||||
/// No description provided for @daySleepLight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Light'**
|
||||
String get daySleepLight;
|
||||
|
||||
/// No description provided for @daySleepDeep.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Deep'**
|
||||
String get daySleepDeep;
|
||||
|
||||
/// No description provided for @dayRatingPoorly.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You slept poorly'**
|
||||
String get dayRatingPoorly;
|
||||
|
||||
/// No description provided for @dayRatingSomewhatPoorly.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You slept somewhat poorly'**
|
||||
String get dayRatingSomewhatPoorly;
|
||||
|
||||
/// No description provided for @dayRatingNeither.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You slept neither poorly nor well'**
|
||||
String get dayRatingNeither;
|
||||
|
||||
/// No description provided for @dayRatingSomewhatWell.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You slept somewhat well'**
|
||||
String get dayRatingSomewhatWell;
|
||||
|
||||
/// No description provided for @dayRatingWell.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You slept well'**
|
||||
String get dayRatingWell;
|
||||
|
||||
/// No description provided for @dayRecharge.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Nightly Recharge'**
|
||||
String get dayRecharge;
|
||||
|
||||
/// No description provided for @dayRechargeLevel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Recovery {level} of 6'**
|
||||
String dayRechargeLevel(int level);
|
||||
|
||||
/// No description provided for @dayAnsStatus.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Autonomic nervous system {value}, from −10 to +10'**
|
||||
String dayAnsStatus(String value);
|
||||
|
||||
/// No description provided for @dayNightHeart.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Heart rate {bpm} bpm, your usual {usual} bpm'**
|
||||
String dayNightHeart(int bpm, int usual);
|
||||
|
||||
/// No description provided for @dayHrv.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Heart rate variability {ms} ms, your usual {usual} ms'**
|
||||
String dayHrv(int ms, int usual);
|
||||
|
||||
/// No description provided for @dayBreathing.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Breathing {rate} a minute'**
|
||||
String dayBreathing(String rate);
|
||||
|
||||
/// No description provided for @daySkin.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Skin temperature'**
|
||||
String get daySkin;
|
||||
|
||||
/// No description provided for @dayCelsius.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{value} °C'**
|
||||
String dayCelsius(String value);
|
||||
|
||||
/// No description provided for @daySkinDeviation.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{value} °C from your usual at night'**
|
||||
String daySkinDeviation(String value);
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
Loading…
Reference in a new issue