Repository navigation
Make the login screen use the same buttons as the rest of the app - #86
Merged
Merged
Conversation
The pages after sign-in moved to Material's tonal button, so the login flow was left as the only place with outlined ones - which reads as a different app rather than a different screen. - the 2FA method choices, and the SMS button inflated per phone number, become tonal like App Wiki and Github - the four circular icon buttons become filled tonal, so the back arrow has a surface rather than a ring. Their explicit iconTint moves to colorOnSecondaryContainer, which is the role that belongs on that container - the old one was set against an outlined style - the selection bar's overflow button matches the one on Device View: same 35dp box, but 10dp of padding rather than 6dp, so the glyph is the same size. It was noticeably larger before The app mark on the login screen is now drawn from ic_launcher_monochrome's geometry rather than the flat silhouette, and filled from the theme. That layer exists for Android 13 themed icons and already separates the mark's face from its extruded side, which is what makes a two-tone fill possible; opentagviewer_icon is a single path and cannot show depth at all. The side is the face colour at reduced alpha, so it follows the theme in both light and dark. Note this makes the side lighter than the face on a light background, where the real icon has it darker - keeping "darker" in both modes needs two roles whose lightness relationship holds either way, and M3 has no such pair. Rendered on the managed device both ways; see the test output. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
parawanderer
temporarily deployed
to
Android Build
August 16, 2026 08:23 — with
GitHub Actions
Inactive
parawanderer
temporarily deployed
to
Android Build
August 16, 2026 08:23 — with
GitHub Actions
Inactive
parawanderer
added a commit
that referenced
this pull request
Sep 16, 2026
The same split as the app side, in the other two programs that make this call. Both the wizard and the CLI answered every MobileMeDelegateError with the terms flow, because terms were the only cause with a remedy here. Neither of them lied about it - the wizard fetches, finds nothing and says "this is something else", and the CLI asks before fetching and says the same. That honesty is why this never arrived as an exporter bug report. It is still a round trip to Apple to discover something the response already said, and it still leaves somebody at a dead end holding Apple's word "server problem", which reads as "wait" when waiting is exactly what does not work. not_a_terms_problem() in icloud.py is the shared decision, next to ExportSourceError and the sign-in that raises it, so the wizard and the CLI cannot drift apart on it the way three screens in the app once did. The message says sign-in worked, says it is not terms, quotes Apple verbatim because that string is the only evidence a report can carry, and passes on the remedy from dchristl/macless-haystack#84, #86 and #87 - appleid.apple.com and a payment method - as somebody else's finding rather than as fact. It contradicts Apple's own "try signing in later" on purpose. Nine tests, both branches of the decision. 657 passed on the exporter suite, flake8 clean, and pyright unchanged at its pre-existing count. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This branch was previously deployed
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.
The pages after sign-in moved to Material's tonal button, so the login flow was left as the only
place still using outlined ones — which reads as a different app rather than a different screen.
OutlinedButtonTonalButton, matching App Wiki / GithubmaterialIconButtonOutlinedStylematerialIconButtonFilledTonalStyle— a surface rather than a ringiconTintcolorOnSurfaceVariantcolorOnSecondaryContainer, the role that belongs on that containerThe overflow button was the same 35dp box and the same icon as the one on Device View; only the
padding differed, which made the glyph noticeably larger.
The app mark now takes its colour from the theme
The login screen used
opentagviewer_icon, a single flat silhouette, so it was always black.It now uses geometry from
ic_launcher_monochrome— the layer added so Android 13 themed iconswork. That layer already separates the mark's flat face from its extruded side, which is what
makes a two-tone fill possible at all; the silhouette cannot show depth no matter what colour it
is given.
The face takes
colorPrimaryand the side the same colour at reduced alpha, so the depthsurvives whatever the wallpaper does.
One honest caveat: this makes the side lighter than the face on a light background, where
the real icon has it darker. Keeping "darker" in both light and dark needs two roles whose
lightness relationship holds either way, and M3 has no such pair. Flipping it is one number if
the other trade is preferred.
Verification
Rendered on the managed device in both palettes — the mark comes out teal in the app palette and
indigo under wallpaper colours, with the side clearly distinct. Build passes.
Not checked in dark mode; all rendering so far has been light only.
🤖 Generated with Claude Code
This pull request description was written by Claude Code.