55 lines
1.3 KiB
Lua
55 lines
1.3 KiB
Lua
-- Navigation System for Virtual Smartphone
|
|
-- Handles screen transitions and state management
|
|
|
|
-- Screen registry
|
|
local screens = {
|
|
home = "screens/home.rml",
|
|
lock = "screens/lock.rml",
|
|
dialer = "screens/dialer.rml",
|
|
contacts = "screens/contacts.rml",
|
|
messages = "screens/messages.rml",
|
|
settings = "screens/settings.rml",
|
|
browser = "screens/browser.rml"
|
|
}
|
|
|
|
-- Current screen state
|
|
local current_screen = "home"
|
|
local screen_history = {}
|
|
|
|
-- Navigate to a screen
|
|
function navigateTo(screen_name)
|
|
if screens[screen_name] then
|
|
-- Add current screen to history
|
|
table.insert(screen_history, current_screen)
|
|
current_screen = screen_name
|
|
|
|
-- Load the new document
|
|
-- Note: In RmlUi, we'd typically use document loading
|
|
print("Navigating to: " .. screen_name)
|
|
else
|
|
print("Unknown screen: " .. screen_name)
|
|
end
|
|
end
|
|
|
|
-- Go back to previous screen
|
|
function goBack()
|
|
if #screen_history > 0 then
|
|
current_screen = table.remove(screen_history)
|
|
print("Going back to: " .. current_screen)
|
|
else
|
|
print("No history to go back to")
|
|
end
|
|
end
|
|
|
|
-- Get current screen name
|
|
function getCurrentScreen()
|
|
return current_screen
|
|
end
|
|
|
|
-- Clear navigation history
|
|
function clearHistory()
|
|
screen_history = {}
|
|
end
|
|
|
|
print("Navigation system initialized")
|