enable Wikipedia support

Since wikipedia server is language specific we should first detect
language of the text by querying Google Translate. Make sure you have
access to both Google Translate and Wikipedia service to use this
function.
This commit is contained in:
chrox
2014-08-20 14:41:45 +08:00
parent 56fa8a45b7
commit 7b10d66e1b
7 changed files with 301 additions and 42 deletions

View File

@@ -294,8 +294,7 @@ function ReaderHighlight:onHoldRelease()
text = _("Highlight"),
callback = function()
self:saveHighlight()
UIManager:close(self.highlight_dialog)
self:handleEvent(Event:new("Tap"))
self:onClose()
end,
},
{
@@ -303,39 +302,44 @@ function ReaderHighlight:onHoldRelease()
enabled = false,
callback = function()
self:addNote()
UIManager:close(self.highlight_dialog)
self:handleEvent(Event:new("Tap"))
self:onClose()
end,
},
},
{
{
text = _("Wikipedia"),
callback = function()
UIManager:scheduleIn(0.1, function()
self:lookupWikipedia()
self:onClose()
end)
end,
},
{
text = _("Translate"),
enabled = false,
callback = function()
self:translate(self.selected_text)
UIManager:close(self.highlight_dialog)
self:handleEvent(Event:new("Tap"))
end,
},
{
text = _("Share"),
enabled = false,
callback = function()
self:shareHighlight()
UIManager:close(self.highlight_dialog)
self:handleEvent(Event:new("Tap"))
self:onClose()
end,
},
},
{
{
text = _("Share"),
enabled = false,
callback = function()
self:shareHighlight()
self:onClose()
end,
},
{
text = _("More"),
enabled = false,
callback = function()
self:moreAction()
UIManager:close(self.highlight_dialog)
self:handleEvent(Event:new("Tap"))
self:onClose()
end,
},
},
@@ -411,6 +415,12 @@ function ReaderHighlight:addNote()
DEBUG("add Note")
end
function ReaderHighlight:lookupWikipedia()
if self.selected_text then
self.ui:handleEvent(Event:new("LookupWikipedia", self.selected_text.text))
end
end
function ReaderHighlight:shareHighlight()
DEBUG("share highlight")
end
@@ -436,4 +446,10 @@ function ReaderHighlight:onSaveSettings()
self.ui.doc_settings:saveSetting("highlight_drawer", self.view.highlight.saved_drawer)
end
function ReaderHighlight:onClose()
UIManager:close(self.highlight_dialog)
-- clear highlighted text
self:handleEvent(Event:new("Tap"))
end
return ReaderHighlight