- fix SDK location: our install has 2 different versions: under
`tools/bin/apkanalyzer` and `cmdline-tools/latest/bin/apkanalyzer`,
but only the later is functional (trying to use the former raise
some classpath exceptions)
- always use the SDK location, don't try to detect it: it's better to
fail with a more explanatory "apkanalyzer: command not found" error
than having the shell try to run a command with the wrong executable
(`manifest …` because `$(APKANALYZER)` is empty)
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)
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.
(1) Followup to koreader/koreader-base#1921, #12503: when getting a pdf book id in the stats db, check for old records with null terminated authors and title.
Discussed in #11318. There are some other reasons for disappearing old stats for pdf (md5 changes when converting/writing to pdf or something else), hence not closing the issue.
(2) Add Dispatcher action for toggling statistics. Closes#11422.
Rename it to "Dimension units", and make it a radio submenu.
Migrate the previous metric_length setting to this new dimension_units
one.
Update optionsutil to follow it.
Don't mangle string input values when a unit was passed.
(i.e., keep displaying them as their actual string instead of as nil).
(e.g., when current is set to a number, but default is still unset,
which translates to "not set" in showValues).
Attempting to align the numbers on the same column was a fool's errand.
Our default UI font is not monospaced, to begin with,
and to do it right, we'd need to align the rightmost number, not the
leftmost ;).
i.e., T() would need to have much fancier justification capabilities ;).
Or, err, *any* text justification features, really ^^.
We want to be able to set a custom value (i.e., more_options),
because on high-dpi devices, the scaling can lead to pretty large
differences; but more_options on a toggle is ugly and clunky.
So, switch to something more suited to what this actually sets,
which is ultimately an absolute pixel value, like margins.
Add a few more steps on the low end to fill out the bar (and because
that's where I found them most useful on high-dpi devices).