Commit Graph

986 Commits

Author SHA1 Message Date
David
be7b8b4358 Emulator: set useDPadAsActionKeys flag with DISABLE_TOUCH (#13769)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-05-11 09:09:06 +02:00
ElimGarak1
fecb2600ec Add PocketBook Verse Lite (PB619) (#13760)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-05-09 21:02:45 +02:00
hius07
4b3248700e Gesture intervals: adjust long- and very-long-press intervals (#13690)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-04-28 08:40:04 +03:00
Martín Fernández
e04e2a788f android: remove vendor specific keycodes from event_map (#13660)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
Moved to https://github.com/koreader/koreader/wiki/Android-tips-and-tricks#customize-keys
2025-04-23 23:33:48 +02:00
Frans de Jonge
79f326b5d0 Add a new Kobo Clara BW device ID and codename (#13648)
References #13644. FBInk support currently absent.
2025-04-21 18:59:32 +02:00
Noa Himesaka
15995650e9 Add reMarkable Paper Pro support (#13620)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-04-21 13:39:44 +02:00
mergen3107
4816757534 Kindle: add hall file for PW6 (#13615) 2025-04-18 19:15:58 +02:00
Jackson Hacker
968703494e Add Kindle Basic 5 hall file (#13603)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-04-16 16:10:01 +02:00
Martín Fernández
23bcb530c9 Debian: misc changes (#13596)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
- Updated changelog with proper version & date.
- Updated description (based on common metadata)
- Removed duplicated files that are condensed in /usr/share/doc/koreader

Misc:

- make `frontend/device/devicelistener.lua` non executable
- make `plugins/terminal.koplugin/profile` executable
2025-04-15 08:34:11 +02:00
David
135453776a Add key_repeat support to Kindle NT (#13328)
Some checks are pending
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Waiting to run
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Waiting to run
closes #12745
2025-03-15 23:31:30 +01:00
Frans de Jonge
c65e7971ec Fix typo in PocketBook init (#13238)
Some checks are pending
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Waiting to run
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Waiting to run
See https://www.mobileread.com/forums/showthread.php?p=4488302#post4488302
2025-02-11 20:59:36 +01:00
farfromrefuge
48471eaa24 android: Add OSS-Dict (#13224)
Some checks are pending
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Waiting to run
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Waiting to run
https://github.com/farfromrefug/OSS-Dict
2025-02-10 16:48:32 +01:00
yparitcher
a15c294bc2 Kindle: demote Warn to Info
Some checks failed
macos / macOS ${{ matrix.image }} ${{ matrix.platform }} 🔨${{ matrix.xcode_version }} 🎯${{ matrix.deployment_target }} (10.15, 13, x86-64, 15.2) (push) Has been cancelled
macos / macOS ${{ matrix.image }} ${{ matrix.platform }} 🔨${{ matrix.xcode_version }} 🎯${{ matrix.deployment_target }} (11.0, 14, ARM64, 15.4) (push) Has been cancelled
2025-02-02 15:47:29 -05:00
NiLuJe
aa421bf277 GestureDetector: Translate start & end gesture positions when rotated (#13101)
* GestureDetector:adjustGesCoordinate: Remove one layer of indirectiçon in
direction translation

That function call wrapper felt pretty unnecessary to me ;).

* GestureDetector: Translate complex gesture positions, too

i.e., if there's a start and end position, translate those, too.

Fix #13090
2025-01-31 18:30:23 +01:00
Tom van Dijk
0c05abb21f feat(readerdictionary): add ability to use kiwix standalone (#13060)
Problem: when you install Kiwix from FDroid or as a standalone apk (ergo not via
the Play Store) it installs as `org.kiwix.kiwixmobile.standalone`, which before
this commit isn't supported.

This commit simply just adds it as a seperate option :)
2025-01-14 18:24:14 +01:00
Marek Veselý
f3f518afd5 [device] add Kindle Scribe 2 support (#13051) 2025-01-12 09:03:03 +01:00
Marek Veselý
038df71ca5 [device] Add the new Kindle line-up (#12990)
* add Kindle ColorSoft
* add Kindle PW6 and KT6
2025-01-03 17:29:47 +01:00
hius07
6e84503b3d Add support for KindlePaperwhite5 Signature Edition light sensor (#12946) 2024-12-28 19:42:44 +01:00
Benoit Pierre
24f983b580 pocketbook: support "extended" key events (#12707)
Only for devices running with SDK >= 6.

Close #12703.
2024-11-20 21:45:53 +01:00
Martín Fernández
fd3727274b bump android-luajit-launcher (#12734)
Includes:

https://github.com/koreader/android-luajit-launcher/pull/526
https://github.com/koreader/android-luajit-launcher/pull/527
https://github.com/koreader/android-luajit-launcher/pull/528
https://github.com/koreader/android-luajit-launcher/pull/529
2024-11-13 14:55:40 +01:00
NiLuJe
b42b9a8799 DeviceListener: Restore onExit callback passing
That callback is used for custom exit paths (e.g., OTA).

Regression in #12509
2024-10-27 01:34:20 +02:00
NiLuJe
4c91bf9f63 OTA: Make the final ConfirmBox undismissable
It's relatively easy to miss-click the buttons, especially on devices
with questionable touch panels...

And while doing so is perfectly fine, you miss the InfoMessage telling
you that the update will be applied on restart, which is potentially
confusing.

Re: #12674
2024-10-27 01:34:20 +02:00
mergen3107
f8446538c0 Fix KOReader spelling in the code (#12670) 2024-10-24 10:46:46 +02:00
mergen3107
ee17b44b58 Kindle Scribe: fix elseif for orientation code (#12663)
Fixes #12662
2024-10-20 18:58:34 +02:00
NiLuJe
a979141ab2 Kobo: Minor simplification after #12616 (#12629)
The only codepath that sets pending_connection to true in NetworkManager calls turnOnWifi right after, so we can't really ever see pending_connection w/o isWifiOn being also true ;).
2024-10-12 19:47:01 +02:00
NiLuJe
75f7d862d4 Kobo: Explicitly murder Wi-Fi right before suspend if needed
In order to avoid similar catch-22, no matter the timing
2024-10-11 20:37:36 +02:00
jkl16
6138779124 Disabled rotation map for Android devices where "hw media keys follow gravity" (#12557) 2024-10-02 14:41:47 +02:00
NiLuJe
a6584e312d Add kobov4 & kobov5 targets
kobov4 exists solely because there's a dedicated TC for it,
but we don't distribute binaries for it (it doesn't differ enough from
kobo, and experience has taught us that this kind of split was not a
great idea (e.g., kindle5 vs. kindlepw2)).

kobov5 targets a massively updated userland, and requires further
changes, including to the delivery mechanism, so it very much warrants a
dedicated package (re: #12401)
2024-10-01 23:26:03 +02:00
Benoit Pierre
d98fe14ba8 input: fix loading of fbink_input library (#12560)
The library is versioned.
2024-09-26 23:07:15 +02:00
Benoit Pierre
a1edbbf0c4 use new ffi.loadlib helper (#12545)
To load our native libraries.
2024-09-26 18:36:09 +02:00
Benoit Pierre
88aea09f73 input: fix pocketbook init (#12555)
Regression from #12486.
2024-09-25 21:17:30 +02:00
David
08205c47c8 [ReaderFooter] Update status bar in real time when inverting page turning (#12424) 2024-09-25 21:16:06 +02:00
Benoit Pierre
beaad4d337 input: fix kobo init (#12553)
I missed converting one call of `Input.open` to a method call in #12486.
2024-09-25 20:16:25 +02:00
Benoit Pierre
0c0d2ab9f1 input: drop use of ffi/input
Get rid of the weird interaction between device implementations,
`ffi.util` (`isSDL`, `noSDL`) and the device input code: each
device knows if it's using SDL or not, so rely on that to load
the right underlying input implementation.
2024-09-24 16:08:58 +02:00
Benoit Pierre
283c764351 sdl: minor cleanup; remove dead code 2024-09-24 16:08:58 +02:00
ElimGarak1
6dcafb329a Add PocketBook Verse Pro Color (PB634K3) (#12476) 2024-09-18 20:07:05 +02:00
NiLuJe
3401bed3d1 Kindle: Restore hall effect sensor state on startup (#12521)
Fix #11744
2024-09-18 15:06:23 +02:00
NiLuJe
da74691515 Chore: Don't cache static data tables (ui/elements, ui/data, kb layouts & co) (#12519)
Using `require` didn't make much sense since most of them are only used in a single place anyway, and it takes care of a few weird interactions in the process (besides not polluting `package.loaded` with useless crap ;)).
2024-09-16 17:11:42 +02:00
hius07
bf290e0c2b Write highlights into PDF: revisited (#12509) 2024-09-14 15:21:26 +03:00
jonnyl2
2a9fe6fdcf Dispatcher/DeviceListener: temporarily turn on Accelerometer/GSensor for 5 sec (#12419) 2024-09-01 23:53:51 +02:00
NiLuJe
ca71bb2917 Input: Ignore ABS_X, ABS_Y & ABS_PRESSURE for snow_protocol (#12427)
On Monza, the lift frame can report these for *multiple contacts* without an id or a slot, which is super-duper invalid -_-".

(And we have ABS_MT_POSITION_X & ABS_MT_POSITION_Y for the "saner" frames, plus these devices generally don't support pens, so we don't make use of pressure).

(Also, switched to a dedicated handler like for the phoenix quirks, to avoid bogging down the standard handler with hacks for broken drivers).

Fix #11910
2024-08-30 16:04:28 +02:00
David
4910afffdd Add numerical key_codes to event_map on kindle 3 (#12358) 2024-08-24 14:17:40 +02:00
NiLuJe
4264d915b1 Kobo: Refactor suspend in order to be able to catch input events sent during the 2s window of ntx madness (#12330)
I don't even remember how badly things broke (at least on old devices) without it, despite it making absolutely no sense at all (state-extended just flips a global that dictates whether some things get flagged as wakeup sources or not).

So, don't rock the boat too much: we don't remove it, but instead of using a sleep, we use a task deadline instead, which ensures we'll keep processing input events in the right order in the meantime. We'll already have neutered input by this point, so we'll only process power events anyway.

That means that the only iffy things are potentially *when* and *where* we have to potentially cancel that task. Resume makes sense, of course, and we log an info message to make the log flow clear; but we also do so in suspend... just in case. With a warning log because that probably indicates something fishy went on.

Also cleanup the comments while I'm there, and actually rewrite the wakeup_count stuff properly so it could actually theoretically be used if ntx kernels were actually reliable. Spoiler alert: they're not, this is still horribly broken on at least Mk < 7. Works just fine on a Forma, though, so, yay.

Fix #12325
2024-08-12 03:47:43 +02:00
David
466971c0e2 ReaderFooter: add page-turn item (#12249) 2024-08-10 10:09:23 +02:00
NiLuJe
7e8cdbcf65 PowerD: Keep track of frontlight state change by interactive callers for suspend/resume purposes (#12283)
While #12256 papered over the tracking of a *single* suspend -> (resume->suspend) series of events, things still go out of sync if you tack on *more* suspend/resume events after that.

The upside is that our *actual* tracking of suspend/resume is solid, so at least we're actually doing the right thing as far as PM is concerned.

The downside is that on Kobo, the frontlight handling code is full of delays, and the ramping down/up itself also takes some time, so things can quickly overrun into the wrong event.

This means a couple of things:

* We need to cancel any scheduled frontlight toggles and ramps on Kobo, to ensure that only the one from the *last* event received goes through, in an attempt to limit the amount of potential crossover.
* Tracking fl_was_on *cannot* reliably be done from the suspend/resume handlers (especially on Kobo), as the ramps themselves may cross over the event barriers (and we potentially cancel the task anyway), so this was moved to the very few interactive callers that will actually change the frontlight state.
* On Kobo, crossover is still *somewhat* possible because the ramps take time. It's mostly harmless for the ramp down, we just need to tweak the ramp down to start from the actual intensity to avoid a weird jump on the initial step if there's an inconsistency. For the ramp up, we potentially need to manually kill the light first, because off -> on assumes it *really* starts from off ;).

Followup to #12256
Fix #12246 (again)
2024-08-06 01:13:14 +02:00
NiLuJe
9b9898d466 Kobo: Track frontlight state more accurately on suspend/resume (#12256)
Hopefully in the least intrusive way possible, because frontlight handling code is hell.

`self.fl_was_on` could go out of sync with the expected state when resume->suspend events happened in very quick succession, leading to it being set to false, preventing the frontlight from being turned back on on the next resume.

Fix #12246
2024-08-01 23:06:31 +02:00
NiLuJe
d59c837714 Kobo: Refactor various aspects of the Kaleido/MTK support (#12221)
* UIManager: Let the fb backend deal with Kaleido wfm promotion. This fixes a number of quirks that poisoned the refresh queue with spurious full-screen refreshes. See https://github.com/koreader/koreader-base/pull/1865 for more details.
* This also means we now disable Kaleido waveform modes when color rendering is disabled (remember to trash your thumbnail cache if you don't want to mix color w/ grayscale thumbnails, though).
* UIManager: Merge refreshes that share an edge, because that was driving me nuts (and would have most likely been merged by the kernel anyway). A perfect test-case is the FM, which trips two separate refreshes because of its title bar.
* ReaderFlipping: Use sensible dimensions, so that we only refresh the icon's region.
* ReaderBookmark: Only refresh the dogear instead of the whole page when toggling bookmarks.
* NetworkSetting: Make it a real boy, so it consistently refreshes properly on dismiss instead of relying on UIManager saving the day.
* Kobo: Aggressively prevent *both* suspend & standby while MTK devices are plugged-in, as both will horribly implode the kernel (we previously only prevent standby while charging).
* Kobo: Switch to 8bpp on B&W MTK devices (or when color rendering is disabled on Kaleido panels).
2024-07-28 01:19:40 +02:00
NiLuJe
761cf18222 SDL: Return true in NetworkMgr:isConnected on !hasWifiToggle platforms, (#12217)
so as not to break the beforeWifiction shenanigans...

Which is most of them, only the Emulator subclass sets it, for...
reasons.

(That Emulator quirk is also why we can't simply scrap the whole thing
to use NetworkMgr's default imps).

Fix #12203 (thanks to @benoit-pierre for spotting that one).

This was clearly an oversight on my part when working on #10669
2024-07-26 02:12:53 +02:00
Martín Fernández
617618d587 Add Device:otaModel() (#12014)
Devices with a single target might want to specify it in `Device.ota_model`
Devices with multiple targets want to override the function or to specify `ota_model` variants for each target.
2024-06-25 21:35:38 +02:00
Marek Veselý
4c4cfa2db0 Kindle: add wifi selector (#12056)
* Kindle: Implement a NetworkMgr backend loosely based on WpaClient in order to allow feature-parity with hasWifiManager platforms. This involves dealing with the native wifid over lipc (the native IPC system, based on DBus), through custom Lua bindings (https://github.com/notmarek/openlipclua), since the stock ones lack support for the needed hasharray data type.
* NetworkMgr: Clear up leftover hallucinations from #10669, making `enableWifi` much simpler (and much more similar to `turnOnWifiAndWaitForConnection`).
* NetworkMgr: Made it clearer that `turnOnWifi` implementations *must* deal with `complete_callback`, as part of the aforementioned changes mean that it's *always* wrapped in a connectivity check, and we need that for proper event signaling.
* Android, Emu: Run `complete_callback` properly in `turnOnWifi`.
* Kindle: Support `powerd:isCharged()` on the PW2 (yes, this is random, it just happened to be my test device :D).
* NetworkMgr:disableWifi: Properly tear down any potential ongoing connection attempt (e.g., connectivity check).
* NetworkMgr:promptWifi: Make the "wifi enabled but not connected" popup clearer if there's an ongoing connection attempt, and gray out the "Connect" button in this case (as it would only lead to another "connection already in progress" popup anyway).
* NetworkMgr:reconnectOrShowNetworkMenu: Make *total* scanning failures fatal (they will lead to an immediate wifi teardown).
* NetworkMgr:reconnectOrShowNetworkMenu: Clear up the long-press behavior (which *always* shows the network list popup) so that it doesn't weirdly break all the things (technical term!).
* NetworkMgr:reconnectOrShowNetworkMenu: When we manage to connect to a preferred network on our own *before* showing the network list, make sure it is flagged as "connected" in said list.
* NetworkMgr:reconnectOrShowNetworkMenu: Make connection failures fatal in non-interactive workflows (they'll lead to a wifi teardown).
* NetworkSetting (the aforementioned network list widget): Clear NetworkMgr's "connection pending" flag on dismiss when nothing else will (i.e., when there's no connectivity check ticking).
2024-06-25 21:17:36 +02:00