SplashScreen component is the first visual the user sees when launching GlobalTV. It satisfies Roku certification requirements by declaring a splash image in the manifest and holding it on screen for the required minimum duration before the app proceeds to authentication or onboarding.
Purpose and timing
The splash is displayed for 1500ms (SPLASH_MS = 1500 in AppConstants). This value aligns directly with the manifest’s splash_min_time field, which instructs the Roku OS to keep the built-in splash visible until the channel is ready.
duration="1.5" and repeat="false":
What it displays
The screen has three visual layers:| Layer | Node | Purpose |
|---|---|---|
| Background | Rectangle#bg (0x1A1A2EFF) | Solid dark blue fill |
| Splash image | Poster#splashImg | Full-screen brand image (splash_hd.png or splash_fhd.png) |
| Fallback logo | Poster#logoImg | Shown only if the splash image fails to load |
| Version label | Label#versionLabel | Bottom-right corner, reads from AppConstants().APP_VERSION |
Fallback behavior
If the splash poster fails to load, the component shows thelogoImg fallback instead:
Transition to next screen
TheSplashScreen component exposes a single output field:
splashDone changes to true, MainScene observes the change and decides the next step:
- If saved credentials exist in the registry → auto-login path (skip to
MainScreen) - If no saved credentials → show
OnboardingScreen
The timer starts in
init() immediately when the component is created. The splash is always shown for the full 1500ms regardless of how fast downstream tasks complete.