Skip to main content
The OnboardingScreen is shown when GlobalTV has no saved credentials in the registry. It introduces the app to new users and provides a clear path to the login flow.

When it appears

After the splash screen completes, MainScene checks the Roku registry for saved credentials using RegistryManager. If no valid username/password pair is found, OnboardingScreen is displayed instead of proceeding directly to auto-login.
If credentials are found in the registry, the app skips this screen entirely and attempts auto-login directly.

Layout and elements

The screen has a dark background (0x0F1020FF) and centers its content in the safe area. All positions are calculated at runtime by ApplyResponsiveLayout() using the layout context from GTV_GetLayoutContext().
ElementNode IDDescription
Brand logologoGlobalTV logo, centered horizontally
TitlelblTitle”Bienvenido a GlobalTV IPTV”
SubtitlelblSubtitle”Necesitas una cuenta activa para acceder”
Login buttonbtnLoginBg + btnLoginLabelPrimary action, blue (0x2D57C1FF) when focused
Info buttonbtnInfoBg + btnInfoLabelSecondary action, reveals support URL
Support URLlblSupportUrlHidden by default, toggled by the info button
The screen handles two buttons navigated with Up/Down. Focus state is tracked with m.focusIndex:
' components/OnboardingScreen/OnboardingScreen.brs
m.OB_BTN_LOGIN = 0
m.OB_BTN_INFO  = 1
m.focusIndex = m.OB_BTN_LOGIN
Focused and unfocused colors are applied via UpdateFocus():
if m.focusIndex = m.OB_BTN_LOGIN
    loginBg.color  = "0x2D57C1FF"
    infoBg.color   = "0x1A2A4AFF"
    loginLbl.color = "0xFFFFFFFF"
    infoLbl.color  = "0x9E9E9EFF"
else
    loginBg.color  = "0x1A2A4AFF"
    infoBg.color   = "0x2D57C1FF"
    loginLbl.color = "0x9E9E9EFF"
    infoLbl.color  = "0xFFFFFFFF"
end if

Key actions

1

User presses OK on Login button

Sets m.top.goToLogin = true. MainScene observes this field and transitions to LoginScreen.
2

User presses OK on Info button

Calls ToggleInfoUrl(), which toggles the lblSupportUrl label between visible and hidden. The support contact shown is https://globalfiber.com.pe/contactanos.
3

User presses Back

Increments m.top.requestExit. MainScene observes this and handles the exit request.

Interface fields

<!-- components/OnboardingScreen/OnboardingScreen.xml -->
<field id="goToLogin"    type="boolean" value="false" />
<field id="requestExit"  type="integer" value="0" />
goToLogin is a boolean trigger — MainScene observes it and opens LoginScreen when it becomes true. requestExit is an integer counter so it can be observed on repeated Back presses.

Build docs developers (and LLMs) love