3131from .tools import Address , parse_path , workflow
3232
3333if TYPE_CHECKING :
34- from .client import Session
34+ from .client import InteractionContext , Session
3535
3636
3737RECOVERY_BACK = "\x08 " # backspace character, sent literally
@@ -77,16 +77,17 @@ def apply_settings(
7777
7878 if homescreen and session .version >= HOMESCREEN_STREAMING_MIN_VERSION :
7979 settings .homescreen_length = len (homescreen )
80- response = session .call (settings , expect = messages .DataChunkRequest )
81- _send_chunked_data (session , response , homescreen )
80+ with session .interact () as ctx :
81+ response = ctx .call (settings , expect = messages .DataChunkRequest )
82+ _send_chunked_data (ctx , response , homescreen )
8283 else :
8384 settings .homescreen = homescreen
8485 session .call (settings , expect = messages .Success )
8586 session .refresh_features ()
8687
8788
8889def _send_chunked_data (
89- session : "Session " ,
90+ ctx : "InteractionContext " ,
9091 request : "messages.DataChunkRequest" ,
9192 language_data : bytes ,
9293) -> None :
@@ -96,7 +97,7 @@ def _send_chunked_data(
9697 data_length = response .data_length
9798 data_offset = response .data_offset
9899 chunk = language_data [data_offset : data_offset + data_length ]
99- response = session .call (messages .DataChunkAck (data_chunk = chunk ))
100+ response = ctx .call (messages .DataChunkAck (data_chunk = chunk ))
100101
101102
102103@workflow ()
@@ -108,12 +109,13 @@ def change_language(
108109 data_length = len (language_data )
109110 msg = messages .ChangeLanguage (data_length = data_length , show_display = show_display )
110111
111- response = session .call (msg )
112- if data_length > 0 :
113- response = messages .DataChunkRequest .ensure_isinstance (response )
114- _send_chunked_data (session , response , language_data )
115- else :
116- messages .Success .ensure_isinstance (response )
112+ with session .interact () as ctx :
113+ response = ctx .call (msg )
114+ if data_length > 0 :
115+ response = messages .DataChunkRequest .ensure_isinstance (response )
116+ _send_chunked_data (ctx , response , language_data )
117+ else :
118+ messages .Success .ensure_isinstance (response )
117119 session .refresh_features () # changing the language in features
118120
119121
0 commit comments