android: fix ko paths when primary storage is a SD card

pull/5493/head
Martín Fernández 5 years ago committed by Frans de Jonge
parent 40ba01fd72
commit 87334801ea

@ -603,7 +603,7 @@ function FileManager:goHome()
elseif Device:isCervantes() then
home_dir = "/mnt/public"
elseif Device:isAndroid() then
home_dir = "/sdcard"
home_dir = Device.external_storage()
end
if home_dir then

@ -10,7 +10,7 @@ local filemanagerutil = {}
function filemanagerutil.getDefaultDir()
if Device:isAndroid() then
return "/sdcard"
return Device.external_storage
elseif Device:isCervantes() then
return "/mnt/public"
elseif Device:isKindle() then

@ -69,6 +69,7 @@ local Device = Generic:new{
hasLightLevelFallback = yes,
canRestart = no,
firmware_rev = android.app.activity.sdkVersion,
external_storage = android.getExternalStoragePath,
display_dpi = android.lib.AConfiguration_getDensity(android.app.config),
isHapticFeedbackEnabled = yes,
hasClipboard = yes,

@ -65,7 +65,7 @@ end
local function getExternalFontDir()
if CanvasContext.isAndroid() then
return ANDROID_FONT_DIR
return require("frontend/ui/elements/font_settings"):getAndroidPath()
elseif CanvasContext.isDesktop() then
return require("frontend/ui/elements/font_settings"):getPath()
else

@ -3,7 +3,7 @@ local logger = require("logger")
local util = require("util")
local _ = require("gettext")
--[[ Font settings for desktop linux and mac ]]--
--[[ Font settings for desktop linux, mac and android ]]--
local function getUserDir()
local home = os.getenv("HOME")
@ -54,6 +54,20 @@ function FontSettings:getPath()
return getUserDir()
end
function FontSettings:getAndroidPath()
local A, android = pcall(require, "android")
if not A then return end
local system_path = "/system/fonts"
local user_path = android.getExternalStoragePath()
if user_path == "Unknown" then
-- unable to identify external storage. Use defaults
return system_path..";".."/sdcard/koreader/fonts"
else
-- use the external storage identified by the app
return system_path..";"..user_path.."/koreader/fonts"
end
end
function FontSettings:getMenuTable()
return {
text = _("Font settings"),

@ -12,8 +12,11 @@ if file ~= nil then
android.LOGI("intent file path " .. file)
end
-- path to primary external storage partition
local path = android.getExternalStoragePath()
-- run koreader patch before koreader startup
pcall(dofile, "/sdcard/koreader/patch.lua")
pcall(dofile, path.."/koreader/patch.lua")
-- Set proper permission for binaries.
--- @todo Take care of this on extraction instead.
@ -23,14 +26,14 @@ android.execute("chmod", "755", "./tar")
android.execute("chmod", "755", "./zsync")
-- set TESSDATA_PREFIX env var
C.setenv("TESSDATA_PREFIX", "/sdcard/koreader/data", 1)
C.setenv("TESSDATA_PREFIX", path.."/koreader/data", 1)
-- create fake command-line arguments
-- luacheck: ignore 121
if android.isDebuggable() then
arg = {"-d", file or "/sdcard"}
arg = {"-d", file or path}
else
arg = {file or "/sdcard"}
arg = {file or path}
end
dofile(android.dir.."/reader.lua")

@ -1 +1 @@
Subproject commit 17eb5a59a201c2c004f9757047644a4c99bc6efd
Subproject commit e5b24020690c1c5ae25cbbc5a3a47313f0bbe382
Loading…
Cancel
Save