---
-- @package   eg4-crank-ui
-- @file      startup-screens.lua
-- @brief     Functionality supporting the startup screens and driver login
--
-- @copyright Copyright 2019 Hanover Displays Limited.
-- @license   This program is the confidential and proprietary product of
--            Hanover Displays Limited. Any unauthorised use, reproduction or
--            transfer of this program is strictly prohibited. (Subject to 
--            limited distribution and restricted disclosure only.) All 
--            rights reserved.                                              
--
--

local startup_delay_timer_expired = false
local startup_complete_received = false

---
--- @brief  Handle the startup complete event from the backend
---
function CBStartupComplete()
  if startup_complete_received ~= true then
    startup_complete_received = true
    if startup_delay_timer_expired then
      CBDriverLoggedOut()
    end
  end
end

---
--- @brief  Handle the startup delay timer expiry
---
function CBStartupDelayTimerExpired() 
  startup_delay_timer_expired = true
  if startup_complete_received then
    CBDriverLoggedOut()
  end
end

---
--- @brief  Handles starting the driver login
---
function CBStartDriverLogin()
  if sbsettings.test_mode or (startup_complete_received and startup_delay_timer_expired) then
    if sbsettings.get_driver_id_entry() == 1 then
      gre.set_value("no_activity_screen", "bd_driver_id") 
      ScreenTransition("bd_driver_id")
    else
      gre.set_value("no_activity_screen", "bd_login") 
      gre.set_value("bd_login.back_screen", "bd_login")
      StartBusDriverOnlyPasswordLogin("bd_login")
    end
  end
end

---
--- @brief  Update the splash screen image.
--- @param gre#context mapargs
---
function CBUpdateSplashImage(mapargs)
  if mapargs.context_event == "update_splash_image" then
    sbsettings.set_show_custom_splash(1)
  end

  local SPLASH_IMAGE_FILEPATH = DATA_FOLDER .. "splash.png"
  
  if sbsettings.get_show_custom_splash() == 1 and fileinfo:isfile(SPLASH_IMAGE_FILEPATH) then 
    gre.set_group_attrs("default_splash_layer.hanover_logo_group", { hidden = 1})
    gre.set_value("splash_image", SPLASH_IMAGE_FILEPATH); 
  else
    gre.set_group_attrs("default_splash_layer.hanover_logo_group", { hidden = 0})
    gre.set_value("splash_image", ""); 
  end
  gre.dump_resource("image", SPLASH_IMAGE_FILEPATH)
  gre.redraw()
end

-- EOF --
