26 Commits

Author SHA1 Message Date
hius07
99c7d00b58 ReadTimer + Profiles auto-exec (#14309) 2025-09-14 09:32:06 +02:00
hius07
a45e9a40f4 ReadTimer: use previous scheduled instance (#14280)
Closes #14275
2025-09-10 08:30:20 +02:00
Volterxien
de789615ac Add the ability to launch read timer with a gesture (#14061)
Closes #14014.
2025-07-18 12:12:41 +02:00
Frans de Jonge
cbe211190f [plugin] ReadTimer: interpret the past as a time tomorrow (#12985)
Fixes #12984.
2025-01-05 17:04:10 +01:00
NiLuJe
5fc5386e87 ReadTimer: Don't blindly repaint the footer in update_status_bars
Send a dedicated event that will let ReaderFooter check if we actually have anything relevant to display, and will do the usual "should I repaint/refresh" checks ;).

Fix #12323
Regression since #12002
2024-08-28 23:53:38 +02:00
zwim
f6f8b38cac [plugin] Reader footer: check if header resp. footer are available (#12264) 2024-08-03 16:38:56 +02:00
zwim
df48d51eca AltStatusBar/Footer: add the read timer value (#12002)
Closes #11950
2024-07-19 22:55:31 +02:00
greatyingzi
a6f0c3a31c ReadTimer: allow repeat when time is up (#9844) 2022-12-11 09:51:16 +01:00
zwim
192a243b4d Add datetime.lua
Move date and time related functions from util.lua
(and the statistics plugin) to a new datetime.lua.
2022-12-06 17:36:08 +01:00
zwim
4969811c08 Optimization: Use constant folding for divisions not a power of two (#9609) 2022-10-10 22:21:27 +02:00
NiLuJe
fadee1f5dc Clarify our OOP semantics across the codebase (#9586)
Basically:

* Use `extend` for class definitions
* Use `new` for object instantiations

That includes some minor code cleanups along the way:

* Updated `Widget`'s docs to make the semantics clearer.
* Removed `should_restrict_JIT` (it's been dead code since https://github.com/koreader/android-luajit-launcher/pull/283)
* Minor refactoring of LuaSettings/LuaData/LuaDefaults/DocSettings to behave (mostly, they are instantiated via `open` instead of `new`) like everything else and handle inheritance properly (i.e., DocSettings is now a proper LuaSettings subclass).
* Default to `WidgetContainer` instead of `InputContainer` for stuff that doesn't actually setup key/gesture events.
* Ditto for explicit `*Listener` only classes, make sure they're based on `EventListener` instead of something uselessly fancier.
* Unless absolutely necessary, do not store references in class objects, ever; only values. Instead, always store references in instances, to avoid both sneaky inheritance issues, and sneaky GC pinning of stale references.
  * ReaderUI: Fix one such issue with its `active_widgets` array, with critical implications, as it essentially pinned *all* of ReaderUI's modules, including their reference to the `Document` instance (i.e., that was a big-ass leak).
* Terminal: Make sure the shell is killed on plugin teardown.
* InputText: Fix Home/End/Del physical keys to behave sensibly.
* InputContainer/WidgetContainer: If necessary, compute self.dimen at paintTo time (previously, only InputContainers did, which might have had something to do with random widgets unconcerned about input using it as a baseclass instead of WidgetContainer...).
* OverlapGroup: Compute self.dimen at *init* time, because for some reason it needs to do that, but do it directly in OverlapGroup instead of going through a weird WidgetContainer method that it was the sole user of.
* ReaderCropping: Under no circumstances should a Document instance member (here, self.bbox) risk being `nil`ed!
* Kobo: Minor code cleanups.
2022-10-06 02:14:48 +02:00
zwim
13274d6212 datetimewidget: simpler usage, allows 2 to 6 numberpickers for date and time (#9070) 2022-05-23 20:32:59 +02:00
zwim
9ed22df03f DateTimeWidget: replaces DateWidget and TimeWidget (#8240)
Deduplicate code by combining DateWidget and TimeWidget.
ReadTimer plugin: some rewording.
2021-09-25 19:59:45 +02:00
NiLuJe
1c739f1d54 ReadTimer: More QoL tweaks (#8107)
* Cleanup util.secondsFrom*Clock stuff (simpler maths, tail calls, meaningful printf tokens).
* Use util.secondsToClockDuration in ReadTimer instead of reinventing the wheel three different ways.
* Reschedule unexpired timers properly on resume (as best as we can, given the unreliable nature of REALTIME).
* Make clock timers tick on the dot, instead of at the same second as when being set.
* Speaking of clock timers, leave the math to os.date & os.time, don't reinvent the wheel yet again.
2021-08-22 00:34:09 +02:00
NiLuJe
056c03a262 ReadTimer: Small QoL fixes
* Never show negative relative time values.
* Make sure the alarm fires on resume if it expired during suspend.

Fix #8031
2021-08-19 22:40:04 +02:00
Robert
48f20b2153 [i18n, plugins] ReadTimer - better plural forms (#5315)
See: https://github.com/koreader/koreader/pull/3420#pullrequestreview-71776459
2019-09-04 15:36:13 +02:00
poire-z
850be52177 Keep some menus open when Tap or Hold (#4189)
TouchMenu: added options to menu items with the following defaults:
    keep_menu_open = false
    hold_keep_menu_open = true
So, default for Tap callback is to close menu, and for Hold callback
to keep menu open.
In both cases, provide the TouchMenu instance as the 1st argument to
the callback functions (instead of a refresh_menu_func I added in #3941)
so the callback can do more things, like closing, refreshing,
changing menu items text and re-ordering...

ReaderZooming: show symbol for default (like it was done for
ReaderFont, ReaderHyphenation...)
TextEditor plugin: update the previously opened files list in real
time, so the menu can be kept open and used as the TextEditor main
interface.
SSH plugin: keep menu open and update the Start/Stop state in real time
ReadTimer plugin: tried to do what feels right (but I don't use it)

Also remove forgotten cp in the move/paste file code
2018-09-04 23:55:58 +02:00
Robert
5344e0b672 [Fix] Don't load disabled plugins (#4169) 2018-08-18 20:41:37 +02:00
Robert
4428ecb422 Plugin manager (#4159)
Also adds descriptions to all plugins.
2018-08-17 20:54:11 +02:00
Robert
6fbb4e4ff4 [feat] Add default to the last value used in ReadTimer (#3963) 2018-05-19 23:29:16 +02:00
Robert
e1019baf46 separate strings for singular and plural (#3420) 2017-10-24 16:30:25 +00:00
Robert
ddf700043d [ReadTimer] Time from now (#3311) 2017-10-07 16:19:40 +02:00
Robert
f45188fb9d Time reader with normal time format v2 (#3279) 2017-10-01 18:15:59 +02:00
Robert
019513f785 Prevent crash Timer in Filemanager (#3237) 2017-09-18 19:53:06 +02:00
Frans de Jonge
b4167672fd Read timer: various improvements
* no timeout on alarm
* autoclose menu when starting timer
* show time in menu when active
2017-08-05 21:49:41 +02:00
Hzj_jie
0318a048b4 Read timer plugin (#2672)
A countdown timer to notify user.
2017-03-26 21:42:58 -07:00