1
1
import "pkg:/source/enums/ColorPalette.bs"
2
+ import "pkg:/source/enums/KeyCode.bs"
2
3
import "pkg:/source/enums/TaskControl.bs"
3
4
import "pkg:/source/utils/misc.bs"
4
5
@@ -11,6 +12,8 @@ sub init()
11
12
m .scheduleGrid = m .top .findNode ("scheduleGrid" )
12
13
m .detailsPane = m .top .findNode ("detailsPane" )
13
14
15
+ m .scheduleGrid .isLoaded = false
16
+
14
17
m .gridData = createObject ("roSGNode " , "ContentNode" )
15
18
m .scheduleGrid .content = m .gridData
16
19
@@ -69,6 +72,7 @@ sub channelFilterSet()
69
72
m .LoadChannelsTask .filter = m .top .filter
70
73
m .gridData .removeChildren (m .gridData .getChildren (- 1 , 0 ))
71
74
m .loadedChannelCount = 0
75
+ m .scheduleGrid .isLoaded = false
72
76
loadChannels (m .channelFirstLoadLimit )
73
77
end if
74
78
@@ -91,6 +95,7 @@ sub channelsearchTermSet()
91
95
startLoadingSpinner ()
92
96
m .gridData .removeChildren (m .gridData .getChildren (- 1 , 0 ))
93
97
m .loadedChannelCount = 0
98
+ m .scheduleGrid .isLoaded = false
94
99
loadChannels (m .channelFirstLoadLimit )
95
100
end sub
96
101
@@ -116,6 +121,7 @@ sub onChannelsLoaded()
116
121
m .top .signalBeacon ("EPGLaunchComplete" ) ' Required Roku Performance monitoring
117
122
m .EPGLaunchCompleteSignaled = true
118
123
end if
124
+
119
125
m .LoadChannelsTask .channels = []
120
126
end sub
121
127
@@ -159,6 +165,8 @@ sub onScheduleLoaded()
159
165
m .loadedChannelCount += m .LoadChannelsTask .limit
160
166
if m .LoadChannelsTask .totalRecordCount > m .loadedChannelCount
161
167
loadChannels (m .channelLaterLoadLimit )
168
+ else
169
+ m .scheduleGrid .isLoaded = true
162
170
end if
163
171
end sub
164
172
@@ -328,14 +336,16 @@ function onKeyEvent(key as string, press as boolean) as boolean
328
336
detailsGrp = m .top .findNode ("detailsPane" )
329
337
gridGrp = m .top .findNode ("scheduleGrid" )
330
338
331
- if key = "back" and detailsGrp .isInFocusChain ()
332
- focusProgramDetails (false )
333
- detailsGrp .setFocus (false )
334
- gridGrp .setFocus (true )
335
- group = m .global .sceneManager .callFunc ("getActiveScene" )
336
- group .lastFocus = gridGrp
337
- return true
338
- else if key = "back"
339
+ if isStringEqual (key , KeyCode .BACK )
340
+ if detailsGrp .isInFocusChain ()
341
+ focusProgramDetails (false )
342
+ detailsGrp .setFocus (false )
343
+ gridGrp .setFocus (true )
344
+ group = m .global .sceneManager .callFunc ("getActiveScene" )
345
+ group .lastFocus = gridGrp
346
+ return true
347
+ end if
348
+
339
349
m .state = TaskControl .STOP
340
350
341
351
m .LoadChannelsTask .control = TaskControl .STOP
0 commit comments