appium-android-driver 6.0.1 → 7.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/CHANGELOG.md +19 -0
- package/README.md +4 -107
- package/build/lib/commands/actions.d.ts +0 -1
- package/build/lib/commands/actions.d.ts.map +1 -1
- package/build/lib/commands/actions.js +14 -139
- package/build/lib/commands/actions.js.map +1 -1
- package/build/lib/commands/context.d.ts.map +1 -1
- package/build/lib/commands/context.js +0 -1
- package/build/lib/commands/context.js.map +1 -1
- package/build/lib/commands/element.d.ts +0 -1
- package/build/lib/commands/element.d.ts.map +1 -1
- package/build/lib/commands/element.js +14 -48
- package/build/lib/commands/element.js.map +1 -1
- package/build/lib/commands/execute.d.ts.map +1 -1
- package/build/lib/commands/execute.js +0 -1
- package/build/lib/commands/execute.js.map +1 -1
- package/build/lib/commands/find.d.ts.map +1 -1
- package/build/lib/commands/find.js +1 -1
- package/build/lib/commands/find.js.map +1 -1
- package/build/lib/commands/general.d.ts +0 -1
- package/build/lib/commands/general.d.ts.map +1 -1
- package/build/lib/commands/general.js +6 -11
- package/build/lib/commands/general.js.map +1 -1
- package/build/lib/commands/index.d.ts +23 -23
- package/build/lib/commands/mixins.d.ts +2 -6
- package/build/lib/commands/mixins.d.ts.map +1 -1
- package/build/lib/commands/mixins.js.map +1 -1
- package/build/lib/commands/network.d.ts.map +1 -1
- package/build/lib/commands/network.js +27 -55
- package/build/lib/commands/network.js.map +1 -1
- package/build/lib/commands/performance.d.ts +4 -4
- package/build/lib/commands/performance.d.ts.map +1 -1
- package/build/lib/commands/performance.js +0 -4
- package/build/lib/commands/performance.js.map +1 -1
- package/build/lib/commands/touch.d.ts +0 -1
- package/build/lib/commands/touch.d.ts.map +1 -1
- package/build/lib/commands/touch.js +1 -15
- package/build/lib/commands/touch.js.map +1 -1
- package/build/lib/constraints.d.ts +0 -9
- package/build/lib/constraints.d.ts.map +1 -1
- package/build/lib/constraints.js +0 -9
- package/build/lib/constraints.js.map +1 -1
- package/build/lib/driver.d.ts +2 -50
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +1 -476
- package/build/lib/driver.js.map +1 -1
- package/build/lib/helpers/android.d.ts +0 -2
- package/build/lib/helpers/android.d.ts.map +1 -1
- package/build/lib/helpers/android.js +0 -2
- package/build/lib/helpers/android.js.map +1 -1
- package/build/lib/helpers/webview.js.map +1 -1
- package/build/lib/stubs.d.ts +0 -1
- package/build/lib/stubs.d.ts.map +1 -1
- package/build/lib/stubs.js +0 -1
- package/build/lib/stubs.js.map +1 -1
- package/build/lib/utils.d.ts +3 -4
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +3 -4
- package/build/lib/utils.js.map +1 -1
- package/lib/commands/actions.js +15 -163
- package/lib/commands/context.js +0 -1
- package/lib/commands/element.js +14 -68
- package/lib/commands/execute.js +0 -1
- package/lib/commands/find.ts +1 -2
- package/lib/commands/general.js +6 -11
- package/lib/commands/mixins.ts +0 -6
- package/lib/commands/network.js +28 -61
- package/lib/commands/performance.js +0 -4
- package/lib/commands/touch.js +1 -20
- package/lib/constraints.ts +0 -9
- package/lib/driver.ts +7 -595
- package/lib/helpers/android.ts +0 -4
- package/lib/helpers/webview.ts +1 -1
- package/lib/stubs.ts +0 -1
- package/lib/utils.js +4 -5
- package/package.json +3 -6
- package/bootstrap/README.md +0 -19
- package/bootstrap/bin/AppiumBootstrap.jar +0 -0
- package/build/lib/bootstrap.d.ts +0 -29
- package/build/lib/bootstrap.d.ts.map +0 -1
- package/build/lib/bootstrap.js +0 -213
- package/build/lib/bootstrap.js.map +0 -1
- package/build/lib/uiautomator.d.ts +0 -24
- package/build/lib/uiautomator.d.ts.map +0 -1
- package/build/lib/uiautomator.js +0 -102
- package/build/lib/uiautomator.js.map +0 -1
- package/lib/bootstrap.js +0 -227
- package/lib/uiautomator.js +0 -109
package/lib/commands/element.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
|
|
3
|
-
import {AndroidHelpers as androidHelpers} from '../helpers';
|
|
4
3
|
import {mixin} from './mixins';
|
|
5
4
|
import {retryInterval} from 'asyncbox';
|
|
6
|
-
import {
|
|
5
|
+
import {errors} from 'appium/driver';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* @type {import('./mixins').ElementMixin & ThisType<import('../driver').AndroidDriver>}
|
|
@@ -11,11 +10,7 @@ import {util} from '@appium/support';
|
|
|
11
10
|
*/
|
|
12
11
|
const ElementMixin = {
|
|
13
12
|
async getAttribute(attribute, elementId) {
|
|
14
|
-
|
|
15
|
-
return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
|
|
16
|
-
'element:getAttribute',
|
|
17
|
-
p
|
|
18
|
-
);
|
|
13
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
19
14
|
},
|
|
20
15
|
|
|
21
16
|
async getName(elementId) {
|
|
@@ -57,10 +52,7 @@ const ElementMixin = {
|
|
|
57
52
|
* to facilitate setElementValue.
|
|
58
53
|
*/
|
|
59
54
|
async doSetElementValue(params) {
|
|
60
|
-
|
|
61
|
-
'element:setText',
|
|
62
|
-
params
|
|
63
|
-
);
|
|
55
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
64
56
|
},
|
|
65
57
|
|
|
66
58
|
async setValue(keys, elementId) {
|
|
@@ -85,9 +77,7 @@ const ElementMixin = {
|
|
|
85
77
|
},
|
|
86
78
|
|
|
87
79
|
async getText(elementId) {
|
|
88
|
-
|
|
89
|
-
elementId,
|
|
90
|
-
});
|
|
80
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
91
81
|
},
|
|
92
82
|
|
|
93
83
|
async clear(elementId) {
|
|
@@ -115,16 +105,11 @@ const ElementMixin = {
|
|
|
115
105
|
},
|
|
116
106
|
|
|
117
107
|
async click(elementId) {
|
|
118
|
-
|
|
119
|
-
elementId,
|
|
120
|
-
});
|
|
108
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
121
109
|
},
|
|
122
110
|
|
|
123
111
|
async getLocation(elementId) {
|
|
124
|
-
|
|
125
|
-
'element:getLocation',
|
|
126
|
-
{elementId}
|
|
127
|
-
);
|
|
112
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
128
113
|
},
|
|
129
114
|
|
|
130
115
|
async getLocationInView(elementId) {
|
|
@@ -132,73 +117,35 @@ const ElementMixin = {
|
|
|
132
117
|
},
|
|
133
118
|
|
|
134
119
|
async getSize(elementId) {
|
|
135
|
-
|
|
136
|
-
elementId,
|
|
137
|
-
});
|
|
120
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
138
121
|
},
|
|
139
122
|
|
|
140
123
|
async getElementRect(elementId) {
|
|
141
|
-
|
|
142
|
-
elementId,
|
|
143
|
-
});
|
|
124
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
144
125
|
},
|
|
145
126
|
|
|
146
127
|
async touchLongClick(elementId, x, y, duration) {
|
|
147
|
-
|
|
148
|
-
androidHelpers.removeNullProperties(params);
|
|
149
|
-
return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
|
|
150
|
-
'element:touchLongClick',
|
|
151
|
-
params
|
|
152
|
-
);
|
|
128
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
153
129
|
},
|
|
154
130
|
|
|
155
131
|
async touchDown(elementId, x, y) {
|
|
156
|
-
|
|
157
|
-
androidHelpers.removeNullProperties(params);
|
|
158
|
-
return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
|
|
159
|
-
'element:touchDown',
|
|
160
|
-
params
|
|
161
|
-
);
|
|
132
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
162
133
|
},
|
|
163
134
|
|
|
164
135
|
async touchUp(elementId, x, y) {
|
|
165
|
-
|
|
166
|
-
androidHelpers.removeNullProperties(params);
|
|
167
|
-
return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
|
|
168
|
-
'element:touchUp',
|
|
169
|
-
params
|
|
170
|
-
);
|
|
136
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
171
137
|
},
|
|
172
138
|
|
|
173
139
|
async touchMove(elementId, x, y) {
|
|
174
|
-
|
|
175
|
-
androidHelpers.removeNullProperties(params);
|
|
176
|
-
return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
|
|
177
|
-
'element:touchMove',
|
|
178
|
-
params
|
|
179
|
-
);
|
|
140
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
180
141
|
},
|
|
181
142
|
|
|
182
143
|
async complexTap(tapCount, touchCount, duration, x, y) {
|
|
183
|
-
|
|
144
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
184
145
|
},
|
|
185
146
|
|
|
186
147
|
async tap(elementId = null, x = null, y = null, count = 1) {
|
|
187
|
-
|
|
188
|
-
throw new Error(`Either element to tap or both absolute coordinates should be defined`);
|
|
189
|
-
}
|
|
190
|
-
for (let i = 0; i < count; i++) {
|
|
191
|
-
if (util.hasValue(elementId)) {
|
|
192
|
-
// FIXME: bootstrap ignores relative coordinates
|
|
193
|
-
await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('element:click', {
|
|
194
|
-
elementId,
|
|
195
|
-
x,
|
|
196
|
-
y,
|
|
197
|
-
});
|
|
198
|
-
} else {
|
|
199
|
-
await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('click', {x, y});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
148
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
202
149
|
},
|
|
203
150
|
};
|
|
204
151
|
|
|
@@ -207,6 +154,5 @@ mixin(ElementMixin);
|
|
|
207
154
|
export default ElementMixin;
|
|
208
155
|
|
|
209
156
|
/**
|
|
210
|
-
* @typedef {import('../bootstrap').AndroidBootstrap} AndroidBootstrap
|
|
211
157
|
* @typedef {import('appium-adb').ADB} ADB
|
|
212
158
|
*/
|
package/lib/commands/execute.js
CHANGED
|
@@ -101,7 +101,6 @@ const ExecuteMixin = {
|
|
|
101
101
|
`Only ${_.keys(mobileCommandsMapping)} commands are supported.`
|
|
102
102
|
);
|
|
103
103
|
}
|
|
104
|
-
// @ts-expect-error fine for now until we replace with execute methods
|
|
105
104
|
return await this[mobileCommandsMapping[mobileCommand]](opts);
|
|
106
105
|
},
|
|
107
106
|
};
|
package/lib/commands/find.ts
CHANGED
|
@@ -9,7 +9,6 @@ import {errors, isErrorType} from 'appium/driver';
|
|
|
9
9
|
import type {AndroidDriver} from '../driver';
|
|
10
10
|
import type {Element} from '@appium/types';
|
|
11
11
|
import type {FindElementOpts} from './types';
|
|
12
|
-
import type AndroidBootstrap from '../bootstrap';
|
|
13
12
|
|
|
14
13
|
async function findElOrEls(
|
|
15
14
|
this: AndroidDriver,
|
|
@@ -92,7 +91,7 @@ async function findElOrEls(
|
|
|
92
91
|
|
|
93
92
|
const FindMixin: FindMixin & ThisType<AndroidDriver> = {
|
|
94
93
|
async doFindElementOrEls(params) {
|
|
95
|
-
|
|
94
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
96
95
|
},
|
|
97
96
|
|
|
98
97
|
findElOrEls,
|
package/lib/commands/general.js
CHANGED
|
@@ -6,6 +6,7 @@ import moment from 'moment';
|
|
|
6
6
|
import androidHelpers from '../helpers/android';
|
|
7
7
|
import {requireArgs} from '../utils';
|
|
8
8
|
import {mixin} from './mixins';
|
|
9
|
+
import {errors} from 'appium/driver';
|
|
9
10
|
|
|
10
11
|
const MOMENT_FORMAT_ISO8601 = 'YYYY-MM-DDTHH:mm:ssZ';
|
|
11
12
|
|
|
@@ -32,7 +33,7 @@ const GeneralMixin = {
|
|
|
32
33
|
},
|
|
33
34
|
|
|
34
35
|
async doSendKeys(params) {
|
|
35
|
-
|
|
36
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
36
37
|
},
|
|
37
38
|
|
|
38
39
|
async getDeviceTime(format = MOMENT_FORMAT_ISO8601) {
|
|
@@ -57,11 +58,11 @@ const GeneralMixin = {
|
|
|
57
58
|
},
|
|
58
59
|
|
|
59
60
|
async getPageSource() {
|
|
60
|
-
|
|
61
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
61
62
|
},
|
|
62
63
|
|
|
63
64
|
async back() {
|
|
64
|
-
|
|
65
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
65
66
|
},
|
|
66
67
|
|
|
67
68
|
async openSettingsActivity(setting) {
|
|
@@ -72,7 +73,7 @@ const GeneralMixin = {
|
|
|
72
73
|
},
|
|
73
74
|
|
|
74
75
|
async getWindowSize() {
|
|
75
|
-
|
|
76
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
76
77
|
},
|
|
77
78
|
|
|
78
79
|
// For W3C
|
|
@@ -195,17 +196,12 @@ const GeneralMixin = {
|
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
this.apkStrings[language] = await androidHelpers.pushStrings(language, adb, this.opts);
|
|
198
|
-
if (this.bootstrap) {
|
|
199
|
-
// TODO: This is mutating the current language, but it's how appium currently works
|
|
200
|
-
await this.bootstrap.sendAction('updateStrings');
|
|
201
|
-
}
|
|
202
199
|
|
|
203
200
|
return preprocessStringsMap(this.apkStrings[language]);
|
|
204
201
|
},
|
|
205
202
|
|
|
206
203
|
async launchApp() {
|
|
207
|
-
|
|
208
|
-
await this.startAUT();
|
|
204
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
209
205
|
},
|
|
210
206
|
|
|
211
207
|
async startActivity(
|
|
@@ -343,7 +339,6 @@ mixin(GeneralMixin);
|
|
|
343
339
|
export default GeneralMixin;
|
|
344
340
|
|
|
345
341
|
/**
|
|
346
|
-
* @typedef {import('../bootstrap').AndroidBootstrap} AndroidBootstrap
|
|
347
342
|
* @typedef {import('appium-adb').ADB} ADB
|
|
348
343
|
* @typedef {import('@appium/types').StringRecord} StringRecord
|
|
349
344
|
*/
|
package/lib/commands/mixins.ts
CHANGED
|
@@ -197,10 +197,6 @@ export interface ActionsMixin {
|
|
|
197
197
|
*/
|
|
198
198
|
sensorSet(opts: types.SensorSetOpts): Promise<void>;
|
|
199
199
|
|
|
200
|
-
getScreenshotDataWithAdbShell(adb: ADB, opts: AndroidDriverOpts): Promise<Buffer>;
|
|
201
|
-
|
|
202
|
-
getScreenshotDataWithAdbExecOut(adb: ADB): Promise<Buffer>;
|
|
203
|
-
|
|
204
200
|
getScreenshot(): Promise<string>;
|
|
205
201
|
}
|
|
206
202
|
|
|
@@ -734,8 +730,6 @@ export interface NetworkMixin {
|
|
|
734
730
|
* Toggles GPS state
|
|
735
731
|
*/
|
|
736
732
|
toggleLocationServices(): Promise<void>;
|
|
737
|
-
|
|
738
|
-
wrapBootstrapDisconnect(fn: () => Promise<void>): Promise<void>;
|
|
739
733
|
}
|
|
740
734
|
|
|
741
735
|
export interface PerformanceMixin {
|
package/lib/commands/network.js
CHANGED
|
@@ -135,14 +135,10 @@ const NetworkMixin = {
|
|
|
135
135
|
|
|
136
136
|
const adb = /** @type {ADB} */ (this.adb);
|
|
137
137
|
if (shouldEnableAirplaneMode !== isAirplaneModeEnabled) {
|
|
138
|
-
await
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if ((await adb.getApiLevel()) < 30) {
|
|
143
|
-
await adb.broadcastAirplaneMode(shouldEnableAirplaneMode);
|
|
144
|
-
}
|
|
145
|
-
});
|
|
138
|
+
await adb.setAirplaneMode(shouldEnableAirplaneMode);
|
|
139
|
+
if ((await adb.getApiLevel()) < 30) {
|
|
140
|
+
await adb.broadcastAirplaneMode(shouldEnableAirplaneMode);
|
|
141
|
+
}
|
|
146
142
|
} else {
|
|
147
143
|
this.log.info(
|
|
148
144
|
`Not changing airplane mode, since it is already ${
|
|
@@ -161,27 +157,25 @@ const NetworkMixin = {
|
|
|
161
157
|
return ~AIRPLANE_MODE_MASK & currentState;
|
|
162
158
|
}
|
|
163
159
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
160
|
+
if (shouldEnableWifi !== isWiFiEnabled) {
|
|
161
|
+
await this.setWifiState(shouldEnableWifi);
|
|
162
|
+
} else {
|
|
163
|
+
this.log.info(
|
|
164
|
+
`Not changing Wi-Fi state, since it is already ` +
|
|
165
|
+
`${shouldEnableWifi ? 'enabled' : 'disabled'}`
|
|
166
|
+
);
|
|
167
|
+
}
|
|
173
168
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
});
|
|
169
|
+
if (shouldEnableAirplaneMode) {
|
|
170
|
+
this.log.info('Not changing data connection state, because airplane mode is enabled');
|
|
171
|
+
} else if (shouldEnableDataConnection === isDataEnabled) {
|
|
172
|
+
this.log.info(
|
|
173
|
+
`Not changing data connection state, since it is already ` +
|
|
174
|
+
`${shouldEnableDataConnection ? 'enabled' : 'disabled'}`
|
|
175
|
+
);
|
|
176
|
+
} else {
|
|
177
|
+
await adb.setDataState(shouldEnableDataConnection, this.isEmulator());
|
|
178
|
+
}
|
|
185
179
|
|
|
186
180
|
return await this.getNetworkConnection();
|
|
187
181
|
},
|
|
@@ -194,18 +188,14 @@ const NetworkMixin = {
|
|
|
194
188
|
const adb = /** @type {ADB} */ (this.adb);
|
|
195
189
|
let data = !(await adb.isDataOn());
|
|
196
190
|
this.log.info(`Turning network data ${data ? 'on' : 'off'}`);
|
|
197
|
-
await
|
|
198
|
-
await adb.setWifiAndData({data}, this.isEmulator());
|
|
199
|
-
});
|
|
191
|
+
await adb.setWifiAndData({data}, this.isEmulator());
|
|
200
192
|
},
|
|
201
193
|
|
|
202
194
|
async toggleWiFi() {
|
|
203
195
|
const adb = /** @type {ADB} */ (this.adb);
|
|
204
196
|
let wifi = !(await adb.isWifiOn());
|
|
205
197
|
this.log.info(`Turning WiFi ${wifi ? 'on' : 'off'}`);
|
|
206
|
-
await
|
|
207
|
-
await adb.setWifiAndData({wifi}, this.isEmulator());
|
|
208
|
-
});
|
|
198
|
+
await adb.setWifiAndData({wifi}, this.isEmulator());
|
|
209
199
|
},
|
|
210
200
|
|
|
211
201
|
async toggleFlightMode() {
|
|
@@ -216,14 +206,10 @@ const NetworkMixin = {
|
|
|
216
206
|
*/
|
|
217
207
|
let flightMode = !(await adb.isAirplaneModeOn());
|
|
218
208
|
this.log.info(`Turning flight mode ${flightMode ? 'on' : 'off'}`);
|
|
219
|
-
await
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if ((await adb.getApiLevel()) < 30) {
|
|
224
|
-
await adb.broadcastAirplaneMode(flightMode);
|
|
225
|
-
}
|
|
226
|
-
});
|
|
209
|
+
await adb.setAirplaneMode(flightMode);
|
|
210
|
+
if ((await adb.getApiLevel()) < 30) {
|
|
211
|
+
await adb.broadcastAirplaneMode(flightMode);
|
|
212
|
+
}
|
|
227
213
|
},
|
|
228
214
|
|
|
229
215
|
async setGeoLocation(location) {
|
|
@@ -270,25 +256,6 @@ const NetworkMixin = {
|
|
|
270
256
|
);
|
|
271
257
|
await /** @type {ADB} */ (this.adb).toggleGPSLocationProvider(!isGpsEnabled);
|
|
272
258
|
},
|
|
273
|
-
|
|
274
|
-
async wrapBootstrapDisconnect(wrapped) {
|
|
275
|
-
if (!this.bootstrap) {
|
|
276
|
-
return await wrapped();
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
this.bootstrap.ignoreUnexpectedShutdown = true;
|
|
280
|
-
try {
|
|
281
|
-
await wrapped();
|
|
282
|
-
await /** @type {ADB} */ (this.adb).restart();
|
|
283
|
-
await this.bootstrap.start(
|
|
284
|
-
this.opts.appPackage,
|
|
285
|
-
this.opts.disableAndroidWatchers,
|
|
286
|
-
this.opts.acceptSslCerts
|
|
287
|
-
);
|
|
288
|
-
} finally {
|
|
289
|
-
this.bootstrap.ignoreUnexpectedShutdown = false;
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
259
|
};
|
|
293
260
|
|
|
294
261
|
mixin(NetworkMixin);
|
|
@@ -63,7 +63,6 @@ const RETRY_PAUSE_MS = 1000;
|
|
|
63
63
|
* except 'TOTAL', which skips the second type name
|
|
64
64
|
* !!! valDict gets mutated
|
|
65
65
|
*/
|
|
66
|
-
// @ts-expect-error FIXME: type this properly
|
|
67
66
|
function parseMeminfoForApi19To29(entries, valDict) {
|
|
68
67
|
const [type, subType] = entries;
|
|
69
68
|
if (type === MEMINFO_TITLES.NATIVE && subType === MEMINFO_TITLES.HEAP) {
|
|
@@ -93,7 +92,6 @@ function parseMeminfoForApi19To29(entries, valDict) {
|
|
|
93
92
|
* ['<System Type', '<pps>', '<shared dirty>', '<private dirty>', '<heap size>', '<heap alloc>', '<heap free>']
|
|
94
93
|
* !!! valDict gets mutated
|
|
95
94
|
*/
|
|
96
|
-
// @ts-expect-error FIXME: type this properly
|
|
97
95
|
function parseMeminfoForApiBelow19(entries, valDict) {
|
|
98
96
|
const type = entries[0];
|
|
99
97
|
if (type === MEMINFO_TITLES.NATIVE) {
|
|
@@ -121,7 +119,6 @@ function parseMeminfoForApiBelow19(entries, valDict) {
|
|
|
121
119
|
* ['<System Type>', '<Memory Type>', <pss total>, <private dirty>, <private clean>, <swapPss dirty>, <rss total>, <heap size>, <heap alloc>, <heap free>]
|
|
122
120
|
* !!! valDict gets mutated
|
|
123
121
|
*/
|
|
124
|
-
// @ts-expect-error FIXME: type this properly
|
|
125
122
|
function parseMeminfoForApiAbove29(entries, valDict) {
|
|
126
123
|
const [type, subType] = entries;
|
|
127
124
|
if (type === MEMINFO_TITLES.NATIVE && subType === MEMINFO_TITLES.HEAP) {
|
|
@@ -184,7 +181,6 @@ async function getMemoryInfo(packageName, retries = 2) {
|
|
|
184
181
|
}
|
|
185
182
|
if (valDict.totalPrivateDirty && valDict.totalPrivateDirty !== 'nodex') {
|
|
186
183
|
const headers = _.clone(MEMORY_KEYS);
|
|
187
|
-
// @ts-expect-error FIXME: don't want to deal w/ it
|
|
188
184
|
const values = headers.map((header) => valDict[header]);
|
|
189
185
|
return [headers, values];
|
|
190
186
|
}
|
package/lib/commands/touch.js
CHANGED
|
@@ -398,25 +398,7 @@ const TouchMixin = {
|
|
|
398
398
|
},
|
|
399
399
|
|
|
400
400
|
async doPerformMultiAction(elementId, states) {
|
|
401
|
-
|
|
402
|
-
if (elementId) {
|
|
403
|
-
opts = {
|
|
404
|
-
elementId,
|
|
405
|
-
actions: states,
|
|
406
|
-
};
|
|
407
|
-
return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
|
|
408
|
-
'element:performMultiPointerGesture',
|
|
409
|
-
opts
|
|
410
|
-
);
|
|
411
|
-
} else {
|
|
412
|
-
opts = {
|
|
413
|
-
actions: states,
|
|
414
|
-
};
|
|
415
|
-
return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
|
|
416
|
-
'performMultiPointerGesture',
|
|
417
|
-
opts
|
|
418
|
-
);
|
|
419
|
-
}
|
|
401
|
+
throw new errors.NotImplementedError('Not implemented');
|
|
420
402
|
},
|
|
421
403
|
};
|
|
422
404
|
|
|
@@ -428,5 +410,4 @@ export default TouchMixin;
|
|
|
428
410
|
* @typedef {import('appium-adb').ADB} ADB
|
|
429
411
|
* @typedef {import('./types').TouchAction} TouchAction
|
|
430
412
|
* @typedef {import('./types').NonReleaseTouchAction} NonReleaseTouchAction
|
|
431
|
-
* @typedef {import('../bootstrap').AndroidBootstrap} AndroidBootstrap
|
|
432
413
|
*/
|
package/lib/constraints.ts
CHANGED
|
@@ -278,21 +278,12 @@ export const ANDROID_DRIVER_CONSTRAINTS = {
|
|
|
278
278
|
ignoreUnimportantViews: {
|
|
279
279
|
isBoolean: true,
|
|
280
280
|
},
|
|
281
|
-
disableAndroidWatchers: {
|
|
282
|
-
isBoolean: true,
|
|
283
|
-
},
|
|
284
281
|
acceptSslCerts: {
|
|
285
282
|
isBoolean: true,
|
|
286
283
|
},
|
|
287
|
-
androidNaturalOrientation: {
|
|
288
|
-
isBoolean: true,
|
|
289
|
-
},
|
|
290
284
|
disableWindowAnimation: {
|
|
291
285
|
isBoolean: true,
|
|
292
286
|
},
|
|
293
|
-
bootstrapPort: {
|
|
294
|
-
isNumber: true,
|
|
295
|
-
},
|
|
296
287
|
appWaitForLaunch: {
|
|
297
288
|
isBoolean: true,
|
|
298
289
|
},
|