Skip to content

Replace the landing copy with the recently opened documents - #525

Draft
andiwand wants to merge 1 commit into
landing/02-material3from
landing/03-recents-list
Draft

Replace the landing copy with the recently opened documents#525
andiwand wants to merge 1 commit into
landing/02-material3from
landing/03-recents-list

Conversation

@andiwand

@andiwand andiwand commented Jul 26, 2026

Copy link
Copy Markdown
Member

🤖 Generated with Claude Code

Third of six, stacked. Base: landing/02-material3 (#524). This is the one that changes what people see.

The app opened on a static welcome screen — a title and three icon rows explaining that it can view, search and edit documents, none of it actionable. The recently opened list already existed but was buried as the last row of the file manager chooser, so almost nobody found it.

The landing screen is now that list, with an empty state on first run.

LandingFragment is a sibling of DocumentFragment, state in a ViewModel so it survives the recreation a rotation or dark-mode toggle causes; MainActivity keeps only the container swap it already did.

  • RecyclerView and the two lifecycle artifacts already arrived through material, so declaring them costs no apk size — it only stops a material bump from silently taking a compile dependency away.
  • No coroutines. They are on the classpath transitively via the play libraries and nothing here is written in them, so the list loads on an executor and publishes through LiveData, like the loaders.
  • setLandingVisible is not ceremony. The fragment is hidden rather than stopped when a document opens, so nothing in the lifecycle fires when one is closed — without it the list would miss the document just added to it.

The catch-all switch keeps its place under a settings header; it is exactly the setting a stuck user has to find. Its logic moves to CatchAllSetting, but applyOnLaunch stays in MainActivity.onCreate — the upgrade re-toggle has to run even when the app is launched straight into a document.

Retires landing_intro_* and the size-qualified styles.xml files that existed only for the old layout.

Verification

Unit, lint and 16 instrumented tests green, including four new landing tests.

@andiwand
andiwand force-pushed the landing/02-material3 branch from 30f725a to c206740 Compare July 27, 2026 20:40
@andiwand
andiwand force-pushed the landing/03-recents-list branch from 41dcdf7 to b3c2675 Compare July 27, 2026 20:40
@andiwand
andiwand force-pushed the landing/02-material3 branch from c206740 to 7ef14b7 Compare July 27, 2026 22:01
@andiwand
andiwand force-pushed the landing/03-recents-list branch from b3c2675 to 2174369 Compare July 27, 2026 22:01
The app opened on a static welcome screen: a title and three icon rows
explaining that it can view, search and edit documents, none of which
was actionable. The recently opened list existed but was buried as the
last row of the file manager chooser, so almost nobody found it.

The landing screen is now that list. LandingFragment is a sibling of
DocumentFragment, with its state in a ViewModel so it survives the
recreation a rotation or a dark mode toggle causes, and MainActivity
keeps only the container swap it already did.

RecyclerView and the two lifecycle artifacts already came in through
material, so declaring them costs no apk size - it only stops a material
bump from silently taking a compile dependency away. No coroutines: they
are on the classpath transitively via the play libraries, and nothing in
this project is written in them, so the list loads on an executor and
publishes through LiveData like the loaders do.

The fragment is hidden rather than stopped when a document opens, so
nothing in the lifecycle fires when one is closed - hence the explicit
setLandingVisible, without which the list would miss the document that
was just added to it.

The catch-all switch keeps its place, under a settings header. It is
exactly the setting a stuck user has to be able to find. Its logic moves
to CatchAllSetting, but applyOnLaunch stays in MainActivity.onCreate:
the upgrade re-toggle has to run even when the app is launched straight
into a document and the landing screen is never shown.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiSZ4FeptMUsFjAuCewzQZ
@andiwand
andiwand force-pushed the landing/02-material3 branch from 7ef14b7 to 02ae46d Compare July 28, 2026 07:43
@andiwand
andiwand force-pushed the landing/03-recents-list branch from 2174369 to 4110d98 Compare July 28, 2026 07:43
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