Commit Graph

780 Commits

Author SHA1 Message Date
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
zwim
b845674bed [plugin] String and formatting (#8980)
Easy the life of translators and fixes a stupid string typo.
2022-04-10 17:54:32 +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
Scarlett
d53ee056cc Revert NewsDownloader (#8953)
My volumize PR introduced too many issues. Revert to previous version of NewsDownloader until they can be resolved.

Fixes #8867 

Reintroduces  #8799, #6234
2022-03-27 16:47:14 +02:00
yparitcher
c9bfb74d2a Book Shortcuts: allow recursively searching folders 2022-03-24 22:49:34 -04:00
Frans de Jonge
eeefc657cb [fix, plugin] Wallabag: avoid crash when setDownloadDirectory doesn't have a touchmenu_instance (#8933)
Fixes #8930.
2022-03-21 18:47:22 +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
af7c8cade8 [feat, UX] CoverBrowser: add progressbar in Mosaic View (#8915) 2022-03-19 11:15:22 +01:00
Utsob Roy
d266d320e2 [plugin] Exporter: optimized JSON export (#8904)
I've implemented a better JSON export format that removes redundant lists and objects and introduces the `entries` key containing all the entries.

It also add `drawer` values from highlight so that user can use this piece of metadata to generate desirable output.
2022-03-19 09:59:04 +01:00
Tesseract Cat
d4bbd74208 Add OPDS PSE 1.0 support (#8919)
This PR adds support for the unofficial page streaming extension for OPDS. See: https://anansi-project.github.io/docs/opds-pse/specs/v1.0. This is useful for streaming comics from a remote server.

Addresses #7500.
2022-03-18 21:27:17 +01:00
Emir Taletovic
f8eca5fa03 Calibre plugin - Series/Tag browser updated to show back button. (#8869)
* Calibre plugin - Series/Tag browser updated to show back button.

* Handling page number

* Few updates to search logic:
- Moved "find books" option from CalibreSearch:find(option)
into CalibreSearch:browse(option) function. This way all search options
are handled in one place only.

- Menu is created only once and it is in CalibreSearch:browse(option)
function. This is where it is also invoked with UIManager:show(w).
Switching between different menu content (tags/series/books) is
done using CalibreSearch:switchResults function which will internally
call Menu:switchItemTable. Previously menu was being instantiated
in 2 places depending on are we searching books or series/tags

- Return arrow navigation: Border around Menu is gone to give space
for back arrow. Navigation seems to be working fine so far but will
give it some time to test in case I find any other bugs
2022-03-16 21:45:47 +01:00
Frans de Jonge
7235433b92 [i18n] Add context for calibre configuration type (#8909)
`Manual` could mean several things, most notably some kind of documentation and something you do by hand.

The added context is partially to aid translators and partially to preclude potential collisions in the future.

Cf. <https://github.com/koreader/koreader-translations/pull/138>.
2022-03-16 16:18:18 +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
hius07
7b4d6fd205 History: filter by book status (#8820) 2022-03-12 11:26:11 +01:00
Emir Taletovic
3e78847c46 Calibre plugin - Fixed hang when book has series but series index is nil (#8870) 2022-03-11 19:40:02 +01:00
Philip Chan
107156c0a8 [feat] Non-touch improvements (#8859)
FocusManager: fix round x use y layout
FocusManager: add tab and shift tab focus navigation support
FocusManager: handle Press key by default
FocusManager: make sure selected in instance level
FocusManager: add hold event support
FocusManager: Half move instead of edge move
FocusManager: add keymap override support
FocusManager: refocusWidget will delegate to parent FocusManager
Focusmanager: refocusWidget can execute on next tick
inputtext: can move out of focus on back
inputtext: fix cannot exit for non-touch device
inputtext: fix cannot input text with kindle dx physical keyboard
fontlightwidget: add non-touch support
datetimewidget: add non-touch support
datetimewidget: fix set date failed in kindle DX, fix datetimewidget month range to 1~23 by default
datetimewidget: make hour max value to 23
multiinputdialog: add non-touch support
checkbox: focusable and focus style
virtualkeyboard: no need to press two back to unfocus inputtext
virtualkeyboard: collect FocusManager event key names to let VirtualKeyboard disable them
openwithdialog: add non-touch support
inputdialog: can close via back button
enable all InputDialog and MultiInputDialog can be close by back
keyboardlayoutdialog: non-touch support
readertoc: non touch device can expand/collapse in toc
bookstatuswidget: non touch support
keyvaluepage: non-touch support
calendarview: non-touch support
2022-03-04 21:20:00 +01:00
zwim
eef4dc1c0d Terminal: fix regression from #8845 (#8848)
This should fix a regression introduced with #8845 with reopening a running shell.

Adds more checks and more verbose logging messages on failures.
2022-02-27 12:16:22 +01:00
zwim
1cd396f9c4 Teminal: fix crash when grantpt or unlockpt fail (#8845)
* Fix crash when grantpt or unlockpt fail
* Disable plugin if grantpt or unlockpt fail
2022-02-26 18:16:36 +01:00
Frans de Jonge
67445beea5 [plugin] Terminal: remove stray space at end of string (#8831) 2022-02-20 16:34:32 +01:00
contrun
57188311da kosync: send progress as a string to the server (#8758)
Currently the progress sent to the server can be either a string or an int (depending on whetther the document has pages).

The following are both payload sent from koreader to the server.

```
{"percentage":0.005,"device":"device_name","device_id":"B78EA04ACC3A453DBA220D720C0BE102","document":"348e34463a44ba68659fc6fe814a6778","progress":3}
```
where document `348e34463a44ba68659fc6fe814a6778` is a pdf file.

```
{"percentage":1,"device":"device_name","device_id":"B78EA04ACC3A453DBA220D720C0BE102","document":"4eb484b229696cb39cd8fe5495aa1bbe","progress":"\/body\/DocFragment[30]\/body\/p\/img.0"}
```
where document `4eb484b229696cb39cd8fe5495aa1bbe` is an epub file.

This may add extra work to the backend server. A few commits were added to my personal fork of [kosyncsrv](https://github.com/yeeac/kosyncsrv) (a kosync backend server). kosyncsrv initially tries to decode progress as a string. It then failed on document with pages (in which, progress is just integer page number). I then change the field's type, only to [revert it later](8a642e31a0).

I believe it is more appropriate for us to fix the progress type to string.
2022-02-20 16:08:56 +01:00
Frans de Jonge
8ff8a05ff3 [plugin] Terminal: move stray newlines outside of translated string (#8830) 2022-02-20 16:08:23 +01:00
Frans de Jonge
4d6a789f6d [plugin] Terminal: fix @translators comments (#8829) 2022-02-20 16:07:57 +01:00
Scarlett
c3332f355f NewsDownloader: add support for RDF feeds (#8822)
Fixes #8799.
2022-02-20 09:17:59 +01:00
hius07
8dbfead03d gestures: free long-press on FM home button 2022-02-19 22:04:12 +01:00
hius07
8bb08b503a Cloud storage: enhance download dialog, fix Dropbox uploading (#8809)
(1) ButtonDialogTitle: new method setTitle()

(2) OPDSbrowser
-use setTitle() instead of open/close ButtonDialogTitle (no visual changes to the download dialog)
-reduce logger.info output to avoid flooding crash.log

(3) CloudStorage
-enhance download dialog (similar to OPDS), much optimized code of downloadFile
-fix a bug: cannot create new folder or upload files to the root of the Dropbox storage
2022-02-17 10:53:15 +01:00
hius07
c9fc9496aa BookShortcuts: fix folders handling (#8795) 2022-02-15 12:04:07 +02:00
hius07
59f04ab018 ReaderProgress: insert TitleBar 2022-02-02 17:05:28 +01:00
hius07
77d3882eed CalendarView: remove close button! 2022-02-02 17:05:28 +01:00
hius07
605b09afbe CalendarView: remove unused CalendarTitle 2022-02-02 17:05:28 +01:00
Frans de Jonge
c2812c7956 [plugin] Update capitalization style "Terminal Emulator" → "Terminal emulator" (#8759) 2022-02-01 17:17:22 +01:00
poire-z
c627dfd63f ReaderStatistics: avoid self.kv leaking after close 2022-01-31 23:57:48 +01:00
poire-z
83172d62ae ReaderStatistics: reset stack/link on showing first widget
Reset self.kv stack/link on showing first widget.
This avoids return arrow to possibly show previously
displayed old and unrelated KeyValuePage.
Note: when closing a leaf KeyValuePage, the previous
one will leak as self.kv.
2022-01-31 23:57:48 +01:00
poire-z
67b17d0845 ReaderStatistics: allow reset statistics per period per book 2022-01-31 23:57:48 +01:00
poire-z
f764a61b69 KeyValuePage: allow for more fancy callbacks
Add support for hold_callback.
Provides kv_page and kv_item to callbacks.
Allow for item removal and refresh.
2022-01-31 23:57:48 +01:00
poire-z
516c3d3225 ReaderStatistics: fix current page stats on close/suspend
Fixes current page statistics (duration) ignored when
document closed, or when suspending and resuming.
On suspend/resume, update the page start ts by the
time spent sleeping, so its duration will be the time
spent on it not sleeping.
2022-01-31 23:57:48 +01:00
poire-z
3a5dbe3420 ReaderStatistics: remove id_book parameter to insertDB()
As it should always just work on the current book.
Also remove uneeded getCalendarView().
2022-01-31 23:57:48 +01:00
zwim
8cff5f88b0 Teminal emulator: fix translatable, fix potential crash (#8756) 2022-01-31 19:14:29 +01:00
Martín Fernández
f0197423ad remove send2ebook plugin (#8747) 2022-01-30 22:01:51 +01:00
zwim
b924f38dc0 Terminal emulator: fix elinks 'q' crash (#8749)
This fixes a crash in terminal emulator on exit of elinks.
see: https://github.com/koreader/koreader/pull/8636#issuecomment-1024956177
2022-01-30 09:25:35 +01:00
zwim
7220bdea4f [fix, plugin] Terminal ldoc (#8742) 2022-01-28 23:03:31 +01:00
zwim
f2557a7aa6 Terminal emulator: full rewrite, real vt52 emulator (#8636)
New real terminal emulator, replacing the old plugin.
The emulator is basically a vt52 terminal (enriched with
some ANSI-sequences, as ash, vi and mksh don't behave well
on a vt52 term).
So far working: ash, mksh, bash, nano, vi, busybox, watch...
The input supports: tab-completion; cursor movement;
backspace; start of line, end of line (long press);
page up, page down (long press).
User scripts may be placed in the koterm.koplugin/scripts/
folder, aliases can be put in the file aliases and startup
command in the file profile.user in that folder.
2022-01-28 20:33:09 +01:00
Adrien Gallou
66afbf15f6 wallabag : fixes synchronization when "send review as tags" is checked (#8733)
In this PR https://github.com/koreader/koreader/pull/8637
It worked on my sev environnement, but when updating my device, there
were synchronization errors.

Apparently sometimes documents do not have a summary.
To avoid an error during the synchronisation this change adds checks
when getting tags for the document.
2022-01-27 21:27:38 +01:00
poire-z
95b35ec669 Allow any multiswipe to close some fullscreen widgets
For consistency with BookMap and PageBrowser widgets
where swipe south (the usual gesture to quick close)
can't be used for closing and we had to use any
multiswipe instead, allow any multiswipe to close
these other fullscreen widgets too:
Menu (ToC, Bookmarks), KeyValuePage, ImageViewer,
BookStatusWidget, ReaderProgress, CalendarView.
2022-01-25 21:33:19 +01:00
hius07
c9b4e43bf9 OPDSbrowser: bookinfo multiline title 2022-01-24 22:27:45 +01:00
poire-z
16e3b2f0ac Allow Backspace to work as back button 2022-01-24 08:50:47 +01:00
Scarlett
8a04dc9852 NewsDownloader: new option to allow EPUB volumization (#8263)
When this feature is enabled on a feed and that feed is
synced, all new feed entries will be collected into a new
single EPUB file. This is achieved by implementing a feed
history feature (downloaded feeds are added as M5D hashes
to a LuaSettings file), and by introducing additional
methods into epubdownloader.lua that allow for multiple
HTML documents to be added into single EPUB file.
2022-01-21 19:23:21 +01:00
yparitcher
295ef6b9f7 Battery Stat: for real (#8694)
Thanks @hius07
2022-01-19 18:31:58 +01:00
Martín Fernández
963970be8c exporter plugin: fix history dir (#8685)
for platforms where history dir don't match installation path.

Fixes #8675
2022-01-19 17:12:53 +01:00
zwim
b21dc4dcc6 Autosuspend: fix 'Disable' not disabling (#8684) 2022-01-19 14:02:09 +01:00
poire-z
f21a12360a CoverBrowser: use translations for error messages 2022-01-19 12:23:38 +01:00