mirror of
https://github.com/koreader/koreader
synced 2024-11-18 03:25:46 +00:00
127 lines
4.7 KiB
Lua
127 lines
4.7 KiB
Lua
local BD = require("ui/bidi")
|
|
local ConfirmBox = require("ui/widget/confirmbox")
|
|
local Device = require("device")
|
|
local Event = require("ui/event")
|
|
local InfoMessage = require("ui/widget/infomessage")
|
|
local Notification = require("ui/widget/notification")
|
|
local UIManager = require("ui/uimanager")
|
|
local Version = require("version")
|
|
local dbg = require("dbg")
|
|
local lfs = require("libs/libkoreader-lfs")
|
|
local _ = require("gettext")
|
|
local T = require("ffi/util").template
|
|
|
|
local common_info = {}
|
|
|
|
-- tools tab
|
|
common_info.more_tools = {
|
|
text = _("More tools"),
|
|
}
|
|
|
|
-- main tab
|
|
if Device:hasOTAUpdates() then
|
|
local OTAManager = require("ui/otamanager")
|
|
common_info.ota_update = OTAManager:getOTAMenuTable()
|
|
end
|
|
|
|
common_info.help = {
|
|
text = _("Help"),
|
|
}
|
|
common_info.quickstart_guide = {
|
|
text = _("Quickstart guide"),
|
|
callback = function()
|
|
local QuickStart = require("ui/quickstart")
|
|
local ReaderUI = require("apps/reader/readerui")
|
|
ReaderUI:showReader(QuickStart:getQuickStart())
|
|
end
|
|
}
|
|
common_info.search_menu = {
|
|
text = _("Menu search"),
|
|
callback = function()
|
|
UIManager:sendEvent(Event:new("ShowMenuSearch"))
|
|
end,
|
|
keep_menu_open = true,
|
|
}
|
|
common_info.report_bug = {
|
|
text_func = function()
|
|
local label = _("Report a bug")
|
|
if G_reader_settings:isTrue("debug_verbose") then
|
|
label = label .. " " .. _("(verbose logging is enabled)")
|
|
end
|
|
return label
|
|
end,
|
|
keep_menu_open = true,
|
|
callback = function(touchmenu_instance)
|
|
local DataStorage = require("datastorage")
|
|
local log_path = string.format("%s/%s", DataStorage:getDataDir(), "crash.log")
|
|
local common_msg = T(_("Please report bugs to \nhttps://github.com/koreader/koreader/issues\n\nVersion:\n%1\n\nDetected device:\n%2"),
|
|
Version:getCurrentRevision(), Device:info())
|
|
local log_msg = T(_("Verbose logs will make our investigations easier. If possible, try to reproduce the issue while it's enabled, and attach %1 to your bug report."), log_path)
|
|
|
|
if Device:isAndroid() then
|
|
local android = require("android")
|
|
android.dumpLogs()
|
|
end
|
|
|
|
local msg
|
|
if lfs.attributes(log_path, "mode") == "file" then
|
|
msg = string.format("%s\n\n%s", common_msg, log_msg)
|
|
else
|
|
msg = common_msg
|
|
end
|
|
UIManager:show(ConfirmBox:new{
|
|
text = msg,
|
|
icon = "notice-info",
|
|
no_ok_button = true,
|
|
other_buttons_first = true,
|
|
other_buttons = {{
|
|
{
|
|
text = G_reader_settings:isTrue("debug_verbose") and _("Disable verbose logging") or _("Enable verbose logging"),
|
|
callback = function()
|
|
-- Flip verbose logging on dismissal
|
|
-- Unlike in the dev options, we flip everything at once.
|
|
if G_reader_settings:isTrue("debug_verbose") then
|
|
dbg:setVerbose(false)
|
|
dbg:turnOff()
|
|
G_reader_settings:makeFalse("debug_verbose")
|
|
G_reader_settings:makeFalse("debug")
|
|
Notification:notify(_("Verbose logging disabled"), Notification.SOURCE_ALWAYS_SHOW)
|
|
else
|
|
dbg:turnOn()
|
|
dbg:setVerbose(true)
|
|
G_reader_settings:makeTrue("debug")
|
|
G_reader_settings:makeTrue("debug_verbose")
|
|
Notification:notify(_("Verbose logging enabled"), Notification.SOURCE_ALWAYS_SHOW)
|
|
end
|
|
touchmenu_instance:updateItems()
|
|
-- Also unlike the dev options, explicitly ask for a restart,
|
|
-- to make sure framebuffer pulls in a logger.dbg ref that doesn't point to noop on init ;).
|
|
UIManager:askForRestart()
|
|
end,
|
|
}
|
|
}},
|
|
})
|
|
end
|
|
}
|
|
common_info.version = {
|
|
text = T(_("Version: %1"), Version:getShortVersion()),
|
|
keep_menu_open = true,
|
|
callback = function()
|
|
UIManager:show(InfoMessage:new{
|
|
text = Version:getCurrentRevision(),
|
|
})
|
|
end
|
|
}
|
|
common_info.about = {
|
|
text = _("About"),
|
|
keep_menu_open = true,
|
|
callback = function()
|
|
UIManager:show(InfoMessage:new{
|
|
text = T(_("KOReader %1\n\nA document viewer for E Ink devices.\n\nLicensed under Affero GPL v3. All dependencies are free software.\n\nhttp://koreader.rocks"), BD.ltr(Version:getCurrentRevision())),
|
|
icon = "koreader",
|
|
})
|
|
end
|
|
}
|
|
|
|
return common_info
|