diff --git a/components/home/Home.xml b/components/home/Home.xml
index 6ebb6fa3..e2222d8b 100644
--- a/components/home/Home.xml
+++ b/components/home/Home.xml
@@ -7,6 +7,7 @@
+
diff --git a/components/home/HomeRows.brs b/components/home/HomeRows.brs
index b19e8132..ec670d25 100644
--- a/components/home/HomeRows.brs
+++ b/components/home/HomeRows.brs
@@ -306,7 +306,17 @@ function itemSelected()
end function
function onKeyEvent(key as string, press as boolean) as boolean
- return false
+ handled = false
+ if press then
+ if key = "play" then
+ itemToPlay = m.top.content.getChild(m.top.rowItemFocused[0]).getChild(m.top.rowItemFocused[1])
+ if itemToPlay <> invalid and (itemToPlay.type = "Movie" or itemToPlay.type = "Episode") then
+ m.top.quickPlayNode = itemToPlay
+ end if
+ handled = true
+ end if
+ end if
+ return handled
end function
function filterNodeArray(nodeArray as object, nodeKey as string, excludeArray as object) as object
diff --git a/components/home/HomeRows.xml b/components/home/HomeRows.xml
index 7bbf565f..8b7f1ddc 100644
--- a/components/home/HomeRows.xml
+++ b/components/home/HomeRows.xml
@@ -3,6 +3,7 @@
+
diff --git a/source/Main.brs b/source/Main.brs
index 1abba700..6bd3cda3 100644
--- a/source/Main.brs
+++ b/source/Main.brs
@@ -80,6 +80,24 @@ sub Main()
else
group.setFocus(true)
end if
+ else if isNodeEvent(msg, "quickPlayNode")
+ reportingNode = msg.getRoSGNode()
+ itemNode = reportingNode.quickPlayNode
+ if itemNode = invalid or itemNode.id = "" then return
+ if itemNode.type = "Episode" or itemNode.type = "Movie" or itemNode.type = "Video" then
+ video = CreateVideoPlayerGroup(itemNode.id)
+ if video <> invalid then
+ group.lastFocus = group.focusedChild
+ group.setFocus(false)
+ group.visible = false
+ group = video
+ m.scene.appendChild(group)
+ group.setFocus(true)
+ group.control = "play"
+ ReportPlayback(group, "start")
+ m.overhang.visible = false
+ end if
+ end if
else if isNodeEvent(msg, "selectedItem")
' If you select a library from ANYWHERE, follow this flow
selectedItem = msg.getData()
diff --git a/source/ShowScenes.brs b/source/ShowScenes.brs
index a57af2d5..11ff08dc 100644
--- a/source/ShowScenes.brs
+++ b/source/ShowScenes.brs
@@ -159,6 +159,7 @@ function CreateHomeGroup()
group = CreateObject("roSGNode", "Home")
group.observeField("selectedItem", m.port)
+ group.observeField("quickPlayNode", m.port)
sidepanel = group.findNode("options")
sidepanel.observeField("closeSidePanel", m.port)