improve homescreen lib

philcrump-phil-add-ntp
Marek Ventur 2018-08-06 21:45:35 +01:00
parent 7936cbf3a7
commit 8904484cb9
2 changed files with 29 additions and 22 deletions

View File

@ -37,10 +37,8 @@ ugfx.set_default_font(ugfx.FONT_MEDIUM)
status = ugfx.Label(0, 130, ugfx.width(), 40, "", justification=ugfx.Label.CENTERTOP)
# update loop
def tick():
while True:
status.text("wifi: %s%%\nbattery: %s%%" % (int(wifi_strength() * 100), int(battery() * 100)))
time.sleep_ms(500)
loop(tick)
sleep(500)

View File

@ -19,30 +19,39 @@ They also *may*:
___license___ = "MIT"
___dependencies___ = ["database", "buttons", "random", "app"]
import database, ugfx, random, buttons, time
import database, ugfx, random, buttons, time, select
from app import App
def init(color = 0xFFFFFF):
_state = None
def init(enable_menu_button = True):
global _state
_state = {"menu": False}
ugfx.init()
ugfx.orientation(90)
ugfx.clear(ugfx.html_color(color))
# A special loop that exits on menu being pressed
def loop(func, interval = 500):
buttons.init()
state = {"pressed": False} # This is a terrible hack
def irp(t):
state["pressed"] = True
buttons.enable_interrupt("BTN_MENU", irp, on_release = True)
while not state["pressed"]:
func()
time.sleep_ms(interval)
buttons.disable_interrupt("BTN_MENU")
App("launcher").boot()
def menu():
ugfx.clear()
if enable_menu_button:
buttons.init()
buttons.enable_interrupt("BTN_MENU", lambda t: set_state("menu"), on_release = True)
def set_state(key, value = True):
global _state
_state[key] = value
def clean_up():
buttons.disable_all_interrupt()
def check():
global _state
if _state["menu"]:
clean_up()
App("launcher").boot()
def sleep(interval = 500):
check()
time.sleep_ms(interval) # todo: deep sleep
check()
def name(default = None):
return database.get("homescreen.name", default)