From 4b2bd2bd48af05332555dba1ce42de666146e669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Tue, 12 May 2026 00:56:22 +0900 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B8=D0=BB=20UI=20=D0=BD=D0=B0=20=D0=BC=D0=BE=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B8=20Android=20=D1=83=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D1=81=D1=82=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/workspace.js | 47 ++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/frontend/workspace.js b/frontend/workspace.js index 3548c59..e3ac6b5 100644 --- a/frontend/workspace.js +++ b/frontend/workspace.js @@ -396,6 +396,21 @@ async function loadWorkspaceTree() { setDone(`Workspace выбран: ${workspace}`); } +function parseLegacyDevices(stdout) { + return (stdout || '') + .split('\n') + .filter(line => line.includes('device') && !line.includes('List')) + .map(line => { + const serial = line.split(/\s+/)[0]; + return { + serial, + title: serial, + subtitle: 'ADB device', + state: 'device' + }; + }); +} + async function loadDevices() { setStatus('Ищу Android устройства', 'running'); appendLog('Обновление списка Android устройств'); @@ -409,11 +424,9 @@ async function loadDevices() { return; } - const lines = (data.stdout || '').split('\n'); - - const devices = lines.filter(line => - line.includes('device') && !line.includes('List') - ); + const devices = Array.isArray(data.devices) && data.devices.length > 0 + ? data.devices + : parseLegacyDevices(data.stdout || ''); if (devices.length === 0) { container.innerHTML = 'Устройства не подключены'; @@ -422,23 +435,19 @@ async function loadDevices() { return; } - container.innerHTML = devices.map(device => { - const id = device.split(/\s+/)[0]; + container.innerHTML = devices.map(device => ` +