You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
WiFiConf: move password to own page
This commit is contained in:
@@ -10,7 +10,8 @@ access_points={}
|
||||
selected_ssid=None
|
||||
list=None
|
||||
password_ta=None
|
||||
popup=None
|
||||
password_page=None
|
||||
main_subwindow=None
|
||||
|
||||
def load_config():
|
||||
print("load_config: Checking for /data directory")
|
||||
@@ -85,43 +86,62 @@ def select_ssid_cb(event,ssid):
|
||||
global selected_ssid
|
||||
print(f"select_ssid_cb: SSID selected: {ssid}")
|
||||
selected_ssid=ssid
|
||||
show_password_popup()
|
||||
show_password_page()
|
||||
|
||||
def show_password_popup():
|
||||
global popup,password_ta
|
||||
print("show_password_popup: Creating password popup")
|
||||
popup=lv.obj(subwindow)
|
||||
popup.set_size(260,200)
|
||||
popup.center()
|
||||
popup.add_flag(lv.obj.FLAG.CLICKABLE)
|
||||
print(f"show_password_popup: Creating label for SSID: {selected_ssid}")
|
||||
label=lv.label(popup)
|
||||
def keyboard_cb(event):
|
||||
print("keyboard_cb: Keyboard event triggered")
|
||||
keyboard=event.get_target()
|
||||
code=event.get_code()
|
||||
if code==lv.EVENT.READY:
|
||||
print("keyboard_cb: OK/Checkmark clicked, hiding keyboard")
|
||||
keyboard.set_height(0)
|
||||
keyboard.clear_flag(lv.obj.FLAG.CLICKABLE)
|
||||
|
||||
def password_ta_cb(event):
|
||||
print("password_ta_cb: Password textarea clicked")
|
||||
global password_page
|
||||
keyboard=password_page.get_child_by_type(lv.keyboard)
|
||||
print("password_ta_cb: Showing keyboard")
|
||||
keyboard.set_height(100)
|
||||
keyboard.add_flag(lv.obj.FLAG.CLICKABLE)
|
||||
|
||||
def show_password_page():
|
||||
global password_page,password_ta
|
||||
print("show_password_page: Creating new password page")
|
||||
password_page=lv.obj()
|
||||
password_page.set_size(lv.pct(100),lv.pct(100))
|
||||
print(f"show_password_page: Creating label for SSID: {selected_ssid}")
|
||||
label=lv.label(password_page)
|
||||
label.set_text(f"Enter password for {selected_ssid}")
|
||||
label.align(lv.ALIGN.TOP_MID,0,10)
|
||||
print("show_password_popup: Creating password textarea")
|
||||
password_ta=lv.textarea(popup)
|
||||
print("show_password_page: Creating password textarea")
|
||||
password_ta=lv.textarea(password_page)
|
||||
password_ta.set_size(220,40)
|
||||
password_ta.align(lv.ALIGN.CENTER,0,-20)
|
||||
password_ta.set_placeholder_text("Password")
|
||||
print("show_password_popup: Creating keyboard")
|
||||
keyboard=lv.keyboard(popup)
|
||||
keyboard.set_size(260,100)
|
||||
password_ta.add_event_cb(password_ta_cb,lv.EVENT.CLICKED,None)
|
||||
print("show_password_page: Creating keyboard (hidden by default)")
|
||||
keyboard=lv.keyboard(password_page)
|
||||
keyboard.set_size(260,0)
|
||||
keyboard.align(lv.ALIGN.BOTTOM_MID,0,0)
|
||||
keyboard.set_textarea(password_ta)
|
||||
print("show_password_popup: Creating Connect button")
|
||||
connect_button=lv.button(popup)
|
||||
keyboard.add_event_cb(keyboard_cb,lv.EVENT.READY,None)
|
||||
print("show_password_page: Creating Connect button")
|
||||
connect_button=lv.button(password_page)
|
||||
connect_button.set_size(100,40)
|
||||
connect_button.align(lv.ALIGN.BOTTOM_LEFT,10,-50)
|
||||
connect_button.align(lv.ALIGN.BOTTOM_LEFT,10,-10)
|
||||
label=lv.label(connect_button)
|
||||
label.set_text("Connect")
|
||||
connect_button.add_event_cb(connect_cb,lv.EVENT.CLICKED,None)
|
||||
print("show_password_popup: Creating Cancel button")
|
||||
cancel_button=lv.button(popup)
|
||||
print("show_password_page: Creating Cancel button")
|
||||
cancel_button=lv.button(password_page)
|
||||
cancel_button.set_size(100,40)
|
||||
cancel_button.align(lv.ALIGN.BOTTOM_RIGHT,-10,-50)
|
||||
cancel_button.align(lv.ALIGN.BOTTOM_RIGHT,-10,-10)
|
||||
label=lv.label(cancel_button)
|
||||
label.set_text("Cancel")
|
||||
cancel_button.add_event_cb(cancel_cb,lv.EVENT.CLICKED,None)
|
||||
print("show_password_page: Loading password page")
|
||||
lv.screen_load(password_page)
|
||||
|
||||
def connect_cb(event):
|
||||
global access_points
|
||||
@@ -131,19 +151,24 @@ def connect_cb(event):
|
||||
access_points[selected_ssid]=password
|
||||
print(f"connect_cb: Updated access_points: {access_points}")
|
||||
save_config()
|
||||
print("connect_cb: Deleting popup")
|
||||
popup.delete()
|
||||
print("connect_cb: Deleting password page")
|
||||
password_page.delete()
|
||||
print("connect_cb: Restoring main subwindow")
|
||||
lv.screen_load(main_subwindow)
|
||||
print(f"connect_cb: Attempting connection to {selected_ssid}")
|
||||
success=attempt_connecting(selected_ssid,password)
|
||||
print(f"connect_cb: Connection {'succeeded' if success else 'failed'}")
|
||||
refresh_list()
|
||||
|
||||
def cancel_cb(event):
|
||||
print("cancel_cb: Cancel button clicked, deleting popup")
|
||||
popup.delete()
|
||||
print("cancel_cb: Cancel button clicked, deleting password page")
|
||||
password_page.delete()
|
||||
print("cancel_cb: Restoring main subwindow")
|
||||
lv.screen_load(main_subwindow)
|
||||
|
||||
def create_ui(subwindow):
|
||||
global list
|
||||
global list,main_subwindow
|
||||
main_subwindow=subwindow
|
||||
print("create_ui: Creating list widget")
|
||||
list=lv.list(subwindow)
|
||||
list.set_size(280,300)
|
||||
|
||||
Reference in New Issue
Block a user