@@ -31,6 +31,7 @@ class WiFi(Activity):
3131keep_running = True
3232busy_scanning = False
3333busy_connecting = False
34+ error_timer = None
3435
3536# Widgets:
3637aplist = None
@@ -43,7 +44,7 @@ def onCreate(self):
4344main_screen .set_style_pad_all (15 ,0 )
4445print ("create_ui: Creating list widget" )
4546self .aplist = lv .list (main_screen )
46- self .aplist .set_size (lv .pct (100 ),lv .pct (80 ))
47+ self .aplist .set_size (lv .pct (100 ),lv .pct (75 ))
4748self .aplist .align (lv .ALIGN .TOP_MID ,0 ,0 )
4849print ("create_ui: Creating error label" )
4950self .error_label = lv .label (main_screen )
@@ -64,24 +65,30 @@ def onResume(self, screen):
6465global access_points
6566access_points = mpos .config .SharedPreferences ("com.micropythonos.system.wifiservice" ).get_dict ("access_points" )
6667self .keep_running = True
67- if mpos . wifi . WifiService . wifi_busy == False :
68- mpos .wifi .WifiService .wifi_busy = True
69- if len ( self . ssids ) == 0 :
68+ if len ( self . ssids ) == 0 :
69+ if mpos .wifi .WifiService .wifi_busy == False :
70+ mpos . wifi . WifiService . wifi_busy = True
7071self .start_scan_networks ()
71- else :
72- self .show_error ("Wifi is busy, please try again later." )
72+ else :
73+ self .show_error ("Wifi is busy, please try again later." )
7374
7475def onStop (self ,screen ):
7576self .keep_running = False
77+ if self .error_timer :
78+ self .error_timer .delete ()
7679
7780def show_error (self ,message ):
7881if self .keep_running :# called from slow threads so might already have stopped
7982# Schedule UI updates because different thread
8083print (f"show_error: Displaying error:{ message } " )
8184lv .async_call (lambda l :self .error_label .set_text (message ),None )
8285lv .async_call (lambda l :self .error_label .remove_flag (lv .obj .FLAG .HIDDEN ),None )
83- timer = lv .timer_create (lambda t :self .error_label .add_flag (lv .obj .FLAG .HIDDEN ),5000 ,None )
84- timer .set_repeat_count (1 )
86+ self .error_timer = lv .timer_create (self .hide_error ,5000 ,None )
87+ self .error_timer .set_repeat_count (1 )
88+
89+ def hide_error (self ,timer ):
90+ if self .keep_running :
91+ self .error_label .add_flag (lv .obj .FLAG .HIDDEN )
8592
8693def scan_networks_thread (self ):
8794global have_network
@@ -268,12 +275,16 @@ def onCreate(self):
268275self .keyboard = lv .keyboard (password_page )
269276self .keyboard .align (lv .ALIGN .BOTTOM_MID ,0 ,0 )
270277self .keyboard .set_textarea (self .password_ta )
278+ self .keyboard .set_style_min_height (160 ,0 )
271279self .keyboard .add_event_cb (lambda * args :mpos .ui .anim .smooth_hide (self .keyboard ),lv .EVENT .READY ,None )
272280self .keyboard .add_event_cb (lambda * args :mpos .ui .anim .smooth_hide (self .keyboard ),lv .EVENT .CANCEL ,None )
273281self .keyboard .add_flag (lv .obj .FLAG .HIDDEN )
274282print ("PasswordPage: Loading password page" )
275283self .setContentView (password_page )
276284
285+ def onStop (self ,screen ):
286+ mpos .ui .anim .smooth_hide (self .keyboard )
287+
277288def connect_cb (self ,event ):
278289global access_points
279290print ("connect_cb: Connect button clicked" )