screen orientation won't change when going into filemanager

and filemanager remembers screen orientation at exit
This should fix #1338.
pull/1408/head
chrox 9 years ago
parent ca6b3d7e33
commit f22a53affd

@ -155,6 +155,20 @@ function FileManager:init()
self:handleEvent(Event:new("SetDimensions", self.dimen))
end
function FileManager:resetDimen(dimen)
self.dimen = dimen
-- backup the root path and path items
self.root_path = self.file_chooser.path
local path_items_backup = {}
for k, v in pairs(self.file_chooser.path_items) do
path_items_backup[k] = v
end
-- reinit filemanager
self:init()
self.file_chooser.path_items = path_items_backup
self:onRefresh()
end
function FileManager:toggleHiddenFiles()
self.file_chooser:toggleHiddenFiles()
G_reader_settings:saveSetting("show_hidden", self.file_chooser.show_hidden)
@ -172,6 +186,7 @@ end
function FileManager:onClose()
DEBUG("close filemanager")
G_reader_settings:saveSetting("fm_screen_mode", Screen:getScreenMode())
UIManager:close(self)
if self.onExit then
self:onExit()
@ -206,15 +221,17 @@ function FileManager:showFiles(path)
DEBUG("show home page")
path = path or G_reader_settings:readSetting("lastdir") or self:getDefaultDir()
G_reader_settings:saveSetting("lastdir", path)
UIManager:show(FileManager:new{
self:restoreScreenMode()
local file_manager = FileManager:new{
dimen = Screen:getSize(),
root_path = path,
onExit = function()
self.is_running = false
self.instance = nil
UIManager:quit()
end
})
self.is_running = true
}
UIManager:show(file_manager)
self.instance = file_manager
end
function FileManager:copyFile(file)

@ -40,11 +40,10 @@ function ReaderMenu:init()
callback = function()
self:onTapCloseMenu()
self.ui:onClose()
-- screen orientation is independent for docview and filemanager
-- so we need to restore the screen mode for the filemanager
local FileManager = require("apps/filemanager/filemanager")
FileManager:restoreScreenMode()
if not FileManager.is_running then
if FileManager.instance then
FileManager.instance:resetDimen(Screen:getSize())
else
local lastdir = nil
local last_file = G_reader_settings:readSetting("lastfile")
if last_file then

@ -26,7 +26,7 @@ local FileChooser = Menu:extend{
strcoll = strcoll,
collate = "strcoll", -- or collate = "access",
reverse_collate = false,
path_pages = {}, -- store last browsed location(page) for each path
path_items = {}, -- store last browsed location(item index) for each path
}
function FileChooser:init()
@ -150,12 +150,11 @@ end
function FileChooser:updateItems(select_number)
Menu.updateItems(self, select_number) -- call parent's updateItems()
self.path_pages[self.path] = self.page
self.path_items[self.path] = (self.page - 1) * self.perpage + (select_number or 1)
end
function FileChooser:refreshPath()
self.page = self.path_pages[self.path] or 1
self:swithItemTable(nil, self:genItemTableFromPath(self.path), -1)
self:swithItemTable(nil, self:genItemTableFromPath(self.path), self.path_items[self.path])
end
function FileChooser:changeToPath(path)

Loading…
Cancel
Save