Commit Graph

2902 Commits

Author SHA1 Message Date
NiLuJe
eac20a441e Minor comment wording tweaks I'd missed in #9065 2022-05-23 14:44:10 +02:00
NiLuJe
31a2c3ef2b Fix a nasty race condition when trying to unschedule a tickAfterNext
task *before* the task actually makes it to the task queue

(Because that only happens on the next UI frame, in the current frame,
what's in the task queue is the anonymous wrapper function that passes
action to nextTick).
2022-05-23 14:43:07 +02:00
NiLuJe
855945a067 More tracing 2022-05-23 14:43:07 +02:00
NiLuJe
baa18d9285 Indent for visibity 2022-05-23 14:43:07 +02:00
NiLuJe
b31985a8ce Mire tracing... 2022-05-23 14:43:07 +02:00
NiLuJe
4765fd4fcf Simplify 2022-05-23 14:43:07 +02:00
NiLuJe
9541805f76 Handle debug guards properly... 2022-05-23 14:43:07 +02:00
NiLuJe
49e0737100 Better tracing... 2022-05-23 14:43:07 +02:00
NiLuJe
790474f754 Rewing far enough
(Debug guards are not helping... I'm... not a fan of what they do to
code flow, to be frank).
2022-05-23 14:43:07 +02:00
NiLuJe
8720a3c000 Trace tasks 2022-05-23 14:43:07 +02:00
NiLuJe
55493c8dd5 More comment tweaks 2022-05-23 14:43:07 +02:00
NiLuJe
a4b327e6e9 Simplify 2022-05-23 14:43:07 +02:00
NiLuJe
58777ff0d7 Yeah, no, reverse iter wouldn't work. 2022-05-23 14:43:07 +02:00
NiLuJe
ca54c7811c Tweak that comment, because it had a confusing historical context that
was not readily visible.
2022-05-23 14:43:07 +02:00
NiLuJe
12484b215d Remove confusing or, and rewrite comments 2022-05-23 14:43:07 +02:00
NiLuJe
4b4d158f32 Directly nil check the first element of an array instead of the array's
size when we're only concerned with this single element.
2022-05-23 14:43:07 +02:00
NiLuJe
8914b5e110 UIManager: Don't keep a ref to the next task in _checkTasks 2022-05-23 14:43:07 +02:00
yparitcher
8f316b1e8c Merge discardEvents & inhibitInput (#9065)
Rename `discardEvents` to `inhibitInputUntil`
only discard Input events
2022-05-23 13:52:52 +02:00
yparitcher
a97dbb05ed Page turn animations: add to dispatcher (#9123)
xref: https://www.mobileread.com/forums/showthread.php?p=4224443&postcount=1119
2022-05-23 09:19:47 +02:00
NiLuJe
60b043ebe9 ReaderFooter: Refresh the footer on frontlight state changes issued by the frontlight widget (#9084)
c.f, https://www.mobileread.com/forums/showpost.php?p=4220159&postcount=7
2022-05-09 08:36:13 +02:00
zwim
617bb896f9 OTAManager: Check for update -> immediately show hourglass (#9083) 2022-05-08 22:17:58 +02:00
Frans de Jonge
d09579586d [i18n] Enable more languages (#9082)
Croatian (hr)
Finnish
Lithuanian

Georgian (ka)
Hindi
Serbian

Follow-up to <https://github.com/koreader/koreader/pull/9079>.

Croatian is 46% done, the others mostly 10-20%.
2022-05-08 13:52:34 +02:00
Frans de Jonge
8da18d403b [i18n] Enable Latvian translation (#9079)
Cf. <https://github.com/koreader/koreader/issues/8225#issuecomment-1120181554>.
2022-05-07 18:36:06 +02:00
NiLuJe
2de2a8ab76 NetworkManager: Make sure we show an IM at the *start* of a Wi-Fi toggle action (#9064)
Ensures the worst-case scenario has minimal visual feedback.
2022-05-06 19:19:55 +02:00
Philip Chan
d6ff983243 Show TitleBar left and right buttons on non-touch devices (#9041)
Titlebar button navigation in menu, including ListMenu and MosaicMenu in FileManager, History, Favourites and Shortcuts.
Hide show password checkbox in non-touch devices
2022-05-06 10:44:25 +02:00
zwim
9b9cfe29a4 [feat] Replace TimeVal (RIP) with time, fixed point time seconds (#8999) 2022-05-05 21:00:22 +02:00
yparitcher
54ead5fc88 Page turn animations
Kindle PW5 (MTK) with hardware support
Currently only in Crengine
2022-05-05 10:48:16 -04:00
yparitcher
ca423f2887 Network: ToggleWiFi: check isWifiOn instead of isConnected (#9067)
Rationale from: https://github.com/koreader/koreader/pull/9064#issuecomment-1116485065

>While we are dealing with WiFi, a slight hijack, on my kindle when the WiFi is on but not connected the ToggleWiFi gesture tries to connect so i have no way of turning it off. For eample I use the gesture to turn it on, then leave the range I can't use it to turn off. I think the more direct approach would be to toggle On -> Off states so if i am disconnected and want to reconnect i can always go Off then On, but I am able to turn it off.

>TLDR: the tooglewifi gesture should check for iswififup not isconnected
2022-05-05 07:31:36 +02:00
NiLuJe
86c35ad066 A host of low power states related tweaks (#9036)
* Disable all non power management related input during suspend. (This prevents wonky touch events from being tripped when closing a sleep cover on an already-in-suspend device, among other things).
* Kobo: Use our WakeupMgr instance, not the class.
* WakupMgr: split `removeTask` in two: 
* `removeTask`, which *only* takes a queue index as input, and only removes a single task. Greatly simplifies the function (i.e., it's just a `table.remove`).
* `removeTasks`, which takes an epoch or a cb ref, and removes *every* task that matches.
* Both of these will also *always* re-schedule the next task (if any) on exit, since we can have multiple WakeupMgr tasks queued, but we can only have a single RTC wake alarm set ;).
* `wakeupAction` now takes a `proximity` argument, which it passes on to its `validateWakeupAlarmByProximity` call, allowing call sites to avoir having to duplicate that call themselves when they want to use a custom proximity window.
* `wakeupAction` now re-schedules the next task (if any) on exit.
* Simplify `Kobo:checkUnexpectedWakeup`, by removing the duplicate `WakerupMgr:validateWakeupAlarmByProximity` call, now that we can pass a proximity window to `WakeuoMgr:wakeupAction`.
* The various network activity timeouts are now halved when autostandby is enabled.
* Autostandby: get rid of the dummy deadline_guard task, as it's no longer necessary since #9009.
* UIManager: The previous change allows us to simplify `getNextTaskTimes` into a simpler `getNextTaskTime` variant, getting rid of a table & a loop.
* ReaderFooter & ReaderHeader: Make sure we only perform a single refresh when exiting standby.
* Kobo: Rewrite sysfs writes to use ANSI C via FFI instead of stdio via Lua, as it obscured some common error cases (e.g., EBUSY on /sys/power/state).
* Kobo: Simplify `suspend`, now that we have sane error handling in sysfs writes.
* Kobo.powerd: Change `isCharging` & `isAuxCharging` behavior to match the behavior of the NTX ioctl (i.e., Charging == Plugged-in). This has the added benefit of making the AutoSuspend checks behave sensibly in the "fully-charged but still plugged in" scenario (because being plugged in is enough to break PM on `!canPowerSaveWhileCharging` devices).
* AutoSuspend: Disable our `AllowStandby` handler when auto standby is disabled, so as to not interfere with other modules using `UIManager:allowStandby` (fix #9038).
* PowerD: Allow platforms to implement `isCharged`, indicating that the battery is full while still plugged in to a power source (battery icon becomes a power plug icon).
* Kobo.powerd: Implement `isCharged`, and kill charging LEDs once battery is full.
* Kindle.powerd: Implement `isCharged` on post-Wario devices. (`isCharging` is still true in that state, as it ought to).
2022-05-01 23:41:08 +02:00
NiLuJe
5ac9463c09 AutoSuspend: Unbreak cohabitation between standby & suspend (#9009)
* Make sure AutoStandby cohabitates nicely with AutoSuspend (regression since #8985), specifically:
* Disable standby during suspend.
* Ensure that leaving standby restores the scheduled suspend properly, with the appropriate remaining amount of time based on the last user input.
* Handle devices with an auxiliary battery better when scheduling suspend (assume it's only charging when the aux battery is charging, not the ereader's).
* Tweak debug logging to be able to remote debug corner-cases more easily without requiring code changes.
* Fix erroneous behavior when awoken from standby by something that doesn't trigger an InputEvent Event (e.g., rtc alarm, gyro, or random bullshit).
2022-04-22 18:59:48 +02:00
hius07
b4314acb2c translator: clear highlight on close if needed 2022-04-17 09:37:29 +02:00
hius07
428edf90bd textviewer: add close_callback 2022-04-17 09:37:29 +02:00
zwim
af1251d83e Manu: Fix menu entry, when no keyboards are activated (#9008) 2022-04-17 00:08:11 +02:00
Tesseract Cat
e38a82453a ImageViewer: allow browsing images list with keys (#8927) 2022-04-14 09:28:07 +02:00
Philip Chan
77accf6546 Non-touch: highlight movement improvement and enable page crop (#8947) 2022-04-14 08:59:36 +02:00
NiLuJe
bd17119d07 Kobo: Disable key repeat during suspend (#8987)
Might help avoiding evdev queue overflow on misbehaving covers (#8964).

At the very least shaves a fair bit of stupid from debug logs ;o).
2022-04-13 01:11:32 +02:00
poire-z
658991ed5e SpinWidgets: keep movable position/alpha after Apply
Since eda8379e8c, on Apply, the widget is fully rebuild,
and was repositionned at its initial position (centered)
and fully opaque.
2022-04-11 22:42:56 +02:00
poire-z
814f42cce0 UIManager:discardEvents(): use accurate "now"
Instead of UIManager possibly staled _now, which could have
no effect after a long ReaderRolling re-rendering.
Also lower the delay after such ReaderRolling re-rendering,
so we can change settings quicker when comparing renderings.
2022-04-11 22:42:56 +02:00
zwim
0808560532 getElapsedTimeSinceBoot: Honor times in suspend, too (#8983) 2022-04-11 00:20:48 +02:00
NiLuJe
61cafab0e5 AutoSuspend: Avoid unbalanced prevent/allow Suspend calls (#8970)
This prevents crashing interactions with other prevent/allow callers when the feature is disabled.
2022-04-10 19:25:37 +02:00
NiLuJe
930fa9ac1f Make sure InputText has a consistent API, regardless of hasDPad
Fix #8967
Regression since #8859
2022-04-05 02:07:53 +02:00
zwim
d820dd84d6 Readerview: fix checkAutoSaveSettings() with enabled standby (#8961) 2022-04-03 18:20:55 +02:00
NiLuJe
2aa310a931 ScreenSaver: Minor refactor to avoid code duplication and weird rotation shenanigans (#8943)
* Handle said rotation shenanigans inside ScreenSaver & ScreenSaverWidget, which allows a more targeted approach; and prevents said rotation from affecting other widgets. (Also, gets rid of duplicated code).
* Handle the corner-case or exiting early from a "keep on screen for n sec" screensaver better, by unscheduling the extra refresh, since an early tap took care of that already.
2022-04-02 18:21:40 +02:00
zwim
158f4be724 Autosuspend: add autostandby (#8815)
Allows the device to go into standby (if available in `/sys/power/state`) to save power.
Adds an entry in the device menu to tune the timeout for standby.
(Shows total standby- and suspend-time in system statistics.)
2022-03-29 22:59:10 +02:00
NiLuJe
23bce343bb ButtonProgressWidget: Make hold_callback optional (#8940)
We don't need one in FrontLightWidget ;).

Fix https://github.com/koreader/koreader/issues/8913#issuecomment-1074915143
2022-03-22 20:38:23 +01:00
NiLuJe
d761b62076 FrontLightWidget: Unbreak warmth on full-granularity devices (#8935)
Fix #8913
Regression since #8856

Change tacks, to allow full granularity with the +/- buttons.
2022-03-22 09:58:29 +01:00
NiLuJe
23cd7e24bb Minor Lua I/O cleanups (#8921)
Mostly making sure we always explicitly close io handles.
2022-03-19 23:57:31 +01:00
Utsob Roy
357bc65217 Keyboard: add Bengali Probhat layout (#8887)
Add keyboard with Bengali Probhat layout.
Bump koreader-fonts for added Noto Sans Bengali UI,
and include it among our fallback fonts.
2022-03-15 23:13:13 +01:00
NiLuJe
217a73f3c0 Initial Kindle PW5 support (#8856)
* Rejig frontlight warmth API to more closely match the existing API, and, hopefully, clarify some of its quirks, and reduce boilerplate and duplicate code in platform implementations.
* Tweak Kindle:setDateTime to prefer using the platform's custom script, as in interacts better with the stock UI. And make the fallbacks handle old busybox versions better.
* Add Kindle PW5 support ;).
* Add warmth support to the Kindle platform.
* Random TextBoxWidget cleanups: make sure we immediately free destroyed instances.
* FrontLightWidget: Refactor to make it slightly less obnoxious to grok and update; i.e., separate layout from update, and properly separate brightness from warmth handling. Move to simpler widgets instead of reinventing the wheel.
* TextBoxWidgets: Implement `setText` to match TextWidget's API, as some callers may be using the two interchangeably (i.e., Button).
* NaturalLightWidget: Make sure we pass a string to InputText
* InputText: Add debug guards to catch bad callers not passing strings ;).
2022-03-14 19:56:18 +01:00
Philip Chan
4f849c23ab Non-touch: highlight support (#8877)
readerhighlight: non-touch support
focusmanager: fix same type container share same selected field
radiobuttonwidget: non touch support
sortwidget: non touch support
openwithdialog: fix layout contains textinput, checkboxes added to layout twice
2022-03-12 12:16:50 +01:00