Dispatcher: Allow toggling USBMS (#11123)

It's right next to actual exit/restart actions, so it'll never ask for confirmation.
reviewable/pr11148/r1
NiLuJe 6 months ago committed by GitHub
parent bba48fc1bf
commit bf03f40ef2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -328,6 +328,14 @@ function DeviceListener:onToggleKeyRepeat(toggle)
Device:toggleKeyRepeat(G_reader_settings:nilOrFalse("input_no_key_repeat")) Device:toggleKeyRepeat(G_reader_settings:nilOrFalse("input_no_key_repeat"))
end end
function DeviceListener:onRequestUSBMS()
local MassStorage = require("ui/elements/mass_storage")
-- It already takes care of the canToggleMassStorage cap check for us
-- NOTE: Never request confirmation, it's sorted right next to exit, restart & friends in Dispatcher,
-- and they don't either...
MassStorage:start(false)
end
function DeviceListener:onRestart() function DeviceListener:onRestart()
self.ui.menu:exitOrRestart(function() UIManager:restartKOReader() end) self.ui.menu:exitOrRestart(function() UIManager:restartKOReader() end)
end end

@ -66,6 +66,7 @@ local settingsList = {
-- Device -- Device
exit_screensaver = {category="none", event="ExitScreensaver", title=_("Exit screensaver"), device=true}, exit_screensaver = {category="none", event="ExitScreensaver", title=_("Exit screensaver"), device=true},
start_usbms = {category="none", event="RequestUSBMS", title=_("Start USB storage"), device=true, condition=Device:canToggleMassStorage()},
suspend = {category="none", event="RequestSuspend", title=_("Suspend"), device=true, condition=Device:canSuspend()}, suspend = {category="none", event="RequestSuspend", title=_("Suspend"), device=true, condition=Device:canSuspend()},
restart = {category="none", event="Restart", title=_("Restart KOReader"), device=true, condition=Device:canRestart()}, restart = {category="none", event="Restart", title=_("Restart KOReader"), device=true, condition=Device:canRestart()},
reboot = {category="none", event="RequestReboot", title=_("Reboot the device"), device=true, condition=Device:canReboot()}, reboot = {category="none", event="RequestReboot", title=_("Reboot the device"), device=true, condition=Device:canReboot()},
@ -281,6 +282,7 @@ local dispatcher_menu_order = {
-- Device -- Device
"exit_screensaver", "exit_screensaver",
"start_usbms",
"suspend", "suspend",
"restart", "restart",
"reboot", "reboot",

@ -43,18 +43,25 @@ function MassStorage:getActionsMenuTable()
text = _("Start USB storage"), text = _("Start USB storage"),
enabled_func = function() return self:isEnabled() end, enabled_func = function() return self:isEnabled() end,
callback = function() callback = function()
self:start(true) self:start(false)
end, end,
} }
end end
-- exit KOReader and start mass storage mode. -- exit KOReader and start mass storage mode.
function MassStorage:start(never_ask) function MassStorage:start(with_confirmation)
if not Device:canToggleMassStorage() or not self:isEnabled() then if not Device:canToggleMassStorage() or not self:isEnabled() then
return return
end end
if not never_ask and self:requireConfirmation() then local ask
if with_confirmation ~= nil then
ask = with_confirmation
else
ask = self:requireConfirmation()
end
if ask then
local ConfirmBox = require("ui/widget/confirmbox") local ConfirmBox = require("ui/widget/confirmbox")
self.usbms_widget = ConfirmBox:new{ self.usbms_widget = ConfirmBox:new{
text = _("Share storage via USB?"), text = _("Share storage via USB?"),

Loading…
Cancel
Save