mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
ReaderFooter: Don't duplicate a 12h clock time format option (#6973)
* ReaderFooter: * Honor the global twelve_hour_clock setting, instead of duplicating a local one. (Re #6969) * os.date is a thin wrapper around strftime, so we might be able to get away with some not-quite-standard extensions... These are *definitely* supported on Linux, but are *NOT* the glibc extension (that'd be e.g., %-I), so, hopefully, they're somewhat portable... They are also supported on BSD/macOS. They are *not* supported by the MS UCRT. That means MinGW-w64, too. This *appears* to be supported on current Bionic (it might even support said glibc format altering extensions). * And of course, Windows is terrible, so, make this terribly ugly to not break it there... * Turns out BSD also supports the dash trim format extension, so, leave the trimming to the libc, and handle the special-casing in a way that doesn't create stupid locals. * Random unrelated cleanup ^^. (https://gitter.im/koreader/koreader?at=5fd24be492aa1c4ef5d11f31) * Update the testsuite (Because the default used to be 24h clock). Changed the default to 24h clock ;p. * Explain why we don't try to fix it in Lua
This commit is contained in:
@@ -177,7 +177,7 @@ local footerTextGeneratorMap = {
|
||||
time = function(footer)
|
||||
local symbol_type = footer.settings.item_prefix or "icons"
|
||||
local prefix = symbol_prefix[symbol_type].time
|
||||
local clock = util.secondsToHour(os.time(), footer.settings.time_format == "12")
|
||||
local clock = util.secondsToHour(os.time(), G_reader_settings:isTrue("twelve_hour_clock"))
|
||||
if not prefix then
|
||||
return clock
|
||||
else
|
||||
@@ -1287,43 +1287,6 @@ function ReaderFooter:addToMainMenu(menu_items)
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
text = _("Time format"),
|
||||
sub_item_table = {
|
||||
{
|
||||
text_func = function()
|
||||
local footer = {}
|
||||
footer.settings = {}
|
||||
footer.settings.time_format = "24"
|
||||
footer.settings.item_prefix = self.settings.item_prefix or "icons"
|
||||
return T(_("24-hour (%1)"),footerTextGeneratorMap.time(footer))
|
||||
end,
|
||||
checked_func = function()
|
||||
return self.settings.time_format == "24" or self.settings.time_format == nil
|
||||
end,
|
||||
callback = function()
|
||||
self.settings.time_format = "24"
|
||||
self:refreshFooter(true)
|
||||
end,
|
||||
},
|
||||
{
|
||||
text_func = function()
|
||||
local footer = {}
|
||||
footer.settings = {}
|
||||
footer.settings.time_format = "12"
|
||||
footer.settings.item_prefix = self.settings.item_prefix or "icons"
|
||||
return T(_("12-hour (%1)"),footerTextGeneratorMap.time(footer))
|
||||
end,
|
||||
checked_func = function()
|
||||
return self.settings.time_format == "12"
|
||||
end,
|
||||
callback = function()
|
||||
self.settings.time_format = "12"
|
||||
self:refreshFooter(true)
|
||||
end,
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
text = _("Duration format"),
|
||||
sub_item_table = {
|
||||
|
||||
@@ -37,7 +37,7 @@ local function buildEntry(input_time, input_file)
|
||||
-- we fallback to it no sidecar file)
|
||||
last_read_ts = DocSettings:getLastSaveTime(file_path) or input_time
|
||||
end
|
||||
return util.secondsToDate(last_read_ts, G_reader_settings:nilOrTrue("twelve_hour_clock"))
|
||||
return util.secondsToDate(last_read_ts, G_reader_settings:isTrue("twelve_hour_clock"))
|
||||
end,
|
||||
callback = function()
|
||||
local ReaderUI = require("apps/reader/readerui")
|
||||
|
||||
@@ -77,10 +77,10 @@ common_settings.time = {
|
||||
text = _("12-hour clock"),
|
||||
keep_menu_open = true,
|
||||
checked_func = function()
|
||||
return G_reader_settings:nilOrTrue("twelve_hour_clock")
|
||||
return G_reader_settings:isTrue("twelve_hour_clock")
|
||||
end,
|
||||
callback = function()
|
||||
G_reader_settings:flipNilOrTrue("twelve_hour_clock")
|
||||
G_reader_settings:flipNilOrFalse("twelve_hour_clock")
|
||||
end,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -640,7 +640,7 @@ function TouchMenu:updateItems()
|
||||
self.page_info_left_chev:enableDisable(self.page > 1)
|
||||
self.page_info_right_chev:enableDisable(self.page < self.page_num)
|
||||
|
||||
local time_info_txt = util.secondsToHour(os.time(), G_reader_settings:nilOrTrue("twelve_hour_clock"))
|
||||
local time_info_txt = util.secondsToHour(os.time(), G_reader_settings:isTrue("twelve_hour_clock"))
|
||||
local powerd = Device:getPowerDevice()
|
||||
local batt_lvl = powerd:getCapacity()
|
||||
local batt_symbol
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
./apps/reader/modules/readerfooter.lua: UIManager.update_regions_func = function()
|
||||
./apps/reader/modules/readerhighlight.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/button.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/iconbutton.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/dictquicklookup.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/scrolltextwidget.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/touchmenu.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/touchmenu.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/virtualkeyboard.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/virtualkeyboard.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/virtualkeyboard.lua: UIManager.update_regions_func = nil
|
||||
./ui/widget/toggleswitch.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/configdialog.lua: UIManager.update_regions_func = function()
|
||||
./ui/widget/configdialog.lua: UIManager.update_regions_func = function()
|
||||
./ui/uimanager.lua: update_regions_func = nil,
|
||||
./ui/uimanager.lua: if self.update_regions_func then
|
||||
./ui/uimanager.lua: local update_regions = self.update_regions_func()
|
||||
./ui/uimanager.lua: for _, update_region in ipairs(update_regions) do
|
||||
./ui/uimanager.lua: self.update_regions_func = nil
|
||||
@@ -224,21 +224,40 @@ end
|
||||
---- @int seconds number of seconds
|
||||
---- @bool twelve_hour_clock
|
||||
---- @treturn string hour string
|
||||
function util.secondsToHour(seconds, twelve_hour_clock)
|
||||
local time
|
||||
if twelve_hour_clock then
|
||||
if os.date("%p", seconds) == "AM" then
|
||||
-- @translators This is the time in the morning in the 12-hour clock (%I is the hour, %M the minute).
|
||||
time = os.date(_("%I:%M AM"), seconds)
|
||||
--- @note: The MS CRT doesn't support either %l & %k, or the - format modifier (as they're not technically C99 or POSIX).
|
||||
--- They are otherwise supported on Linux, BSD & Bionic, so, just special-case Windows...
|
||||
--- We *could* arguably feed the os.date output to gsub("^0(%d)(.*)$", "%1%2"), but, while unlikely,
|
||||
--- it's conceivable that a translator would put something other that the hour at the front of the string ;).
|
||||
if jit.os == "Windows" then
|
||||
function util.secondsToHour(seconds, twelve_hour_clock)
|
||||
if twelve_hour_clock then
|
||||
if os.date("%p", seconds) == "AM" then
|
||||
-- @translators This is the time in the morning using a 12-hour clock (%I is the hour, %M the minute).
|
||||
return os.date(_("%I:%M AM"), seconds)
|
||||
else
|
||||
-- @translators This is the time in the afternoon using a 12-hour clock (%I is the hour, %M the minute).
|
||||
return os.date(_("%I:%M PM"), seconds)
|
||||
end
|
||||
else
|
||||
-- @translators This is the time in the afternoon in the 12-hour clock (%I is the hour, %M the minute).
|
||||
time = os.date(_("%I:%M PM"), seconds)
|
||||
-- @translators This is the time using a 24-hour clock (%H is the hour, %M the minute).
|
||||
return os.date(_("%H:%M"), seconds)
|
||||
end
|
||||
end
|
||||
else
|
||||
function util.secondsToHour(seconds, twelve_hour_clock)
|
||||
if twelve_hour_clock then
|
||||
if os.date("%p", seconds) == "AM" then
|
||||
-- @translators This is the time in the morning using a 12-hour clock (%-I is the hour, %M the minute).
|
||||
return os.date(_("%-I:%M AM"), seconds)
|
||||
else
|
||||
-- @translators This is the time in the afternoon using a 12-hour clock (%-I is the hour, %M the minute).
|
||||
return os.date(_("%-I:%M PM"), seconds)
|
||||
end
|
||||
else
|
||||
-- @translators This is the time using a 24-hour clock (%-H is the hour, %M the minute).
|
||||
return os.date(_("%-H:%M"), seconds)
|
||||
end
|
||||
else
|
||||
-- @translators This is the time in the 24-hour clock (%H is the hour, %M the minute).
|
||||
time = os.date(_("%H:%M"), seconds)
|
||||
end
|
||||
return time
|
||||
end
|
||||
|
||||
--- Converts timestamp to a date string
|
||||
|
||||
Reference in New Issue
Block a user