Skip to content

Settings And Preferences

github-actions[bot] edited this page Nov 9, 2026 · 1 revision

Status: Current implemented behavior. Audience: Users and contributors. Implementation: features/settings, data/repository/PreferencesRepository.kt. Navigation: Screen.Settings and settings subsection routes; sections in SettingsSection. Related: Feature map, Permissions, Metric detail customization.

Settings centralize app preferences, Health Connect access, imports, sensors, phone-to-phone sync, goals, reminders, and diagnostics.

Sections

Settings is a list of section cards. Tapping one opens it:

  • Display.
  • Activities.
  • Sensors and devices, for Bluetooth LE sensors.
  • Nutrition.
  • Body profile.
  • Vitals, for the blood pressure guideline.
  • Recovery.
  • Cycle.
  • Data Importers.
  • Sync with another phone.
  • Health Connect.
  • Debug diagnostics, in diagnostics builds only.

The settings root also shows support links, privacy notes, and the app version.

Display

Users can configure:

  • Language.
  • Unit system.
  • Theme mode, including system, light, dark, and AMOLED, plus dynamic color.
  • Chart aggregation, which replaces raw samples with an average line and a min/max band per time bucket.
  • Rolling dates mode, such as calendar week/month/year or rolling 7/30/365-day windows.

Display preferences affect app presentation only. They do not rewrite Health Connect records.

Metric Preferences

Metric-specific settings include:

  • Favorite or latest activity defaults used by activity entry and recording setup.
  • Split distance used by activity splits.
  • Distance from GPS routes, off by default: a workout with a route takes the route's length as its distance. See Activity metrics.
  • Activity recording preferences, including keep-screen-on.
  • Calorie data mode, including optional OpenVitals total-calorie calculation when Health Connect totals are missing.
  • Hydration goal, set with a stepper in the app's unit system.
  • Caffeine sensitivity, daily limit, and bedtime guidance.
  • Night start and night end hours, which decide where a night begins and ends and therefore which sessions count as daytime naps.
  • High and low heart-rate alert thresholds, in beats per minute, used to flag an unusual resting heart rate.
  • Body Energy calibration.

Body Profile

Body profile is its own section. It holds the facts about the user that personalize Body Energy, heart zones, and caffeine estimates. Every field is optional.

  • Birth year.
  • Weight, in the selected unit system.
  • Height, in centimetres.
  • Resting heart rate.
  • Maximum heart rate.
  • Sex, read only by the basal metabolic rate estimate.

Weight and height are shared with health data. When a measurement is available from Health Connect the field is labelled as measured and shows that value, so BMI, FFMI context, and caffeine estimates all use the same number. When nothing has been recorded, the typed value is kept as a local preference and used the same way.

The same section holds the "Basal metabolic rate" card: an off-by-default switch that estimates the resting daily burn from the profile (Mifflin-St Jeor) and writes one value per day to Health Connect, leaving days another source already covers alone. See Body metrics.

The same section holds the Metabolism card, which used to live behind caffeine settings. It collects the optional factors that change how quickly caffeine is cleared. Leaving them alone uses population averages.

Sync With Another Phone

Settings, Sync with another phone opens the phone-to-phone sync wizard, which copies supported Health Connect records between two nearby phones over Bluetooth. See Sync with another phone.

Cycle

The Cycle section holds tracking contexts (PMS, PMDD, endometriosis, PCOS, perimenopause, thyroid), the age band, the cycle reminder configuration, a journal backup card that exports the journal to a JSON file and imports one back, and a "Delete cycle journal" action. The age band follows the body profile's birth year when one is set; the picker is the fallback. Contexts and age band only shape the estimate's width and the day log's suggested symptoms. They are stored in their own preferences file and never written to Health Connect. Deleting the journal removes the day logs, the exclusions and every cycle setting from the device after a confirmation, and leaves Health Connect records alone. See Cycle tracking and Reminders.

Goals And Reminders

Settings expose local goals and reminders for supported metric families, including hydration, mindfulness, and cycle reminders.

Goals and reminders are local app preferences. They help shape guidance and notifications but do not create Health Connect health records by themselves.

Health Connect

Health Connect settings show permission categories, missing access, and actions for requesting or opening Health Connect permission management.

OpenVitals asks for read permissions for dashboard and detail views. Write permissions are requested only when a user enters, imports, records, edits, or deletes data that needs them.

The section also holds a Health Connect sync switch and a mindfulness integration switch. Mindfulness integration is off when the device's Health Connect version cannot show the mindfulness permission.

Data Importers And Sensors

Settings provide Data Importers for Apple Health export import, single or bulk GPX/KML/KMZ/TCX route import, FIT activity/course/workout import, and CSV import of body measurements, vitals and workouts, plus entry points for offline map pack import and Bluetooth LE sensor management. Apple Health exports are analyzed first so the user can choose detected categories before anything is written to Health Connect. Route bulk import writes selected files directly after route import permissions are granted. CSV import runs its own mapping wizard; see CSV import. Import results can be copied or downloaded as a text report with summary, selected categories, logs, diagnostics, and failure details, holding counts, types and reasons and no record's value, time or source.

App Lock

App lock asks for the device's own unlock (PIN, pattern, password or biometrics) before OpenVitals shows anything. A phone with no screen lock has nothing to ask for, so the app opens.

  • It asks on every cold start. A rotation does not ask again. A process that Android killed and restored starts locked.
  • It asks again after the app has spent a minute in the background. The screens stay loaded under the lock screen, so a file picker's result or the place in a form is not lost.
  • A cancelled prompt leaves a lock screen with an Unlock button.
  • While the lock is on, the recent-apps list shows no thumbnail of the app. On Android 12 and older that needs a window flag that also blocks screenshots of OpenVitals.
  • The lock hides the screen. It does not encrypt anything; app-private storage and Health Connect's own permissions protect the data.

Diagnostics And App Information

The settings area includes app version information, diagnostics/support surfaces, and privacy notes.

In diagnostics builds, the Debug diagnostics section can save or share the app's logs, masked, post the hydration reminder notification on demand so its layout and actions can be checked, and list the apps that contributed heart-rate and sleep records to Health Connect over the last seven days.


Generated from docs/features/settings-and-preferences.md. Edit it there; changes made here are overwritten.

Home

Features

How-to

App

Reference

Engineering

Proposals

Releases

Project

Clone this wiki locally