Replace the landing copy with the recently opened documents - #525
Draft
andiwand wants to merge 1 commit into
Draft
Replace the landing copy with the recently opened documents#525andiwand wants to merge 1 commit into
andiwand wants to merge 1 commit into
Conversation
andiwand
force-pushed
the
landing/02-material3
branch
from
July 27, 2026 20:40
30f725a to
c206740
Compare
andiwand
force-pushed
the
landing/03-recents-list
branch
from
July 27, 2026 20:40
41dcdf7 to
b3c2675
Compare
andiwand
force-pushed
the
landing/02-material3
branch
from
July 27, 2026 22:01
c206740 to
7ef14b7
Compare
andiwand
force-pushed
the
landing/03-recents-list
branch
from
July 27, 2026 22:01
b3c2675 to
2174369
Compare
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
force-pushed
the
landing/02-material3
branch
from
July 28, 2026 07:43
7ef14b7 to
02ae46d
Compare
andiwand
force-pushed
the
landing/03-recents-list
branch
from
July 28, 2026 07:43
2174369 to
4110d98
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 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.
LandingFragmentis a sibling ofDocumentFragment, state in a ViewModel so it survives the recreation a rotation or dark-mode toggle causes;MainActivitykeeps only the container swap it already did.material, so declaring them costs no apk size — it only stops amaterialbump from silently taking a compile dependency away.setLandingVisibleis 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, butapplyOnLaunchstays inMainActivity.onCreate— the upgrade re-toggle has to run even when the app is launched straight into a document.Retires
landing_intro_*and the size-qualifiedstyles.xmlfiles that existed only for the old layout.Verification
Unit, lint and 16 instrumented tests green, including four new landing tests.