@@ -75,6 +75,22 @@ def add_task_to_enable(enable_task):
7575 communicate .starting_emulator .emit (True , self .tr (f'Start failed: { e } ' ), 0 )
7676 return False
7777
78+ def _wait_until_device_ready (self ):
79+ wait_until = time .time () + self .start_timeout
80+ while not self .exit_event .is_set ():
81+ og .device_manager .do_refresh (True )
82+ error = self .check_device_error ()
83+ if error is None :
84+ return True
85+ logger .error (f'waiting for game to start error { error } ' )
86+ remaining_time = wait_until - time .time ()
87+ if remaining_time <= 0 :
88+ communicate .starting_emulator .emit (True , self .tr ('Start game timeout!' ), 0 )
89+ return False
90+ communicate .starting_emulator .emit (False , None , int (remaining_time ))
91+ time .sleep (2 )
92+ return False
93+
7894 def start_device (self ):
7995 device = og .device_manager .get_preferred_device ()
8096 logger .info (f'start_device: { device } ' )
@@ -96,28 +112,14 @@ def start_device(self):
96112 if not execute (path , arguments = args ):
97113 communicate .starting_emulator .emit (True , self .tr ("Start game failed, please start game first" ), 0 )
98114 return False
99- wait_until = time .time () + self .start_timeout
100- while not self .exit_event .is_set ():
101- og .device_manager .do_refresh (True )
102- error = self .check_device_error ()
103- if error is None :
104- break
105- logger .error (f'waiting for game to start error { error } ' )
106- remaining_time = wait_until - time .time ()
107- if remaining_time <= 0 :
108- communicate .starting_emulator .emit (True , self .tr ('Start game timeout!' ), 0 )
109- return False
110- communicate .starting_emulator .emit (False , None , int (remaining_time ))
111- time .sleep (2 )
115+ if not self ._wait_until_device_ready ():
116+ return False
112117 else :
113118 communicate .starting_emulator .emit (True ,
114119 self .tr ('Game path does not exist, Please open game manually!' ), 0 )
115120 return False
116- else :
117- error = self .check_device_error ()
118- if error :
119- communicate .starting_emulator .emit (True , error , 0 )
120- return False
121+ elif not self ._wait_until_device_ready ():
122+ return False
121123 communicate .starting_emulator .emit (True , None , 0 )
122124 return True
123125
0 commit comments