microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
1.11.1

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/extension/android/androidDeviceTracker.ts

65lines · modeblame

4bb0956eRedMickey5 years ago1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
4import { DeviceStorage } from "../networkInspector/devices/deviceStorage";
5import { AndroidClientDevice } from "../networkInspector/devices/androidClientDevice";
6import { NetworkInspectorServer } from "../networkInspector/networkInspectorServer";
7import { DeviceStatus } from "../networkInspector/devices/baseClientDevice";
8import { ClientOS } from "../networkInspector/clientUtils";
9import { AbstractDeviceTracker } from "../abstractDeviceTracker";
09f6024fHeniker4 years ago10import { AdbHelper } from "./adb";
4bb0956eRedMickey5 years ago11
12export class AndroidDeviceTracker extends AbstractDeviceTracker {
13private adbHelper: AdbHelper;
14
15constructor(adbHelper: AdbHelper) {
16super();
17this.adbHelper = adbHelper;
18}
19
20public async start(): Promise<void> {
21this.logger.debug("Start Android device tracker");
22await this.queryDevicesLoop();
23}
24
25public stop(): void {
26this.logger.debug("Stop Android device tracker");
27this.isStop = true;
28}
29
30protected async queryDevices(): Promise<void> {
4cd25962JiglioNero4 years ago31const onlineDevices = await this.adbHelper.getOnlineTargets();
09f6024fHeniker4 years ago32const currentDevicesIds = new Set(
4bb0956eRedMickey5 years ago33[...DeviceStorage.devices.keys()].filter(
34key => DeviceStorage.devices.get(key) instanceof AndroidClientDevice,
35),
36);
37
38for (const onlineDevice of onlineDevices) {
39if (currentDevicesIds.has(onlineDevice.id)) {
40currentDevicesIds.delete(onlineDevice.id);
41} else {
42const androidDevice = new AndroidClientDevice(
43onlineDevice.id,
4cd25962JiglioNero4 years ago44onlineDevice.isVirtualTarget,
4bb0956eRedMickey5 years ago45ClientOS.Android,
46);
47await this.initAndroidDevice(androidDevice);
48DeviceStorage.devices.set(androidDevice.id, androidDevice);
49}
50}
51
52currentDevicesIds.forEach(oldDeviceId => {
53DeviceStorage.devices.delete(oldDeviceId);
54});
55}
56
57private async initAndroidDevice(androidDevice: AndroidClientDevice) {
58await this.adbHelper.reverseAdb(
59androidDevice.id,
60NetworkInspectorServer.InsecureServerPort,
61);
62await this.adbHelper.reverseAdb(androidDevice.id, NetworkInspectorServer.SecureServerPort);
63androidDevice.deviceStatus = DeviceStatus.Prepared;
64}
65}