Skip to content

Redesign the History screen: calendar, week list, year view - #96

Merged
SamiPr0 merged 19 commits into
mainfrom
feat/history-polish
Oct 9, 2026
Merged

SamiPr0 merged 19 commits into
mainfrom
feat/history-polish

Conversation

@SamiPr0

@SamiPr0 SamiPr0 commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Combines the stacked PRs #92, #93, #94 and #95 into one reviewable change (they depend on each other); those PRs are closed in favour of this one.

What

  • Compact overview card: the current week as seven days and one summary line; a Calendar button expands to an iPhone-style month calendar (swipe or arrows between months).
  • Zoom out to the year: pinch, or the "‹ 2026" link, shows twelve month tiles shaded by visits; tap a month to zoom back in.
  • List grouped by week: sticky week headers with visits and total distance, a date block on each row, rows led by the distance.
  • Swipe left to delete with Undo (no confirmation dialog); screen readers get a "Delete entry" action.
  • Tapping a calendar day scrolls to its entry and tints it (or says there was no visit).
  • Soft tinted colours throughout.

Tests

Unit tests for the calendar, year, week-strip, list-row and colour models, plus Robolectric screen tests. ./gradlew check ktfmtCheck is green and CI passed on the top branch. Checked on an emulator (Pixel_10a) with seeded data; connectedDebugAndroidTest was not run.

🤖 Generated with Claude Code

SamiPr0 and others added 19 commits October 8, 2026 00:11
Pure functions that turn entries into a week-by-weekday grid with
intensity levels, month labels and a week-streak summary.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A GitHub-style calendar grid, its legend and the overview card that
wraps it with a summary line and a clear-filter bar.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Tapping a day filters the list to it; tapping it again or Show all
clears the filter. Screen tests use a tall viewport so the card does
not push the rows out of view.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A wall-calendar layout of one month, plus the list of months to page
through. The year grid now only feeds the summary, so its month labels
go.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A full-width month calendar with round days, month title, previous and
next buttons and swiping between months, instead of a sideways-scrolling
year grid that does not fit a phone.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Lets the UI undo a delete with the entry's swim data intact.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Group entries under sticky month headers with visit counts, use flat
compact rows, and delete by swiping left with an Undo snackbar instead
of a red button and a confirmation dialog on every row. Screen readers
get a Delete entry action in place of the swipe.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Entries sit under sticky week headers (This week, Last week, then the
dates) with a visit count, and each row carries its own date block
instead of a per-day header, since there is about one visit a day.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Twelve month tiles shaded by visits, the years to page through, and
which month to open when zooming back in. The visits label moves next
to it so both calendars share it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Detects a two-finger pinch out or in without consuming single touches,
so pager swipes and day taps keep working.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Pinch out, or tap the year above the month, to see the year as twelve
tiles shaded by how often you went. Tap a month or pinch in to return.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A flat list of week headers and entries with weekly totals, finding an
entry by day, the distance-first row texts and the distance format.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
One summary line (visits this week, week streak) and the current week
as seven days; a Calendar button expands to the month calendar with
its year zoom. Tapping a day no longer filters, it highlights.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Rows lead with the distance, week headers show the week's total
distance, and tapping a day in the overview scrolls to its entry and
tints it, or says there was no visit that day.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Days with one visit start at 70% opacity instead of 30%, since most
days have at most one visit; the year view keeps its wider gradient.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Render four to six weeks as the month needs instead of always six, so
the card no longer has a blank band under the last week.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The summary is just the visits this week. The year-long grid and its
streak summary only existed for that line, so they go too.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Fills are 40-65% tints for days and 15-60% for months instead of the
full primary color, with the normal text color on top.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant