Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't open djvu files on Android #1534

Closed
Germanc opened this issue May 28, 2015 · 7 comments
Closed

Can't open djvu files on Android #1534

Germanc opened this issue May 28, 2015 · 7 comments

Comments

@Germanc
Copy link
Contributor

Germanc commented May 28, 2015

Hi ! I managed to get koreader working through patch.lua on my Boris reader (Argentinian Onyx c67ml rebranded) but I can't open any djvu file with error 'no reader engine for this file'. There are no not ascii character in the path (I checked). The reader runs Android 4.2.2 with Play Services. I'm running latest nightly version but I tested with stable and a previous nightly with no success.
How can I get a log ? If you give me the adb command I will manage to run it (never coded on android). Would love to use it as my main reader after years of using kindlepdfviewer.

Update: I got this
I/luajit-launcher( 1241): # opening file /mnt/sdcard/Books/Physics/FT2/Libros/Sakurai J.J.-Modern Quantum Mechanics (1993).djvu
I/luajit-launcher( 1241): # cannot open document /mnt/sdcard/Books/Physics/FT2/Libros/Sakurai J.J.-Modern Quantum Mechanics (1993).djvu frontend/document/djvudocument.lua:30: module 'libs/libkoreader-djvu' not found:
I/luajit-launcher( 1241): no field package.preload['libs/libkoreader-djvu']
I/luajit-launcher( 1241): no file 'libs/libkoreader-djvu.lua' (checked with asset loader)
I/luajit-launcher( 1241): no file 'common/libs/libkoreader-djvu.lua'
I/luajit-launcher( 1241): no file 'rocks/share/lua/5.1/libs/libkoreader-djvu.lua'
I/luajit-launcher( 1241): no file 'frontend/libs/libkoreader-djvu.lua'
I/luajit-launcher( 1241): no file 'libs/libkoreader-djvu.lua'
I/luajit-launcher( 1241): no file '/data/data/org.koreader.launcher/files/libs/libkoreader-djvu.lua'
I/luajit-launcher( 1241): no file 'common/libs/libkoreader-djvu.so'
I/luajit-launcher( 1241): no file 'common/libs/libkoreader-djvu.dll'
I/luajit-launcher( 1241): no file '/usr/lib/lua/libs/libkoreader-djvu.so'
I/luajit-launcher( 1241): no file 'rocks/lib/lua/5.1/libs/libkoreader-djvu.so'
I/luajit-launcher( 1241): no file 'libs/libkoreader-djvu.so'
I/luajit-launcher( 1241): no file '/data/data/org.koreader.launcher/files/libs/libkoreader-djvu.so'
I/luajit-launcher( 1241): # show widget

How can I provide more info ?

@hwhw
Copy link
Member

hwhw commented May 28, 2015

Hm, I think currently the djvu module isn't build on Android as djvulibre needed some parts that were not provided by Android's userland API (Bionic libc). I guess somewhere on the net patches are floating around for this issue?

@Germanc
Copy link
Contributor Author

Germanc commented May 28, 2015

This patch is floating around some chinese forums so koreader doesn't crash all the time and to remove the black bar at the bottom. With this it works quite well (it crashes sometimes but it's mostly usable):

require("jit.opt").start("sizemcode=64","maxmcode=512", "recunroll=8", "callunroll=12", "loopunroll=60", "instunroll=16", "tryside=16", "hotexit=160", "hotloop=1792", "maxsnap=160000", "maxside=32000", "maxirconst=160000", "maxrecord=1280000", "maxtrace=320000")
local screen = require("android").screen
screen.height = screen.height + 80
for i=1,1000 do end -- Force allocation of one large segment

If there is no djvu support on android yet I guess I will have to wait. I will convert my most used books to pdf then since the reflow works really well compared to the stock reader (which seems to also implement k2pdfopt but with no pre render of the next page).
I will be waiting for djvu support then !

@chrox
Copy link
Member

chrox commented Jun 1, 2015

Yes, djvulibre needs some patches to compile with android NDK. But it's possible since some open source projects like ebookdroid and orion viewer have already done that.

@chrox chrox changed the title can't open djvu file on onyx c67ml (android 4.2.2) Can't open djvu files on Android May 27, 2016
@gerroon
Copy link

gerroon commented Sep 7, 2016

Hi

Any progress on this issue?

thanks

@Frenzie
Copy link
Member

Frenzie commented Aug 7, 2017

I'll quote this new development from the chat for simple future reference. Fixing this seems more straightforward than I anticipated (because over at Orion Viewer they've already done all the hard work). Here's the blueprint I put together that lays out everything I can anticipate in advance.

https://gitter.im/koreader/koreader?at=598841a745fc67074600725d

@marmistrz
10:55
Hi! I'd like to help with issue #1534
Can you help me where to start?
Frans de Jonge
@Frenzie
12:32

@marmistrz The simple part would be to enable the build, see https://github.com/koreader/koreader-base/blob/d197047f88c37c1b10116730377b0251e6f91b83/Makefile#L74

The hard part starts there: figuring out why it was disabled in the first place and how to fix it. 😉

However, the first thing I'd check if things go wrong is simply if a bump automagically fixes it: https://github.com/koreader/koreader-base/blob/c6c1bd512dfaf22bdf10c9f8a1a74665b27b78e0/thirdparty/djvulibre/CMakeLists.txt#L28

There hasn't been a new stable since 2015, but the djvulibre Git repo has received a few commits since then.

I hope that helps! 😀

For simple patches you can use patch files like this: https://github.com/koreader/koreader-base/blob/c6c1bd512dfaf22bdf10c9f8a1a74665b27b78e0/thirdparty/mupdf/CMakeLists.txt#L56-L59

(but don't forget to contribute 'em upstream 😛)
Frans de Jonge
@Frenzie
12:43
I was just looking at Orion Viewer and it looks like they simply overwrite some of the libdjvu files with their own patched versions: https://github.com/max-kammerer/orion-viewer/tree/10eb69cdef36c00d64672bc63237f7ee8698b756/orion-viewer/jni/djvu/libdjvu
https://github.com/max-kammerer/orion-viewer/blob/1c62a273499525528a40e3df21e51d6b017157d9/thirdparty_build.gradle#L22-L31
So yeah @marmistrz if you could put the puzzle pieces together that'd be very helpful. 😀

@Frenzie
Copy link
Member

Frenzie commented Oct 14, 2017

I was taking a look at this and there's an annoying combination of circumstances making this harder than I thought it would be.

Android doesn't support full pthreads: http://mobilepearls.com/labs/native-android-api/#pthreads

libdjvu stripped out the ability to use NOTHREADS: https://sourceforge.net/p/djvu/djvulibre-git/ci/7d68e39b307e94ad58a4a53688eeac4eebcde8ce/tree/libdjvu/GThreads.h?diff=cc34dbefd8499ba14b3391a1f618b5f31a8c0bc3&diformat=sidebyside

https://sourceforge.net/p/djvu/bugs/249/

If you really want to try without threads, take the 3.5.25.3 code base
and remove the three lines involving MACTHREADS in GThreads.h. Then it will
compile. But it will not run correctly in all circumstances. Only the simplest
djvu files can be decoded without threads...

PS For the most part it might not be too hard to slap together something that works, but I'd like to do it as properly as possible including upstream patch submission. For example, that means using something like this at the top of DjVuToPS.cpp

#ifdef __ANDROID__
# undef UNIX
#endif

Or maybe something like #if defined(UNIX) && ! defined(__ANDROID__). But in any case, not commenting it out. :-)

In our CMakeLists.txt we can add set(CFLAGS "${CFLAGS} -Wunused-variable") for Android.

Some other outdated notes can be found here:

PS I forgot to mention, this is the error in question:

GThreads.cpp: In member function 'void DJVU::GThread::terminate()':
GThreads.cpp:453:24: error: 'pthread_cancel' was not declared in this scope
     pthread_cancel(hthr);
                        ^
make[7]: *** [libdjvulibre_la-GThreads.lo] Error 1

Maybe it could be changed to pthread_exit?

@Frenzie
Copy link
Member

Frenzie commented Oct 14, 2017

I was browsing around a little and noticed that in EBookDroid they don't cancel the threads at all: https://github.com/mortenpi/ebookdroid/blob/e9a18b0842088d956c297aeb6697441a6b92c5fd/jni/djvu/GThreads.cpp#L474-L477

GThread::terminate()
{
#ifndef __ANDROID__
  if (xentry || xarg)
    pthread_cancel(hthr);
#endif
}

It'd create a working build, though I fear about memory leaks. :-)

Frenzie added a commit to Frenzie/koreader-base that referenced this issue Oct 14, 2017
Frenzie added a commit to koreader/koreader-base that referenced this issue Oct 14, 2017
Frenzie added a commit to Frenzie/koreader that referenced this issue Oct 14, 2017
Frenzie added a commit that referenced this issue Oct 14, 2017
mwoz123 added a commit to mwoz123/koreader that referenced this issue Nov 4, 2017
* Timer Reader with normal time format (koreader#3244)

* [fix, UX] Remove rounded corners from fullscreen History (koreader#3256)

Prevent visibility of readers's footer edges.

* [UX] Smaller bottom menu icons (koreader#3257)

And unrelated small optimisation in imagewidget

* Adapt ND to changes in code where 0 means no limit (koreader#3258)

+ reorganize config, improved comments

* Bump base for smoother image scaling (koreader#3259)

* README: fix typo

* ImageWidget: use MuPDF for scaling images (koreader#3260)

* Cache scaled images with scale_for_dpi

* Don't update original self.scale_for_dpi

A same ImageWidget object can be free()'d and re-render()ed,
and we would then lose scale_for_dpi on next renderings

* [fix] Some Android issues (koreader#3262)

Bump base for versioned Android libs.

Fixes koreader#3214. Fixes koreader#3112. Fixes koreader#3091. Fixes koreader#3039. Fixes koreader#2976. Fixes koreader#2960. Fixes koreader#2947.

* [UX] Add home button (koreader#3263)

Tap to go HOME. Hold to set current folder as HOME. When no HOME is set yet tap also asks to set current folder as HOME.

See koreader#2957 (comment)

Closes koreader#3200.

* [fix, Android] restore patch.lua and fix odd anonymous function issue

See koreader#3214 (comment) and koreader#3118 (comment)

* [Android] Enable CoverBrowser (koreader#3264)

I was reminded by @KenMaltby that this is disabled on Android.

https://www.mobileread.com/forums/showthread.php?p=3586162#post3586162

* Add back button to statistics (koreader#3267)

Closes: koreader#3236 and koreader#3235
Details:

> Also, when looking in days, we see info how many hours we read. It would be great if we could tap a day, it opens info on book(s) we read that day with info pertaining to that day, and if we tap on book, we receive book info for that book.

>  Statistics plugin is really great, I started to look in my reading statistics now much more, but all the time I can go only in one way. And I need to exit at lowest level of info. It would be great if I can use statistics plugin like part of menu, to go up and down within statistics data and exit at my wish, not when I have to.

Also added:

 * new statistics book by week
 * new statistics book by month
 * last year by week now we can see days in selected week

* [UX] Smaller borders (koreader#3266)

For years they've been smaller on higher DPI devices and likely very few people realized it was technically a bug. These values round up on lower DPI and smaller screen devices.

References koreader#3265

* README: update Android NDK/SDK info

* [fix] Avoid crash when set home (koreader#3269)

* README: various style, grammar, clarifications & updates

* [fix] Add hold_callback to IconButton (koreader#3271)

Also fix path display update.

Fixes koreader#3270.

* CoverBrowser: use MuPDF for down-scaling images (koreader#3272)

* README: more grammar

* README: update info about screen size/DPI

* README: typo and grammar

* CoverBrowser: use a cache for crengine books extraction (koreader#3277)

We previously disabled cache, but that may cause excessive
memory usage with big books. We now use a temporary
cache directory, that we clean when no more needed.

* Rename bookmark (koreader#3275)

* Allow for colored rendering (koreader#3276)

* Allow for colored rendering

Available with all engines (CRE, PDF, Images).
Needs to manually add setting: "color_rendering" = true

* Disable color for djvudocument

* Use Screen:isColorEnabled()

* Bump base

* [lang] OPDSCatalog ConfirmBox ok_text/cancel_text (koreader#3281)

* Fix refresh in Time range (koreader#3278)

* kodev: run with catchsegv by default (koreader#3283)

See koreader#2878 (comment)

Also fix `./kodev run -h` as alias for `--help` as it's always overwritten by `-h` in the sense of the much more important `--screen-height`.

* Time reader with normal time format v2 (koreader#3279)

* Allow for toggling color rendering

New menu item in Screen submenu.
hasColorScreen enabled for SDL device.

* Enable color rendering on Android

* [Fix] Show 'Follow Link' even when no dict installed

* [Fix] Full refresh when showing ImageViewer

* [fix] KOSync plugin server location (koreader#3288)

This is only step one. It remains to be determined why the connection is downgraded to sslv3, which will result in a handshake failure.

* Inform once about color rendering on supported devices (koreader#3289)

* [fix] KOSync server TLS connection (koreader#3291)

Bumps base for updated luasec.

The forum reminded me Sync was broken https://www.mobileread.com/forums/showthread.php?p=3587993 (as I don't use it myself). This finishes 23e2183.

Thanks to @houqp for helping with debugging Cloudflare. See https://support.cloudflare.com/hc/en-us/articles/203135314-How-can-I-enable-SSLv3-

Fixes koreader#2738. Fixes koreader#2178. (Duplicate bug reports by @Hzj-jie. :-P) Fixes koreader#3159. Fixes koreader#3158. Fixes koreader#2877.

* README: Change gcc requirement to 4.8

Technically 4.7 is probably fine for all but debugging symbols, for which a simple version check and workaround could be added. However, since all of the CI tests run 4.8 there is no regression prevention and it would be more future maintenance trouble than it's worth.

* credocument reader optimisation (avoid multiple TOC builds) (koreader#3292)

Avoid unnecessary work in ReaderView:onSetViewMode() and
ReaderRolling:updatePos() that would result in TOC being reset
and rebuilt (which can take time on books with huge TOC) during
reader setup.

* CoverBrowser: avoid crash when indexing some cre documents (koreader#3293)

* [feat] Pocketbook840 enable frontlight (koreader#3294)

* Detect PocketBook840 by GetSoftwareVersion()

* implement Frontlight-support for 840 via inkview

* [fix] Android frontlight control

* Revert 2 commits that caused crengine scroll mode side effects (koreader#3295)

394be8a (koreader#2855) and 2b3b310 (koreader#3183) introduced side effects (scroll mode
crashing and TOC being reset and rebuild). This reverts parts of them
not yet reverted.

* README: small typo

* kodev: add run android convenience shortcut (koreader#3297)

* [fix] kodev: default NDKABI=14 if not set for NDK 15 standalone toolkit

* ISSUE_TEMPLATE: add request to share crash.log (koreader#3296)

* Migrate Goodreads to https (koreader#3298)

* Bump base (koreader#3301)

Includes:

* [fix] Android viewport (fixes koreader#3148)
* Makefile: add luajit-clean target and auto-call it (koreader/koreader-base#531)

* [fix] Avoid multiple refreshes when opening credocuments (koreader#3300)

Only noticeable on Kindle (which uses REAGL as partial refresh).

* [fix] Android screen blackout on first light change (koreader#3303)

* Fix footer, stats, TOC position with cre in scroll mode (koreader#3304)

This gives the page position to these modules even in scroll mode.
Also, in readerrolling: don't query battery/charging status
when crengine does not need it (used only when it shows its top
progress bar).

* [fix] Crash on highlight in some situations (koreader#3306)

* Fix crash with keyboard navigation of onHold buttontables (koreader#3307)

* Fix crash with keyboard navigation of onHold buttontables

Would crash when encountering a separator or when the number
of buttons in a row changes.

* Reset previous selected item on new buttontable

* refresh footer (koreader#3313)

* Bump base to prevent Travis LuaJIT rebuild (koreader#3314)

* Avoid some full refreshes on Kindle (koreader#3315)

"partial" refresh causes a full (without black flash) refresh on
Kindle (which uses REAGL mode for partial refresh). This causes a
full redraw of widgets, which is a bit distracting with some of them:
- dictquicklookup: when showing next definition
- infomessage: when displaying a new one (Wikipedia Save as epub)

Also fix bottom menu, that even when closed, would still register
bottom area as dirty: this would cause top menu navigation to
cause a full partial refresh, only noticable on Kindle.

* [ReadTimer] Time from now (koreader#3311)

* Add LuaData and Dictionary Lookup History (koreader#3161)

* Add dictionary history

Fixes koreader#2033, fixes koreader#2998.

* Add LuaData

* table handling in base settings

* Add LuaData spec

* Option to disable show bottom menu on top menu activation (koreader#3316)

* Bump base (koreader#3318)

Includes koreader/koreader-base#539.

Changes to koptcontext.lua. Look here if anything weird changes in PDFs.

* [fix, Android] Don't steal frontlight control on start (koreader#3319)

I believe this should be `if isKobo()`, or better yet that the entire
block should be moved to `KoboPowerD:init()` because afaik that is the
only platform where the system doesn't provide trustworthy frontlight
information. But to be absolutely sure that I don't break anything (and I
don't want to spend any time on this atm) I'm temporarily excluding only
Android where this behavior is known to be problematic.

See discussion in koreader#3118 (comment)

References koreader#3118 (using keyword "references" because phrases like "possibly fixes"
result in GH autoclose).

* Add CircleCI (koreader#3321)

* CircleCI fixes

* shellcheck 0.4.5 fix `LC_ALL: en_US.UTF8` (can be removed for shellcheck 0.4.6)

* hush updated luacheck on `reader.lua`; we're not assigning any variables but `= nil` is redundant

* Better vertical centering of text in its box

Decide baseline vertical position according to font metrics, instead
of the hardcoded 0.7 (in textwidget, which made the text a little
bit up in its box), and 0.75 (in toggleswitch, which made the text a
little bit down in its box). This usually gives a value around 0.72
or 0.73 with our ui fonts, which looks about right.
ReaderFooter: add bottom padding, now that our text goes a few pixels lower

* Normalize some widgets appearance (those using ButtonTable)

This makes button heights similar in all uses of ButtonTable.
It depended on how the ButtonTable was used in each widget
(previously, first and last row may have different sizes than
the others).

buttontable.lua: more even buttons height whether zero_sep or not
framecontainer.lua: added padding_top/bottom/left/right (similar to
what was done for iconbutton)

The following widgets have been adapted for this, with some
additional fixes:

buttondialog.lua
buttondialogtitle.lua: wider title with adequate padding
confirmbox.lua + multiconfirmbox.lua: dismissable via tap outside
inputdialog.lua + multiinputdialog.lua: more even vertical padding between elements
imageviewer.lua
textviewer.lua
datewidget.lua
timewidget.lua

Additionaly: frontlightwidget.lua: fixed width of progress bar that
was exceeding window width since the Size scaling adjustements

* Flash KeyValuePage item when callback (koreader#3322)

* Fix readerfooter_spec (koreader#3326)

My bad, leftover from koreader#3323 but not caught due to some Travis → CircleCI migration birth pains.

* CircleCI docs (koreader#3327)

* Environment variable key replaced by CircleCI GitHub push key.
  See <https://circleci.com/docs/1.0/adding-read-write-deployment-key/>.

* Temporarily added `|| true` to luacov so it won't cause a fail.

* Fix stats in cre scroll mode (koreader#3331)

* CircleCI cache fix (koreader#3329)

* Update luarocks/shellcheck/shfmt check based on `deps-{{ arch }}-{{ checksum ".ci/install.sh" }}`
* We generate a git-rev-base to check whether we can trust the cache
  with `build-{{ arch }}-{{ checksum "git-rev-base" }}`

Binary dependencies require `{{ arch }}` because there are different CPUs used on the servers.
More information here: https://discuss.circleci.com/t/use-the-arch-cache-template-key-if-you-rely-on-cached-compiled-binary-dependencies/16129

* [fix] Statistics: onPosUpdate and save stats when closing document (koreader#3332)

* Fix cre scroll page update and allow jumping to page (koreader#3333)

This makes Go to, Skim to and TOC page selection work in
scroll mode, and page given to other module more accurate
(previously, we were one action lagging).

* CircleCI parallelization

* Enable parallelism in .circleci/config.yml
* Add BUSTED_SPEC_FILE to Makefile testfront
* Use it in .ci/test.sh with xargs for test parallelization

NB This is the dumb method of improving test time.
Ideally we want a workflow fan-in/fan-out approach.

* [fix] MockTime spec

* [fix] #nocov on broken scroll mode tests

* CircleCI: run docs & coverage in first container only (koreader#3335)

I wrote this whole complicated wofkflow-based config file, but except
in the case of a base rebuild it wouldn't really be any faster than
this simple tweak.

```
defaults: &defaults
    docker:
      - image: houqp/kobase:0.0.5
        environment:
          EMULATE_READER: 1
          # this is for shellcheck 0.4.5 and lower; can be removed for 0.4.6
          LC_ALL: en_US.UTF8

version: 2
jobs:
  install-and-build:
    <<: *defaults
    steps:
      - checkout
      - restore_cache:
          keys:
            # binary dependencies require {{ arch }} because there are different CPUs in use on the servers
            - deps-{{ arch }}-{{ checksum ".ci/install.sh" }}
      # need to init some stuff first or git will complain when sticking in base cache
      - run: git submodule init base && git submodule update base && pushd base && git submodule init && git submodule update && popd
      # we can't use command output directly for cache check so we write it to git-rev-base
      - run: pushd base && git_rev_base=$(git describe HEAD) && popd && echo $git_rev_base && echo $git_rev_base >git-rev-base
      - restore_cache:
          keys:
            - build-{{ arch }}-{{ checksum "git-rev-base" }}
      - run: echo 'export PATH=${HOME}/bin:${PATH}' >> $BASH_ENV
      - run:
          name: setup
          command: .ci/before_install.sh
      - run:
          name: install
          command: .ci/install.sh
      - save_cache:
          key: deps-{{ arch }}-{{ checksum ".ci/install.sh" }}
          paths:
            - "/home/ko/bin"
            - "/home/ko/.luarocks"
            # compiled luarocks binaries
            - "install"
      - run:
          name: fetch
          command: .ci/fetch.sh
      - run:
          name: check
          command: .ci/check.sh
      - run:
          name: build
          command: .ci/build.sh
      - save_cache:
          key: build-{{ checksum "base/git-rev" }}
          paths:
            - "/home/ko/.ccache"
            - "base"
      - persist_to_workspace:
          # Must be an absolute path, or relative path from working_directory
          root: "./"
          # Must be relative path from root
          paths:
            # front build
            - "koreader-emulator-x86_64-linux-gnu/koreader"

  test:
    <<: *defaults
    parallelism: 4
    steps:
      - checkout
      - restore_cache:
          keys:
            # binary dependencies require {{ arch }} because there are different CPUs in use on the servers
            - deps-{{ arch }}-{{ checksum ".ci/install.sh" }}
      # need to init some stuff first or git will complain when sticking in base cache
      - run: git submodule init base && git submodule update base && pushd base && git submodule init && git submodule update && popd
      # we can't use command output directly for cache check so we write it to git-rev-base
      - run: pushd base && git_rev_base=$(git describe HEAD) && popd && echo $git_rev_base && echo $git_rev_base >git-rev-base
      - restore_cache:
          keys:
            - build-{{ arch }}-{{ checksum "git-rev-base" }}
      - run: echo 'export PATH=${HOME}/bin:${PATH}' >> $BASH_ENV
      - attach_workspace:
          # Must be absolute path or relative path from working_directory
          at: "./"
      - run:
          name: test
          command: .ci/test.sh

  docs-and-coverage:
    <<: *defaults
    steps:
      - checkout
      - restore_cache:
          keys:
            # binary dependencies require {{ arch }} because there are different CPUs in use on the servers
            - deps-{{ arch }}-{{ checksum ".ci/install.sh" }}
      # need to init some stuff first or git will complain when sticking in base cache
      - run: git submodule init base && git submodule update base && pushd base && git submodule init && git submodule update && popd
      # we can't use command output directly for cache check so we write it to git-rev-base
      - run: pushd base && git_rev_base=$(git describe HEAD) && popd && echo $git_rev_base && echo $git_rev_base >git-rev-base
      - restore_cache:
          keys:
            - build-{{ arch }}-{{ checksum "git-rev-base" }}
      - run: echo 'export PATH=${HOME}/bin:${PATH}' >> $BASH_ENV
      - attach_workspace:
          # Must be absolute path or relative path from working_directory
          at: "./"
      - run:
          name: cleanup
          command: .ci/after_success.sh

workflows:
  version: 2
  build-and-test:
    jobs:
      - install-and-build
      - test:
          requires:
            - install-and-build
      - docs-and-coverage:
          requires:
            - install-and-build
```

* [CI] Switch to Codecov (koreader#3336)

The debug output from Coveralls was rubbish. `"Build processing error"`
Besides some basics like checking if we were actually sending
valid JSON that gives us absolutely nothing to work with.

* [feat] VirtualKeyboard cursor navigation (koreader#3290)

Still lacks Japanese due to insufficient knowledge of the language.

* README: style updates (koreader#3337)

Improved some stylistic issues.

* Updated Travis CI reference to CircleCI.
* Switched to CircleCI "shield" style badge to fit in better with the other badges.

* Small visual fixes to Menu (koreader#3338)

Rationalize horizontal construction of Menu items (TOC,
Bookmarks, Classic file views) for more even padding.
Align "x" close button diagonaly with top right border and title.

Also add forgotten scale_for_dpi to MultiConfirmBox

* Allow for disabling flashing of menu, icons and buttons  (koreader#3339)

* CircleCI: finishing touches (koreader#3340)

* junit test results; unfortunately this seems to conflict with the verbose out

* fix deps cache: two files can change independently

* verbose print obsoleted by gtest in upsream busted

* [fix] verbose_print deprecated by gtest

* [fix] gettext: die already you stupid language not found error (koreader#3341)

* Bump base (fixes landscape on Android) (koreader#3342)

Includes koreader/koreader-base#542

* Add gettext_spec stub (koreader#3343)

* dbg_spec: setVerbose test

* [chore] Rework util spec, rework util.secondsToClock: round seconds to minutes in 00:00 mode + spec

Most of the tests in util_spec were the wrong way around.
It's `assert(expected, given)`.

* [chore] Ignore empty files and tables in DocSettings (koreader#3348)

* calibre 'series' metadata fixes (koreader#3349)

Decode XML entities in series metadata and display decimal in series number
if any.

* Menu (TOC, bookmarks): add padding before right text (koreader#3350)

* FileBrowser: change page to show last file or previous subdir (koreader#3351)

When going from reader to filemanager, we are in the directory
containing the last_file. With this, we will also be on the page
showing this file.
When in filemanager and going up (".."), we will also be on the
page containing the directory we came from.

* Avoid recalculation of partial_md5_checksum at each opening (koreader#3352)

This is done by/for kosync plugin at each opening, because
the docsettings was re-opened and saved for this, but later
overwritten by the current koreader docsettings - so it was
redone each time. This correctly adds this partial_md5_checksum
to the current koreader docsettings, which will be saved on
document closing - so it will not be redone next time.
Note: this partial_md5_checksum is not (yet) used by anything.

* kodev: Add $ANDROID_ARCH to enable x86 build (koreader#3353)

You'll still have to call it with `ANDROID_ARCH=x86 ./kodev build/release/run android`.

Don't forget to `./mk-luajit.sh clean` in luajit-launcher when changing architectures.

* Bump android-luajit-launcher
  This includes the fix for Android 8. Fixes koreader#3126.
* Bump base

* [android] fix hide nav bar on activity create (koreader#3357)

* [Goodreads] lookup improvement (koreader#3354)

* add navigation button (next, prev) on the bottom of screen
* flash item when selecting
* small lookup improvements
* fix refresh "Please wait..."

* Small visual fixes to top menu (koreader#3356)

To make it more alike bottom menu:
- left and right border not displayed
- line below icons extends to screen borders
- same bottom border size
And make separator lines have same padding on both sides

* [Android] Enable DjVu (bump base) (koreader#3358)

Closes koreader#1534.

* djvu: enable color rendering (koreader#3361)

* djvu: enable color rendering

* Bump base

* README: fix "unarchieve" typo (koreader#3362)

* Bump base (koreader#3364)

*  Change JPG rendering to RGB in openJPGDocumentFromMem
*  fix build on Mac OSX and fix SDL input issues on OSX
* And some other bumps (glib, crengine, libiconv, libjpeg-turbo).

* Fix some widget title height and close button alignment (koreader#3366)

* close button alignment (koreader#3367)

* Enable Edit (rename bookmark) when tap on highlight (koreader#3369)

Also fix a few crash possibilities when unhighlighting.
Also fix bug with binary search that could not be able to remove bookmark
when there are multiple bookmarks/highlights on the same page.

* [fix] util.secondsToClock 00:60 should be 01:00 (koreader#3371)

* [Kobo] Add preliminary Kobo Aura H2O2 definition (koreader#3372)

Cf. ongoing discussion in KSM8 thread: https://www.mobileread.com/forums/showthread.php?p=3596020#post3596020

* Bump base (sdcv 0.5.2; fix *buntu 17.10 build & segfault) (koreader#3378)

Fixes koreader#3302. Fixes koreader#3071.

* kodev: add debug flags (koreader#3379)

* `--gdb=X`
* `--valgrind=X`

* Book Information: added file size (koreader#3380)

* Added util.getFriendlySize() (koreader#3381)

* Added util.getFriendlySize()

* Allow for GB

* Fix location of progress bar ticks (koreader#3382)

* Added util.getFormattedSize() (koreader#3383)

* Bump android-luajit-launcher (contains x86 nightly build fix) (koreader#3384)

* FileBrowser: optimize 'change page to show last file'

This feature, introduced some days ago, was actually
doing 2 updateItems calls: the initial one, and a second
to switch to focused_file page (cheap with classic display mode,
less cheap with CoverBrowser modes).
This change allows doing that in a single call.

* CoverBrowser: some optimizations

Speedup initialization (needs to be done only once, and avoid
saving current mode to sqlite each time) and reader-to-filebrowser
switch, by doing a single rendering (instead of 2 or 3 previously).
ListMenu: cache sidecar file parsing results (page/percent
completed) for the browsing session duration.
Fix "No choice available" when on last page and changing
to a display mode with less pages.

* Android NetworkManager (koreader#3386)

* Bump base (sdcv patch to allow enable/disable dicts) (koreader#3393)

* Fullscreen android - resize window after toggle fullscreen (koreader#3392)

* [fix, Android] adjust touch location for koreader#3392 (koreader#3394)

* NewsDownloader promptWifiOn (koreader#3388)

* [feat] SkimToWidget chapter markers & next/prev chapter/bookmark (koreader#3389)

koreader#2819 (comment)
+ refactoring code in skimtowidget
+ add chapter markers
+ add next/prev chapter buttons
+ add next/prev bookmark buttons

* [Android] Bump luajit-launcher (more lib loading debug info) (koreader#3401)

* [PocketBook] Use inkview-calls for battery-percentage/charging (koreader#3402)

* PocketBook: Basic device-detection /  PocketBook631 (Touch HD) support (koreader#3403)

Add basic device-detection via libinkview, support PocketBook631. Fixes koreader#3312

* Bump base (sdcv -u patch and framebuffer setViewport dynamically fix) (koreader#3404)

* KeyValuePage: option to align value to the right when half-overflow (koreader#3407)

Applied in FileManagerBookInfo.

* Bump base (sdcv -u patch for android) (koreader#3413)

* [UX] Fix dict title width to not go over CloseButton (koreader#3414)

* Wiki save as epub: close highlight menu when switching document (koreader#3417)

* separate strings for singular and plural (koreader#3420)

* Bump base (sdcv -u patch for android again) (koreader#3421)

* DataStorage: also create data/tessdata and minor string concat performance improvements (koreader#3430)

* [fix] Dictionary no fuzzy search flag (koreader#3433)

Upstream uses `-e` rather than the `-f` that was first introduced in our fork.

References koreader#3429 (comment)

* NewsDownloader: use feed.description as news context instead download full web page (koreader#3426)

Fixes koreader#3425.

* Bump base (updated libk2pdfopt) (koreader#3437)

* kodev: add assert_ret_zero after make android-ndk (koreader#3438)

Fixes koreader#3408.

* [build] Add -debug suffix to KODEBUG builds (koreader#3439)

* NewsDownloader: Remove NewsDownloader files from history  (koreader#3424)

* kodev: added setup_env to run android

Otherwise it didn't pick up on the -debug suffix.

* Bump android-luajit-launcher

* [Android] Wifi status in footer (koreader#3396)

Implemented through the Android API so it's reasonably cheap.

* NewsDownloader: wifi off prompt after download (koreader#3395)

* [UX] Improve ConfigDialog (koreader#3443)

* [CI] Also run coverage on plugins (koreader#3447)

* NewsDownloader: Compatibility for users with previous configuration files (koreader#3445)

* Bump base (fix wpa crash by @civalin) (koreader#3449)

For:
* [fix] filter out more bad lines in wpa scan result (koreader/lj-wpaclient#3)

Fixes koreader#3436

* [CI] apply patch for busted junit testcase time (koreader#3450)

Apply junit testcase time fix so CircleCI can actually do something useful
with the results. This can be removed once there is a busted 2.0.rc13 or final

See lunarmodules/busted@830f175

* [fix, CI] silly typo in busted junit output patch

* README: tiny grammar fix (koreader#3453)

* ConfigDialog improvements 2 (koreader#3455)

+ Fix height for ToggleWidget
+ Able ToggleWidget width more than half of width of screen

* [fix] Disable Highlight button when text is not selected (koreader#3457)

* i10n/README: small stylistic changes

* doc/Unit tests: minor extra explanation (koreader#3462)

* More contrast settings (koreader#3463)

Close: koreader#2133 
More info: koreader#2133
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants