Skip to content

Commit 85cdd69

Browse files
list emulators and simulators implemented in group status check
1 parent 00605e4 commit 85cdd69

4 files changed

Lines changed: 60 additions & 43 deletions

File tree

Framework/install_handler/android/emulator.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,23 @@ async def get_available_devices() -> list[dict]:
706706
traceback.print_exc()
707707
return []
708708

709+
async def check_emulator_list():
710+
"""
711+
Sends response to server with list of installed emulators for Android.
712+
"""
713+
avd_list = await get_filtered_avd_services()
714+
if avd_list:
715+
await send_response(
716+
{
717+
"action": "services_update",
718+
"data": {
719+
'category': 'AndroidEmulator',
720+
"services": avd_list['services'],
721+
},
722+
}
723+
)
724+
return True
725+
return False
709726

710727
async def android_emulator_install():
711728
"""

Framework/install_handler/ios/simulator.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,24 @@ async def get_available_runtimes() -> list[dict]:
405405
return []
406406

407407

408+
async def check_simulator_list():
409+
"""
410+
Sends response to server with list of installed simulators for iOS Simulator.
411+
"""
412+
simulator_list = await get_filtered_simulator_services()
413+
if simulator_list:
414+
await send_response(
415+
{
416+
"action": "services_update",
417+
"data": {
418+
'category': 'iOSSimulator',
419+
"services": simulator_list['services'],
420+
},
421+
}
422+
)
423+
return True
424+
return False
425+
408426
async def ios_simulator_install():
409427
"""
410428
Get available device types when install button is clicked.

Framework/install_handler/long_poll_handler.py

Lines changed: 16 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -91,21 +91,6 @@ async def on_message(self, message: Response) -> None:
9191
if category["category"] == "AndroidEmulator":
9292
service_name = message.value.item.name
9393

94-
# Case 0: If list of emulators needed to be sent
95-
if service_name == 'emulator_list':
96-
avd_list = await get_filtered_avd_services()
97-
if avd_list:
98-
await send_response(
99-
{
100-
"action": "services_update",
101-
"data": {
102-
'category': 'AndroidEmulator',
103-
"services": avd_list['services'],
104-
},
105-
}
106-
)
107-
return
108-
10994
# Case 1: No service name or empty - get system images list
11095
if not service_name:
11196
if (
@@ -169,21 +154,6 @@ async def on_message(self, message: Response) -> None:
169154
)
170155
service_name = message.value.item.name
171156

172-
# Case 0: If list of simulators needed to be sent
173-
if service_name == 'simulator_list':
174-
simulator_list = await get_filtered_simulator_services()
175-
if simulator_list:
176-
await send_response(
177-
{
178-
"action": "services_update",
179-
"data": {
180-
'category': 'iOSSimulator',
181-
"services": simulator_list['services'],
182-
},
183-
}
184-
)
185-
return
186-
187157
# Case 1: No service name or empty - get device types list
188158
if not service_name:
189159
if action == "install" and "install_function" in category and category["install_function"]:
@@ -273,14 +243,23 @@ async def on_message(self, message: Response) -> None:
273243
},
274244
}
275245
)
276-
services_list = [
246+
category = [
277247
i for i in services if i["category"] == message.value.item.category
278-
][0]["services"]
279-
functions = [
280-
i["status_function"] for i in services_list if i["status_function"] and current_os in i["os"]
281-
]
282-
for func in functions:
283-
await func()
248+
][0]
249+
250+
if message.value.item.category == "AndroidEmulator" and current_os in category["os"]:
251+
await category["status_function"]()
252+
253+
if message.value.item.category == "iOSSimulator" and current_os in category["os"]:
254+
await category["status_function"]()
255+
256+
else:
257+
services_list = category["services"]
258+
functions = [
259+
i["status_function"] for i in services_list if i["status_function"] and current_os in i["os"]
260+
]
261+
for func in functions:
262+
await func()
284263
await send_response(
285264
{
286265
"action": "group_status",

Framework/install_handler/route.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
from .macos import xcode as macos_xcode
1515
from .database import postgresql, mysql, mariadb, oracle
1616
from .windows import inspector
17-
from .android.emulator import android_emulator_install
18-
from .ios.simulator import ios_simulator_install
17+
from .android import emulator
1918

2019
services = [
2120
{
@@ -95,14 +94,16 @@
9594
},
9695
{
9796
"group": {
98-
"check_text": "",
97+
"check_text": "Check all",
9998
"install_text": "",
10099
},
101100
"category": "AndroidEmulator",
102101
"name": "System Images",
103102
"check_text":"Check status",
104103
"install_text": "Install",
105-
"install_function": android_emulator_install,
104+
"os": ["windows", "linux", "darwin"],
105+
"status_function": emulator.check_emulator_list,
106+
"install_function": emulator.android_emulator_install,
106107
"installables": [],
107108
"services": [],
108109
},
@@ -139,14 +140,16 @@
139140
},
140141
{
141142
"group": {
142-
"check_text": "",
143+
"check_text": "Check all",
143144
"install_text": "",
144145
},
145146
"category": "iOSSimulator",
146147
"name": "Device Types",
147148
"check_text":"Check status",
148149
"install_text": "Install",
149-
"install_function": ios_simulator_install,
150+
"os": ["darwin"],
151+
"status_function": None,
152+
"install_function": simulator.ios_simulator_install,
150153
"installables": [],
151154
"services": [],
152155
},

0 commit comments

Comments
 (0)