88settings_screen = None
99
1010
11-
1211# Settings screen implementation
1312class SettingsScreen (lv .obj ):
1413 def __init__ (self ):
@@ -20,9 +19,9 @@ def __init__(self):
2019 {"title" : "LNBits Read/Invoice Key" , "key" : "lnbits_readkey" , "value_label" : None },
2120 {"title" : "NWC URL" , "key" : "nwc_url" , "value_label" : None },
2221 ]
23- self .keyboard = None # Global reference for keyboard
24- self .textarea = None # Global reference for textarea
25- self .msgbox = None # Global reference for msgbox
22+ self .keyboard = None
23+ self .textarea = None
24+ self .msgbox = None
2625 self .create_ui ()
2726
2827 def create_ui (self ):
@@ -39,7 +38,7 @@ def create_ui(self):
3938 setting_cont .set_width (lv .pct (100 ))
4039 setting_cont .set_height (lv .SIZE_CONTENT )
4140 setting_cont .set_style_border_width (1 , 0 )
42- setting_cont .set_style_border_color (lv .color_hex (0xCCCCCC ), 0 )
41+ # setting_cont.set_style_border_color(lv.color_hex(0xCCCCCC), 0)
4342 setting_cont .set_style_border_side (lv .BORDER_SIDE .BOTTOM , 0 )
4443 setting_cont .set_style_pad_all (8 , 0 )
4544 setting_cont .add_flag (lv .obj .FLAG .CLICKABLE )
@@ -48,8 +47,8 @@ def create_ui(self):
4847 title = lv .label (setting_cont )
4948 title .set_text (setting ["title" ])
5049 title .set_style_text_font (lv .font_montserrat_16 , 0 )
51- title .set_style_text_color (lv .color_hex (0x000000 ), 0 )
52- title .set_style_text_decor (lv .TEXT_DECOR .NONE , 0 )
50+ # title.set_style_text_color(lv.color_hex(0x000000), 0)
51+ # title.set_style_text_decor(lv.TEXT_DECOR.NONE, 0)
5352 title .set_pos (0 , 0 )
5453
5554 # Value label (smaller, below title)
@@ -75,17 +74,17 @@ def create_ui(self):
7574 #self.keyboard.add_event_cb(self.keyboard_value_changed_cb,lv.EVENT.VALUE_CHANGED,None)
7675
7776
78- def hide_keyboard (self ):
77+ def hide_keyboard (self , event = None ):
7978 print ("hide_keyboard: hiding keyboard" )
8079 self .keyboard .add_flag (lv .obj .FLAG .HIDDEN )
8180
82- def show_keyboard (self ):
81+ def show_keyboard (self , event ):
8382 # Show keyboard:
8483 print ("showing keyboard" )
8584 self .keyboard .remove_flag (lv .obj .FLAG .HIDDEN )
8685 self .keyboard .set_textarea (self .textarea )
8786
88- def keyboard_cb (self , event ):
87+ def keyboard_cb (self , event = None ):
8988 print ("keyboard_cb: Keyboard event triggered" )
9089 code = event .get_code ()
9190 if code == lv .EVENT .READY or code == lv .EVENT .CANCEL :
@@ -126,10 +125,9 @@ def open_edit_popup(self, setting):
126125 self .textarea .set_width (lv .pct (100 ))
127126 self .textarea .set_height (lv .SIZE_CONTENT )
128127 self .textarea .set_text (self .prefs .get_string (setting ["key" ], "" ))
129- #self.textarea.add_event_cb(self.show_keyboard, lv.EVENT.CLICKED, None)
130- #self.textarea.add_event_cb(self.show_keyboard, lv.EVENT.FOCUSED, None)
131- #self.textarea.add_event_cb(self.hide_keyboard, lv.EVENT.DEFOCUSED, None)
132- self .textarea .add_event_cb (self .textarea_cb , lv .EVENT .ALL , None )
128+ self .textarea .add_event_cb (self .show_keyboard , lv .EVENT .CLICKED , None )
129+ self .textarea .add_event_cb (self .show_keyboard , lv .EVENT .FOCUSED , None )
130+ self .textarea .add_event_cb (self .hide_keyboard , lv .EVENT .DEFOCUSED , None )
133131
134132 # Button container
135133 btn_cont = lv .obj (content )
@@ -157,15 +155,6 @@ def open_edit_popup(self, setting):
157155 cancel_label .center ()
158156 cancel_btn .add_event_cb (self .close_popup , lv .EVENT .CLICKED , None )
159157
160- def textarea_cb (self , event ):
161- code = event .get_code ()
162- event_name = mpos .ui .get_event_name (code )
163- print (f"textarea cb code { code } has event_name { event_name } " )
164- if code == lv .EVENT .CLICKED or code == lv .EVENT .FOCUSED :
165- self .show_keyboard ()
166- elif code == lv .EVENT .DEFOCUSED :
167- self .hide_keyboard ()
168-
169158 def save_setting (self , setting ):
170159 if self .textarea :
171160 new_value = self .textarea .get_text ()
@@ -216,8 +205,9 @@ def janitor_cb(timer):
216205 if lv .screen_active () != appscreen and lv .screen_active () != settings_screen :
217206 print ("app backgrounded, cleaning up..." )
218207 janitor .delete ()
219- # No cleanups to do, but in a real app, you might stop timers, deinitialize hardware devices you used, close network connections, etc.
220-
208+ if settings_screen :
209+ settings_screen .delete ()
210+
221211janitor = lv .timer_create (janitor_cb , 1000 , None )
222212
223213build_main_ui ()
0 commit comments