66
77import lvgl as lv
88import machine
9+ from message_input_activity import MessageInputActivity
910from micropython import const
10- from mpos import Activity , MposKeyboard , TaskManager
11+ from mpos import Activity , Intent , TaskManager
1112from mpos .time import localtime
1213
1314try :
@@ -33,24 +34,16 @@ def pformat_mac(mac):
3334class EspNowChat (Activity ):
3435 def onCreate (self ):
3536 main_content = lv .obj ()
36- main_content .set_flex_flow (lv .FLEX_FLOW .COLUMN )
37- main_content .set_style_pad_gap (10 , 0 )
38-
39- self .input_textarea = lv .textarea (main_content )
40- self .input_textarea .set_placeholder_text ("Message input..." )
41- self .input_textarea .set_one_line (True )
42- self .input_textarea .set_style_text_font (lv .font_montserrat_16 , lv .PART .MAIN )
43- self .input_textarea .set_width (lv .pct (100 ))
44- self .input_textarea .add_event_cb (self .show_keyboard , lv .EVENT .CLICKED , None )
45-
46- self .keyboard = MposKeyboard (main_content )
47- self .keyboard .set_textarea (self .input_textarea )
48- self .keyboard .add_event_cb (self .keyboard_cb , lv .EVENT .READY , None )
49- self .keyboard .add_flag (lv .obj .FLAG .HIDDEN )
5037
5138 self .messages = lv .label (main_content )
5239 self .messages .set_style_text_font (lv .font_montserrat_14 , 0 )
5340
41+ self .write_btn = lv .button (main_content )
42+ write_label = lv .label (self .write_btn )
43+ write_label .set_text ("Send Message" )
44+ self .write_btn .align (lv .ALIGN .BOTTOM_RIGHT , - 10 , - 10 )
45+ self .write_btn .add_event_cb (self .open_message_input , lv .EVENT .CLICKED , None )
46+
5447 # Buffer to store and display the latest 20 messages:
5548 self .messages_buffer = deque ((), 20 )
5649
@@ -80,21 +73,20 @@ def info(self, text):
8073 hour , minute , second = now [3 ], now [4 ], now [5 ]
8174 message = f"{ hour :02} :{ minute :02} :{ second :02} { text } "
8275 print (message )
83- self .messages_buffer .appendleft (message )
76+ self .messages_buffer .append (message )
8477 self .messages .set_text ("\n " .join (self .messages_buffer ))
8578
86- def keyboard_cb (self , event ):
87- message = self .input_textarea .get_text ()
88- if not message :
89- print ("Ignore empty input" )
90- else :
91- self .input_textarea .set_text ("" )
92- print (f"Create task to send { message = } ..." )
93- TaskManager .create_task (self .send_messages (message ))
79+ def open_message_input (self , event ):
80+ intent = Intent (activity_class = MessageInputActivity )
81+ self .startActivityForResult (intent , self .on_message_input_result )
9482
95- def show_keyboard (self , event ):
96- print ("Show keyboard" )
97- self .keyboard .remove_flag (lv .obj .FLAG .HIDDEN )
83+ def on_message_input_result (self , result : dict ):
84+ print (f"on_message_input_result: { result = } " )
85+ if not result :
86+ return
87+ if message := result .get ("data" ):
88+ print (f"Create task to send { message = } " )
89+ TaskManager .create_task (self .send_messages (message ))
9890
9991 async def send_messages (self , message ):
10092 self .info (f"Sending: { message } ({ self .own_id } )" )
0 commit comments