From a8b39c17ed83ee3aebfe4ebf658077bb27392463 Mon Sep 17 00:00:00 2001 From: hius07 <62179190+hius07@users.noreply.github.com> Date: Tue, 17 Aug 2021 16:22:31 +0300 Subject: [PATCH] ReaderDeviceStatus: show only one alert (#8086) --- .../reader/modules/readerdevicestatus.lua | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/frontend/apps/reader/modules/readerdevicestatus.lua b/frontend/apps/reader/modules/readerdevicestatus.lua index 4910645bc..11a5a8d93 100644 --- a/frontend/apps/reader/modules/readerdevicestatus.lua +++ b/frontend/apps/reader/modules/readerdevicestatus.lua @@ -11,6 +11,8 @@ local _ = require("gettext") local T = require("ffi/util").template local ReaderDeviceStatus = InputContainer:new{ +battery_confirm_box = nil, +memory_confirm_box = nil, } function ReaderDeviceStatus:init() @@ -27,24 +29,21 @@ function ReaderDeviceStatus:init() powerd:setDismissBatteryStatus(false) end else - if is_charging and battery_capacity > self.battery_threshold_high then - UIManager:show(ConfirmBox:new { - text = T(_("High battery level: %1%\n\nDismiss battery level alert?"), battery_capacity), - ok_text = _("Dismiss"), - dismissable = false, - ok_callback = function() - powerd:setDismissBatteryStatus(true) - end, - }) - elseif not is_charging and battery_capacity <= self.battery_threshold then - UIManager:show(ConfirmBox:new { - text = T(_("Low battery level: %1%\n\nDismiss battery level alert?"), battery_capacity), + if (is_charging and battery_capacity > self.battery_threshold_high) or + (not is_charging and battery_capacity <= self.battery_threshold) then + if self.battery_confirm_box then + UIManager:close(self.battery_confirm_box) + end + self.battery_confirm_box = ConfirmBox:new { + text = is_charging and T(_("High battery level: %1%\n\nDismiss battery level alert?"), battery_capacity) + or T(_("Low battery level: %1%\n\nDismiss battery level alert?"), battery_capacity), ok_text = _("Dismiss"), dismissable = false, ok_callback = function() powerd:setDismissBatteryStatus(true) end, - }) + } + UIManager:show(self.battery_confirm_box) end end UIManager:scheduleIn(self.battery_interval * 60, self.checkLowBatteryLevel) @@ -62,6 +61,9 @@ function ReaderDeviceStatus:init() statm:close() rss = math.floor(rss * 4096 / 1024 / 1024) if rss >= self.memory_threshold then + if self.memory_confirm_box then + UIManager:close(self.memory_confirm_box) + end if Device:canRestart() then if UIManager:getTopWidget() == "ReaderUI" and G_reader_settings:isTrue("device_status_memory_auto_restart") then @@ -73,7 +75,7 @@ function ReaderDeviceStatus:init() self.ui:handleEvent(Event:new("Restart")) end) else - UIManager:show(ConfirmBox:new { + self.memory_confirm_box = ConfirmBox:new { text = T(_("High memory usage: %1 MB\n\nRestart KOReader?"), rss), ok_text = _("Restart"), dismissable = false, @@ -86,17 +88,19 @@ function ReaderDeviceStatus:init() self.ui:handleEvent(Event:new("Restart")) end) end, - }) + } + UIManager:show(self.memory_confirm_box) end else - UIManager:show(ConfirmBox:new { + self.memory_confirm_box = ConfirmBox:new { text = T(_("High memory usage: %1 MB\n\nExit KOReader?"), rss), ok_text = _("Exit"), dismissable = false, ok_callback = function() self.ui:handleEvent(Event:new("Exit")) end, - }) + } + UIManager:show(self.memory_confirm_box) end end end