Skip to content

Lift Log has no Android UI: the schema and metrics shipped, the log book did not #2327

Description

@ryanbr

What happened

An Android user on 11.8.0 went looking for the gym log book announced in the release notes and could not find an entry point. They were right: there isn't one.

The three PRs behind the feature split by platform:

PR What it added Platforms
#2098 v46 schema + Room twin Packages/ + android/ (storage)
#2099 the Lift Log itself, 8 screens Packages/ + Strand/ + StrandTests/
#2232 Kotlin LiftMetrics twin android/ (engine)

Android therefore has data/LiftEntities.kt, analytics/LiftMetrics.kt and the v46 schema, and no UI at all. Apple has LiftLogView, LiftSessionView, LiftSessionBar and four program/session sheets under Strand/Screens/.

The only Android mention of a lift log outside the changelog string is WorkoutsScreen.kt:2520, WorkoutSource.LIFTING -> "LIFT", which is the badge for IMPORTED Hevy / Liftosaur data and predates all of this.

So the storage and the maths are on Android and the book is not. Nothing is broken; the feature is simply Apple-only in its usable form, and the notes never said so.

Why it reads as available

The 11.8.0 entry says:

An on-device gym log book: build a session, then move between sets with a double-tap on the strap instead of reaching for the phone. Stored in a new schema with a matching Room twin, and the set metrics are computed by the same engine on both platforms.

Every clause is true. The trouble is that the only two platform phrases in it, "a matching Room twin" and "on both platforms", attach to the storage and the engine, which are exactly the two halves Android did get. Nothing says the log is Apple-only, so on Android it reads as an announcement of a feature you have. The same text ships in the in-app changelog (AppChangelog.kt, AppChangelog.swift) and in docs/releases/v11.8.0.md.

The wording is worth correcting on its own, and the changelog already has a convention for it ("iPhone only", "Android only", "(iPhone and Mac)" all appear in existing entries). That part is a separate small change and does not need this issue.

What this issue is for

The Android Lift Log UI. The schema, the Room twin and the metrics engine are already in place and already twinned, so this is a UI port rather than a feature build: session construction, the set list, program editing and import, and the double-tap advance.

Parent feature issue is #760, which scoped the strength-trainer work originally.

Secondary, found while confirming the above

The same report showed "Start session" listed under SHOWN in Customize Today while no such row appears on the screen. That one is not the lift log: it is the Live Sessions beta entry, gated at TodayScreen.kt:1635

TodaySection.LIVE_SESSION ->
    selectedDayOffset == 0 && (liveSessionsEnabled || activeLiveSession != null)

and the reporter has Live Sessions (beta) switched off in Settings, where it defaults on. The sheet builds its list from the saved order with no feature-gate filter, so a section can sit under SHOWN and still never render. YOUR_CARDS, JOURNAL and ADDED_CARDS have the same shape when empty or off. Worth a look, but the honest fix is probably to annotate those rows rather than hide them, since hiding would lose the user's saved position for the section.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions