Repository navigation
Fix stretched logo on the Android 12+ launch screen - #726
Merged
Merged
Conversation
Android 12+ draws the launch-screen Q as windowSplashScreenBrandingImage and stretches that drawable to fill its fixed 200x80dp branding slot. The branding drawables regenerated in 7e48d69 came from the square uppercase_q.png, so the Q rendered 2.5x wider than tall. Center the Q on a transparent 800x320 canvas (the slot's 4x size), point android_12.branding at it and regenerate with dart run flutter_native_splash:create. Only the ten drawable-*-v31/android12branding.png files change; the pre-Android-12 layer list, the styles and the iOS output are untouched.
Restore assets/v2/android12_branding_800x320.png, the wordmark that PR 401 made for the 200x80dp branding slot, and regenerate. The ten drawable-*-v31/android12branding.png files return to their content before 7e48d69. Android 7-11, which show the centered Q from launch_background.xml, and iOS are untouched.
n13
commented
Nov 4, 2026
n13
left a comment
Collaborator
Author
There was a problem hiding this comment.
Verdict: Approve
Reviewer: GPT-6.1 Sol
Reviewed head 545d18a54f89f51e047aa598aa57fd9cfa8298b0 against base bbdfd2e152291118398771a16f638a24ea45fad0. No blocking findings.
The restored 800×320 wordmark produces the correct 200×80dp branding canvas at all five densities in both light and dark modes, matching Android's splash-screen specification. All ten drawables are byte-identical to their versions before 7e48d699; the diff leaves pre-Android-12 resources and iOS unchanged.
Validation:
- Ran
flutter_native_splash2.4.7 with dependencies selected from the committed mobile lockfile in a separate scratch copy. The complete regenerated Android and iOS trees match the committed trees byte for byte. - Checked every branding image's dimensions and transparency, all five light/dark pairs, the resource references, and
git diff --check; all passed. - Verified successful CI at this exact head: formatting, analysis, mobile tests, SDK tests, cold-wallet tests, and dependency cooldown.
Local app dependency setup stopped at lockfile enforcement because the default Flutter SDK is 3.44.4 versus the pinned 3.47.7, so app-level checks rely on CI. I did not independently repeat emulator cold launches.
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.
Problem
On Android 12 and later the launch screen draws
windowSplashScreenBrandingImageat the bottom, stretched to a fixed 200x80dp slot. PR #401 addedassets/v2/android12_branding_800x320.png, the Quantus wordmark on an 800x320 canvas, for exactly that slot. The design update in #473 pointedandroid_12.brandingat the squareuppercase_q.pngwithout regenerating, so the committed wordmark drawables kept shipping until 7e48d69 regenerated them from the square Q. Since then the Q renders 2.5x wider than tall.Before, on the Pixel_7 emulator (Android 17), the logo's bounding box on the launch screen measured 522x188 px.
Fix
android_12.brandinginpubspec.yamlpoints back at the 800x320 wordmark asset, so the nextdart run flutter_native_splash:createkeeps the fix.drawable-*-v31/android12branding.pngfiles are the regenerated output, byte-identical to their content before 7e48d69.Net diff against main: the ten drawables and one pubspec line. The
-v31resource qualifier means only Android 12+ resolves these drawables. Android 7 to 11 keeplaunch_background.xmlwith the centered Q, and the iOS launch images are untouched.Verification
Debug build of this branch, cold launches captured while the launch window was up, logo measured on each frame:
Note for Android 12.0: a launch issued through
am startshows Android's empty solid-color splash with no icon or branding, because 12.0 reserves the full splash for launches from the home screen. Tapping the app icon shows the wordmark. Later releases show it for shell launches too.