2
0
mirror of https://github.com/koreader/koreader synced 2024-11-13 19:11:25 +00:00
koreader/platform/android/llapp_main.lua
NiLuJe 5871132c25
UI Behavior tweaks (#3983)
* Switch all initial highlights to "fast" update

i.e., everything that does an invert
Plus a few other things that refresh small UI elements onTap
Re #3130

* Tweak refreshtype for a number of widgets:
  * Fix iconbutton dimen
  * Make touchmenu flash on close & initial menu popup. Full-screen on close.
  * Use flashing updates when opening/closing dictionary popup. Full-screen on close.
  * Switch FileManager to partial.
    It's mostly text, and we want flash promotion there.
  * Make configdialog & menu flash on exit
  * Make FLWidget flash on close
  * virtualkeyboard: flash on layout change & popup.
  * Potentially not that great workaround to ensure we actually see the
highlights in the FM's chevrons
  * Flash when closing BookStatus Widget
  * Optimize away a quirk of the dual "fast" update in touchmenu

* Promote updates to flashing slightly more agressively.

* Document what each refreshtype actually does.

With a few guidelines on their optimal usecases.

* Switch remaining scheduleIn(0.0) to nextTick()

* Tighter scheduling timers

Shaving a hundred ms off UI callbacks...

* Cache FFI C Library namespace

* Ask MuPDF to convert pixmaps to BGR on Kobo

Fix #3949

* Mention koxtoolchain in the README

re #3972

* Kindle: Handle *all* fonts via EXT_FONT_DIR instead of bind mounts insanity

* Make black flashes in UI elements user-configurable

(All or nothing).

* Jot down some random KOA2 sysfs path
2018-06-02 12:10:55 -04:00

65 lines
1.8 KiB
Lua

local A = require("android")
A.dl.library_path = A.dl.library_path .. ":" .. A.dir .. "/libs"
A.log_name = 'KOReader'
local ffi = require("ffi")
local C = ffi.C
ffi.cdef[[
char *getenv(const char *name);
int putenv(const char *envvar);
]]
-- check uri of the intent that starts this application
local file = A.jni:context(A.app.activity.vm, function(JNI)
local uri = JNI:callObjectMethod(
JNI:callObjectMethod(
A.app.activity.clazz,
"getIntent",
"()Landroid/content/Intent;"
),
"getData",
"()Landroid/net/Uri;"
)
if uri ~= nil then
local path = JNI:callObjectMethod(
uri,
"getPath",
"()Ljava/lang/String;"
)
return JNI:to_string(path)
end
end)
A.LOGI("intent file path " .. (file or ""))
-- update koreader from ota
local function update()
local new_update = "/sdcard/koreader/ota/koreader.update.tar"
local installed = "/sdcard/koreader/ota/koreader.installed.tar"
local update_file = io.open(new_update, "r")
if update_file ~= nil then
io.close(update_file)
A.showProgress()
if os.execute("tar xf " .. new_update) == 0 then
os.execute("mv " .. new_update .. " " .. installed)
end
A.dismissProgress()
end
end
-- (Disabled, since we hide navbar on start now no need for this hack)
-- run koreader patch before koreader startup
pcall(dofile, "/sdcard/koreader/patch.lua")
-- set proper permission for sdcv
A.execute("chmod", "755", "./sdcv")
A.execute("chmod", "755", "./tar")
A.execute("chmod", "755", "./zsync")
-- set TESSDATA_PREFIX env var
C.putenv("TESSDATA_PREFIX=/sdcard/koreader/data")
-- create fake command-line arguments
arg = {"-d", file or "/sdcard"}
dofile(A.dir.."/reader.lua")