Body Metrics
Status: Current implemented behavior. Audience: Users and contributors. Implementation:
features/body,features/manualentry/body,data/repository/BodyRepository.kt. Navigation:Screen.Body,Screen.Metric, body entry routes; widgetsWEIGHT,HEIGHT,BMI,FFMI,BODY_FAT,LEAN_MASS,BMR,BONE_MASS,BODY_WATER_MASS. Related: Feature map, Manual entry of metrics, Statistics.
The body feature owns period-based detail screens for body measurement and composition metrics read from Health Connect.
Implemented Metrics
Body metric detail screens currently cover:
- Weight.
- Height.
- BMI.
- Body fat.
- Lean mass.
- Basal metabolic rate.
- Bone mass.
- Body water mass.
BMI and FFMI-style context are derived from available measurements. Derived values should explain missing prerequisites instead of pretending the calculation is complete.
Detail Pattern
Body metrics follow the canonical period-detail pattern:
- Day, week, month, and year ranges.
- Previous/next period navigation capped at the current period.
- Calendar selection and pull to refresh.
- Period charts, selected-day entries, statistics, comparisons, personal baselines, and data confidence.
- Entry lists that allow edit/delete only for OpenVitals-created records.
- Reorderable metric detail sections.
Manual body entry lives under features/manualentry/body and writes explicit user-entered records to Health Connect. The dashboard and body detail screens remain read-oriented.
Data Boundaries
The body feature reads through BodyRepository. New body metric work should keep feature-specific formatting, cards, charts, and rows in features/body; shared components should only move out when another feature really reuses them.