• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2022 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15import {AdbConnectionOverWebsocket} from '../adb_connection_over_websocket';
16import {OnTargetChangeCallback, TargetInfo} from '../recording_interfaces_v2';
17import {AndroidTarget} from './android_target';
18
19export class AndroidWebsocketTarget extends AndroidTarget {
20  constructor(
21    private serialNumber: string,
22    websocketUrl: string,
23    onTargetChange: OnTargetChangeCallback,
24  ) {
25    super(
26      new AdbConnectionOverWebsocket(serialNumber, websocketUrl),
27      onTargetChange,
28    );
29  }
30
31  getInfo(): TargetInfo {
32    return {
33      targetType: 'ANDROID',
34      // 'androidApiLevel' will be populated after ADB authorization.
35      androidApiLevel: this.androidApiLevel,
36      dataSources: this.dataSources || [],
37      name: this.serialNumber + ' WebSocket',
38    };
39  }
40}
41