android-emulator-webrtc 1.0.17 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -204
- package/dist/components/emulator/emulator.d.ts +64 -0
- package/dist/components/emulator/emulator.js +161 -173
- package/dist/components/emulator/net/emulator_status.d.ts +45 -0
- package/dist/components/emulator/net/emulator_status.js +35 -42
- package/dist/components/emulator/net/logcat.js +37 -54
- package/dist/components/emulator/net/logger.d.ts +7 -0
- package/dist/components/emulator/net/logger.js +20 -0
- package/dist/components/emulator/net/ws_jsep_protocol_driver.d.ts +213 -0
- package/dist/components/emulator/net/ws_jsep_protocol_driver.js +640 -0
- package/dist/components/emulator/views/event_handler.d.ts +37 -0
- package/dist/components/emulator/views/event_handler.js +274 -260
- package/dist/components/emulator/views/webrtc_view.d.ts +27 -0
- package/dist/components/emulator/views/webrtc_view.js +42 -25
- package/dist/index.d.ts +8 -0
- package/dist/index.js +0 -7
- package/dist/proto/emulator_controller_pb.d.ts +1 -0
- package/dist/proto/emulator_controller_pb.js +146 -287
- package/dist/src/components/emulator/emulator.d.ts +64 -0
- package/dist/src/components/emulator/net/emulator_status.d.ts +45 -0
- package/dist/src/components/emulator/net/logger.d.ts +7 -0
- package/dist/src/components/emulator/net/ws_jsep_protocol_driver.d.ts +213 -0
- package/dist/src/components/emulator/views/event_handler.d.ts +37 -0
- package/dist/src/components/emulator/views/webrtc_view.d.ts +27 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/proto/emulator_controller_pb.d.ts +1 -0
- package/package.json +17 -18
- package/proto/emulator_controller.proto +746 -181
- package/.vscode/launch.json +0 -21
- package/.vscode/settings.json +0 -3
- package/CONTRIBUTING.md +0 -28
- package/Makefile +0 -123
- package/android-emulator-webrtc.code-workspace +0 -7
- package/api_descriptor.pb +0 -0
- package/babel.config.js +0 -16
- package/cloudbuild.yaml +0 -41
- package/cloudbuilders/.gcloudignore +0 -1
- package/cloudbuilders/Dockerfile +0 -20
- package/cloudbuilders/README.md +0 -29
- package/cloudbuilders/cloudbuild.yaml +0 -19
- package/dist/components/emulator/net/jsep_protocol_driver.js +0 -365
- package/dist/components/emulator/views/resizing_component.js +0 -86
- package/dist/components/emulator/views/simple_png_view.js +0 -111
- package/dist/proto/emulator_controller_grpc_web_pb.js +0 -1601
- package/dist/proto/emulator_web_client.js +0 -176
- package/dist/proto/rtc_service_grpc_web_pb.js +0 -231
- package/dist/proto/rtc_service_pb.js +0 -338
- package/emulator/index.js +0 -1
- package/eslint_prefix.py +0 -37
- package/gen_md_doc.js +0 -40
- package/npmrc.enc +0 -0
- package/proto/rtc_service.proto +0 -117
- package/protoc-plugin/Makefile +0 -31
- package/protoc-plugin/grpc_generator.cc +0 -1755
- package/src/components/emulator/emulator.js +0 -217
- package/src/components/emulator/net/emulator_status.js +0 -94
- package/src/components/emulator/net/jsep_protocol_driver.js +0 -364
- package/src/components/emulator/net/logcat.js +0 -155
- package/src/components/emulator/views/event_handler.js +0 -268
- package/src/components/emulator/views/resizing_component.js +0 -65
- package/src/components/emulator/views/simple_png_view.js +0 -106
- package/src/components/emulator/views/webrtc_view.js +0 -146
- package/src/index.js +0 -20
- package/src/proto/emulator_web_client.js +0 -140
- package/test/cloudbuild.yaml +0 -41
- package/test/emulator.test.js +0 -125
- package/test/event_handler.test.js +0 -91
- package/test/fake_events.js +0 -50
- package/test/jsep_protocol_driver.test.js +0 -228
- package/test/resizing_component.test.js +0 -37
- package/test/simple_png_view.test.js +0 -145
- package/test/touch_event_handler.test.js +0 -118
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
var _resizeObserver = _interopRequireDefault(require("@react-hook/resize-observer"));
|
|
12
|
-
/**
|
|
13
|
-
* @jest-environment jsdom
|
|
14
|
-
*/
|
|
15
|
-
/*
|
|
16
|
-
* Copyright 2023 The Android Open Source Project
|
|
17
|
-
*
|
|
18
|
-
* Licensed under the Apache License, Version 2.0 (the "License")
|
|
19
|
-
* you may not use this file except in compliance with the License.
|
|
20
|
-
* You may obtain a copy of the License at
|
|
21
|
-
*
|
|
22
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
23
|
-
*
|
|
24
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
25
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
26
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
27
|
-
* See the License for the specific language governing permissions and
|
|
28
|
-
* limitations under the License.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
function useSize(target, onResize) {
|
|
32
|
-
var _React$useState = _react["default"].useState(),
|
|
33
|
-
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
34
|
-
size = _React$useState2[0],
|
|
35
|
-
setSize = _React$useState2[1];
|
|
36
|
-
_react["default"].useLayoutEffect(function () {
|
|
37
|
-
if (target) {
|
|
38
|
-
var newSize = target.getBoundingClientRect();
|
|
39
|
-
console.log("Resizing to ".concat(JSON.stringify(newSize)));
|
|
40
|
-
setSize(newSize);
|
|
41
|
-
if (onResize) {
|
|
42
|
-
onResize(newSize);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}, [target]);
|
|
46
|
-
|
|
47
|
-
// Where the magic happens
|
|
48
|
-
(0, _resizeObserver["default"])(target, function (entry) {
|
|
49
|
-
setSize(entry.contentRect);
|
|
50
|
-
if (onResize) {
|
|
51
|
-
console.log("Resizing to ".concat(JSON.stringify(entry.contentRect)));
|
|
52
|
-
onResize(entry.contentRect);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
return size;
|
|
56
|
-
}
|
|
57
|
-
function ResizingComponent(_ref) {
|
|
58
|
-
var children = _ref.children,
|
|
59
|
-
onResize = _ref.onResize,
|
|
60
|
-
dataTestId = _ref["data-testid"];
|
|
61
|
-
// const ref = useRef();
|
|
62
|
-
var _React$useState3 = _react["default"].useState(),
|
|
63
|
-
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
|
|
64
|
-
target = _React$useState4[0],
|
|
65
|
-
setTarget = _React$useState4[1];
|
|
66
|
-
var size = useSize(target, onResize);
|
|
67
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
68
|
-
style: {
|
|
69
|
-
width: "100%",
|
|
70
|
-
height: "100%"
|
|
71
|
-
},
|
|
72
|
-
ref: setTarget,
|
|
73
|
-
"data-testid": dataTestId
|
|
74
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
|
-
style: {
|
|
76
|
-
width: size === null || size === void 0 ? void 0 : size.width,
|
|
77
|
-
height: size === null || size === void 0 ? void 0 : size.height
|
|
78
|
-
}
|
|
79
|
-
}, children));
|
|
80
|
-
}
|
|
81
|
-
ResizingComponent.propTypes = {
|
|
82
|
-
onResize: _propTypes["default"].func,
|
|
83
|
-
"data-testid": _propTypes["default"].string
|
|
84
|
-
};
|
|
85
|
-
var _default = ResizingComponent;
|
|
86
|
-
exports["default"] = _default;
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var Proto = _interopRequireWildcard(require("../../../proto/emulator_controller_pb"));
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
var EmulatorPngView = function EmulatorPngView(_ref) {
|
|
16
|
-
var emulator = _ref.emulator,
|
|
17
|
-
onStateChange = _ref.onStateChange,
|
|
18
|
-
poll = _ref.poll,
|
|
19
|
-
width = _ref.width,
|
|
20
|
-
height = _ref.height,
|
|
21
|
-
dataTestId = _ref["data-testid"];
|
|
22
|
-
var _useState = (0, _react.useState)(""),
|
|
23
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
24
|
-
png = _useState2[0],
|
|
25
|
-
setPng = _useState2[1];
|
|
26
|
-
var _useState3 = (0, _react.useState)("connecting"),
|
|
27
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
28
|
-
connect = _useState4[0],
|
|
29
|
-
setConnect = _useState4[1];
|
|
30
|
-
var screenShot = null;
|
|
31
|
-
(0, _react.useEffect)(function () {
|
|
32
|
-
startStream();
|
|
33
|
-
return function () {
|
|
34
|
-
setConnect("disconnected");
|
|
35
|
-
if (screenShot) {
|
|
36
|
-
screenShot.cancel();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
}, [width, height]);
|
|
40
|
-
(0, _react.useEffect)(function () {
|
|
41
|
-
console.log("Png state changed to: " + connect);
|
|
42
|
-
if (onStateChange) {
|
|
43
|
-
onStateChange(connect);
|
|
44
|
-
}
|
|
45
|
-
}, [connect]);
|
|
46
|
-
var startStream = function startStream() {
|
|
47
|
-
setConnect("connecting");
|
|
48
|
-
var request = new Proto.ImageFormat();
|
|
49
|
-
if (!isNaN(width)) {
|
|
50
|
-
request.setWidth(Math.floor(width));
|
|
51
|
-
}
|
|
52
|
-
if (!isNaN(height)) {
|
|
53
|
-
request.setWidth(Math.floor(height));
|
|
54
|
-
}
|
|
55
|
-
if (poll && connect !== "disconnected") {
|
|
56
|
-
emulator.getScreenshot(request, {}, function (err, response) {
|
|
57
|
-
setConnect("connected");
|
|
58
|
-
setPng("data:image/jpeg;base64," + response.getImage_asB64());
|
|
59
|
-
startStream();
|
|
60
|
-
});
|
|
61
|
-
} else {
|
|
62
|
-
var receivedImage = false;
|
|
63
|
-
screenShot = emulator.streamScreenshot(request);
|
|
64
|
-
screenShot.on("data", function (response) {
|
|
65
|
-
receivedImage = true;
|
|
66
|
-
setConnect("connected");
|
|
67
|
-
setPng("data:image/jpeg;base64," + response.getImage_asB64());
|
|
68
|
-
});
|
|
69
|
-
screenShot.on("error", function (e) {
|
|
70
|
-
console.warn("Screenshot stream broken", e);
|
|
71
|
-
if (receivedImage) {
|
|
72
|
-
setConnect("connecting");
|
|
73
|
-
startStream();
|
|
74
|
-
} else {
|
|
75
|
-
setConnect("disconnected");
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
var preventDragHandler = function preventDragHandler(e) {
|
|
81
|
-
e.preventDefault();
|
|
82
|
-
};
|
|
83
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
84
|
-
width: width,
|
|
85
|
-
style: {
|
|
86
|
-
display: "block",
|
|
87
|
-
position: "relative",
|
|
88
|
-
height: "100%",
|
|
89
|
-
objectFit: "contain",
|
|
90
|
-
objectPosition: "center"
|
|
91
|
-
},
|
|
92
|
-
onDragStart: preventDragHandler
|
|
93
|
-
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
94
|
-
src: png,
|
|
95
|
-
width: "100%",
|
|
96
|
-
draggable: "false",
|
|
97
|
-
style: {
|
|
98
|
-
pointerEvents: "none"
|
|
99
|
-
}
|
|
100
|
-
}));
|
|
101
|
-
};
|
|
102
|
-
EmulatorPngView.propTypes = {
|
|
103
|
-
emulator: _propTypes["default"].object,
|
|
104
|
-
onStateChange: _propTypes["default"].func,
|
|
105
|
-
poll: _propTypes["default"].bool,
|
|
106
|
-
width: _propTypes["default"].number,
|
|
107
|
-
height: _propTypes["default"].number,
|
|
108
|
-
"data-testid": _propTypes["default"].string
|
|
109
|
-
};
|
|
110
|
-
var _default = EmulatorPngView;
|
|
111
|
-
exports["default"] = _default;
|