Skip to content

fix(startup): the splash follows the launcher icon - #1397

Closed
Chiehx0220 wants to merge 1 commit into
Flow-Tube:mainfrom
Chiehx0220:fix/splash-follows-launcher-icon
Closed

Chiehx0220 wants to merge 1 commit into
Flow-Tube:mainfrom
Chiehx0220:fix/splash-follows-launcher-icon

Conversation

@Chiehx0220

Copy link
Copy Markdown
Contributor

Summary

The startup splash did not follow the launcher icon in two cases.

  • Switching the icon in Appearance left the remembered splash theme on the old icon. MainActivity re-applied it only when the tone (light, dark, black) changed, so the first launch after a switch still opened on the old icon's splash. It now also re-applies when the saved selection changes (AppIconController.selected, the existing PlayerPreferences.selectedAppIcon flow).
  • Material Sky and Material Mint had no splash styles and fell back to the default Flow badge. Added six styles (three tones for each), built like the dynamic one: the launcher foreground over the icon's own background tint (icon_bg_material_sky, icon_bg_material_mint).
  • ExpressiveSplash and ExpressiveSplashes are renamed AliasSplash and AliasSplashes, as they now hold more than the Expressive icons.
  • SplashThemesTest checks that every alias with its own art resolves to a splash of its own on every tone (Flow Red and Flow Light share the default; Ghost on light keeps its fallback by design). Without the themes.xml and SplashThemes.kt change it fails and lists Material Sky and Material Mint on all three tones.
  • Added .github/nightly-notes/2026-10-22-fix-splash-follows-launcher-icon.md.

Related issue

None.

Change type

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Build, packaging, or CI
  • Documentation

Validation

  • ./gradlew :app:assembleGithubDebug
  • ./gradlew :app:testGithubDebugUnitTest: 4328 tests, 0 failed
  • Flavor-specific tasks: not run; no flavor-specific code is touched.
  • I manually tested the affected behavior on an Android device or emulator, in part (see below).
  • ./gradlew ktlintCheck, python3 .github/scripts/nightly_notes.py --check

Test device and Android version: Pixel 6, Android 16.

On the device: switched to Material Sky in Appearance, force-stopped the app and cold started once. The splash showed the sky-blue circle with the red F on the dark window, with nothing clipped. Not checked on the device: Material Mint, and the light and black tones. Android 12 and earlier are unchanged, as setSplashScreenTheme needs Android 13.

I asked an AI assistant to help find the cause, write the change and run the tests and the device check.

Screenshots or recordings

I can attach the splash frame from the Pixel 6 if wanted.

Risk and compatibility

  • No preference or database change, no permission, no network or background work. MainActivity collects one more DataStore flow that was already there.

  • The splash theme is still remembered only on Android 13 and later.

  • The change does not introduce secrets, private data, or unexpected telemetry.

  • No new user-facing text.

  • No dependency changes.

  • No Room schema change.

  • No breaking changes.

- Add splash styles for the Material Sky and Material Mint icons on every tone
- Re-apply the remembered splash theme when the icon is switched, not only when the tone changes
- Rename ExpressiveSplash to AliasSplash, as it now holds more than the Expressive icons
- Test that every alias with its own art has a splash of its own
@Chiehx0220
Chiehx0220 requested a review from A-EDev as a code owner October 22, 2026 06:25
@github-actions github-actions Bot added documentation Improvements or additions to documentation ui Compose UI, theming, or Material 3 surfaces labels Oct 22, 2026
@Chiehx0220
Chiehx0220 marked this pull request as draft October 22, 2026 06:26
@Chiehx0220 Chiehx0220 closed this Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation ui Compose UI, theming, or Material 3 surfaces

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant