@@ -40,6 +40,7 @@ class WiFi(Activity):
4040scan_button_label = None
4141
4242def onCreate (self ):
43+ print ("wifi.py onCreate" )
4344main_screen = lv .obj ()
4445main_screen .set_style_pad_all (15 ,0 )
4546print ("create_ui: Creating list widget" )
@@ -62,6 +63,7 @@ def onCreate(self):
6263self .setContentView (main_screen )
6364
6465def onResume (self ,screen ):
66+ print ("wifi.py onResume" )
6567global access_points
6668access_points = mpos .config .SharedPreferences ("com.micropythonos.system.wifiservice" ).get_dict ("access_points" )
6769self .keep_running = True
@@ -224,6 +226,27 @@ def attempt_connecting_thread(self, ssid, password):
224226lv .async_call (lambda l :self .refresh_list (),None )
225227
226228
229+ def print_events (event ):
230+ event_code = event .get_code ()
231+ #print(f"got event {event_code}")
232+ # Ignore:
233+ # =======
234+ # 19: HIT_TEST
235+ # COVER_CHECK
236+ # DRAW_MAIN
237+ # DRAW_MAIN_BEGIN
238+ # DRAW_MAIN_END
239+ # DRAW_POST
240+ # DRAW_POST_BEGIN
241+ # DRAW_POST_END
242+ # 39: CHILD_CHANGED
243+ # GET_SELF_SIZE
244+ if event_code not in [19 ,23 ,25 ,26 ,27 ,28 ,29 ,30 ,39 ,49 ]:
245+ name = mpos .ui .get_event_name (event_code )
246+ print (f"lv_event_t: code={ event_code } , name={ name } " )
247+ target = event .get_target ()
248+ print (f"target:{ target } " )
249+
227250
228251
229252class PasswordPage (Activity ):
@@ -250,8 +273,9 @@ def onCreate(self):
250273self .password_ta .set_size (200 ,30 )
251274self .password_ta .set_one_line (True )
252275self .password_ta .align_to (label ,lv .ALIGN .OUT_BOTTOM_MID ,5 ,0 )
253- self .password_ta .add_event_cb (lambda * args :mpos .ui .anim .smooth_show (self .keyboard ),lv .EVENT .CLICKED ,None )# it might be focused, but keyboard hidden (because ready/cancel clicked)
254- self .password_ta .add_event_cb (lambda * args :mpos .ui .anim .smooth_hide (self .keyboard ),lv .EVENT .DEFOCUSED ,None )
276+ self .password_ta .add_event_cb (lambda * args :self .show_keyboard (),lv .EVENT .CLICKED ,None )# it might be focused, but keyboard hidden (because ready/cancel clicked)
277+ self .password_ta .add_event_cb (lambda * args :self .show_keyboard (),lv .EVENT .FOCUSED ,None )
278+ #self.password_ta.add_event_cb(lambda *args: self.hide_keyboard(), lv.EVENT.DEFOCUSED, None) # doesn't work for non-touchscreen (Keypad) control because then focus needs to go to the lv_keyboard widget
255279print ("PasswordPage: Creating Connect button" )
256280self .connect_button = lv .button (password_page )
257281self .connect_button .set_size (100 ,40 )
@@ -277,14 +301,15 @@ def onCreate(self):
277301self .keyboard .align (lv .ALIGN .BOTTOM_MID ,0 ,0 )
278302self .keyboard .set_textarea (self .password_ta )
279303self .keyboard .set_style_min_height (160 ,0 )
280- self .keyboard .add_event_cb (lambda * args :mpos . ui . anim . smooth_hide ( self .keyboard ),lv .EVENT .READY ,None )
281- self .keyboard .add_event_cb (lambda * args :mpos . ui . anim . smooth_hide ( self .keyboard ),lv .EVENT .CANCEL ,None )
304+ self .keyboard .add_event_cb (lambda * args :self .hide_keyboard ( ),lv .EVENT .READY ,None )
305+ self .keyboard .add_event_cb (lambda * args :self .hide_keyboard ( ),lv .EVENT .CANCEL ,None )
282306self .keyboard .add_flag (lv .obj .FLAG .HIDDEN )
307+ self .keyboard .add_event_cb (print_events ,lv .EVENT .ALL ,None )
283308print ("PasswordPage: Loading password page" )
284309self .setContentView (password_page )
285310
286311def onStop (self ,screen ):
287- mpos . ui . anim . smooth_hide ( self .keyboard )
312+ self .hide_keyboard ( )
288313
289314def connect_cb (self ,event ):
290315global access_points
@@ -304,6 +329,20 @@ def cancel_cb(self, event):
304329print ("cancel_cb: Cancel button clicked" )
305330self .finish ()
306331
332+ def show_keyboard (self ):
333+ self .connect_button .add_flag (lv .obj .FLAG .HIDDEN )
334+ self .cancel_button .add_flag (lv .obj .FLAG .HIDDEN )
335+ mpos .ui .anim .smooth_show (self .keyboard )
336+ focusgroup = lv .group_get_default ()
337+ focusgroup .focus_next ()# move the focus to the keypad
338+
339+ def hide_keyboard (self ):
340+ self .connect_button .remove_flag (lv .obj .FLAG .HIDDEN )
341+ self .cancel_button .remove_flag (lv .obj .FLAG .HIDDEN )
342+ focusgroup = lv .group_get_default ()
343+ focusgroup .focus_prev ()# move the focus to the close button, otherwise it goes back to the textarea, which opens the keyboard again
344+ mpos .ui .anim .smooth_hide (self .keyboard )
345+
307346@staticmethod
308347def setPassword (ssid ,password ):
309348global access_points