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.
Files changed (88) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +4 -107
  3. package/build/lib/commands/actions.d.ts +0 -1
  4. package/build/lib/commands/actions.d.ts.map +1 -1
  5. package/build/lib/commands/actions.js +14 -139
  6. package/build/lib/commands/actions.js.map +1 -1
  7. package/build/lib/commands/context.d.ts.map +1 -1
  8. package/build/lib/commands/context.js +0 -1
  9. package/build/lib/commands/context.js.map +1 -1
  10. package/build/lib/commands/element.d.ts +0 -1
  11. package/build/lib/commands/element.d.ts.map +1 -1
  12. package/build/lib/commands/element.js +14 -48
  13. package/build/lib/commands/element.js.map +1 -1
  14. package/build/lib/commands/execute.d.ts.map +1 -1
  15. package/build/lib/commands/execute.js +0 -1
  16. package/build/lib/commands/execute.js.map +1 -1
  17. package/build/lib/commands/find.d.ts.map +1 -1
  18. package/build/lib/commands/find.js +1 -1
  19. package/build/lib/commands/find.js.map +1 -1
  20. package/build/lib/commands/general.d.ts +0 -1
  21. package/build/lib/commands/general.d.ts.map +1 -1
  22. package/build/lib/commands/general.js +6 -11
  23. package/build/lib/commands/general.js.map +1 -1
  24. package/build/lib/commands/index.d.ts +23 -23
  25. package/build/lib/commands/mixins.d.ts +2 -6
  26. package/build/lib/commands/mixins.d.ts.map +1 -1
  27. package/build/lib/commands/mixins.js.map +1 -1
  28. package/build/lib/commands/network.d.ts.map +1 -1
  29. package/build/lib/commands/network.js +27 -55
  30. package/build/lib/commands/network.js.map +1 -1
  31. package/build/lib/commands/performance.d.ts +4 -4
  32. package/build/lib/commands/performance.d.ts.map +1 -1
  33. package/build/lib/commands/performance.js +0 -4
  34. package/build/lib/commands/performance.js.map +1 -1
  35. package/build/lib/commands/touch.d.ts +0 -1
  36. package/build/lib/commands/touch.d.ts.map +1 -1
  37. package/build/lib/commands/touch.js +1 -15
  38. package/build/lib/commands/touch.js.map +1 -1
  39. package/build/lib/constraints.d.ts +0 -9
  40. package/build/lib/constraints.d.ts.map +1 -1
  41. package/build/lib/constraints.js +0 -9
  42. package/build/lib/constraints.js.map +1 -1
  43. package/build/lib/driver.d.ts +2 -50
  44. package/build/lib/driver.d.ts.map +1 -1
  45. package/build/lib/driver.js +1 -476
  46. package/build/lib/driver.js.map +1 -1
  47. package/build/lib/helpers/android.d.ts +0 -2
  48. package/build/lib/helpers/android.d.ts.map +1 -1
  49. package/build/lib/helpers/android.js +0 -2
  50. package/build/lib/helpers/android.js.map +1 -1
  51. package/build/lib/helpers/webview.js.map +1 -1
  52. package/build/lib/stubs.d.ts +0 -1
  53. package/build/lib/stubs.d.ts.map +1 -1
  54. package/build/lib/stubs.js +0 -1
  55. package/build/lib/stubs.js.map +1 -1
  56. package/build/lib/utils.d.ts +3 -4
  57. package/build/lib/utils.d.ts.map +1 -1
  58. package/build/lib/utils.js +3 -4
  59. package/build/lib/utils.js.map +1 -1
  60. package/lib/commands/actions.js +15 -163
  61. package/lib/commands/context.js +0 -1
  62. package/lib/commands/element.js +14 -68
  63. package/lib/commands/execute.js +0 -1
  64. package/lib/commands/find.ts +1 -2
  65. package/lib/commands/general.js +6 -11
  66. package/lib/commands/mixins.ts +0 -6
  67. package/lib/commands/network.js +28 -61
  68. package/lib/commands/performance.js +0 -4
  69. package/lib/commands/touch.js +1 -20
  70. package/lib/constraints.ts +0 -9
  71. package/lib/driver.ts +7 -595
  72. package/lib/helpers/android.ts +0 -4
  73. package/lib/helpers/webview.ts +1 -1
  74. package/lib/stubs.ts +0 -1
  75. package/lib/utils.js +4 -5
  76. package/package.json +3 -6
  77. package/bootstrap/README.md +0 -19
  78. package/bootstrap/bin/AppiumBootstrap.jar +0 -0
  79. package/build/lib/bootstrap.d.ts +0 -29
  80. package/build/lib/bootstrap.d.ts.map +0 -1
  81. package/build/lib/bootstrap.js +0 -213
  82. package/build/lib/bootstrap.js.map +0 -1
  83. package/build/lib/uiautomator.d.ts +0 -24
  84. package/build/lib/uiautomator.d.ts.map +0 -1
  85. package/build/lib/uiautomator.js +0 -102
  86. package/build/lib/uiautomator.js.map +0 -1
  87. package/lib/bootstrap.js +0 -227
  88. package/lib/uiautomator.js +0 -109
@@ -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 {util} from '@appium/support';
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
- let p = {attribute, elementId};
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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('element:getText', {
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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('element:click', {
119
- elementId,
120
- });
108
+ throw new errors.NotImplementedError('Not implemented');
121
109
  },
122
110
 
123
111
  async getLocation(elementId) {
124
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction(
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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('element:getSize', {
136
- elementId,
137
- });
120
+ throw new errors.NotImplementedError('Not implemented');
138
121
  },
139
122
 
140
123
  async getElementRect(elementId) {
141
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('element:getRect', {
142
- elementId,
143
- });
124
+ throw new errors.NotImplementedError('Not implemented');
144
125
  },
145
126
 
146
127
  async touchLongClick(elementId, x, y, duration) {
147
- let params = {elementId, x, y, duration};
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
- let params = {elementId, x, y};
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
- let params = {elementId, x, y};
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
- let params = {elementId, x, y};
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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('click', {x, y});
144
+ throw new errors.NotImplementedError('Not implemented');
184
145
  },
185
146
 
186
147
  async tap(elementId = null, x = null, y = null, count = 1) {
187
- if (!util.hasValue(elementId) && !util.hasValue(x) && !util.hasValue(y)) {
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
  */
@@ -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
  };
@@ -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
- return await (this.bootstrap as AndroidBootstrap).sendAction('find', params);
94
+ throw new errors.NotImplementedError('Not implemented');
96
95
  },
97
96
 
98
97
  findElOrEls,
@@ -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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('setText', params);
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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('source');
61
+ throw new errors.NotImplementedError('Not implemented');
61
62
  },
62
63
 
63
64
  async back() {
64
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('pressBack');
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
- return await /** @type {AndroidBootstrap} */ (this.bootstrap).sendAction('getDeviceSize');
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
- await this.initAUT();
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
  */
@@ -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 {
@@ -135,14 +135,10 @@ const NetworkMixin = {
135
135
 
136
136
  const adb = /** @type {ADB} */ (this.adb);
137
137
  if (shouldEnableAirplaneMode !== isAirplaneModeEnabled) {
138
- await this.wrapBootstrapDisconnect(async () => {
139
- await adb.setAirplaneMode(shouldEnableAirplaneMode);
140
- });
141
- await this.wrapBootstrapDisconnect(async () => {
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
- await this.wrapBootstrapDisconnect(async () => {
165
- if (shouldEnableWifi !== isWiFiEnabled) {
166
- await this.setWifiState(shouldEnableWifi);
167
- } else {
168
- this.log.info(
169
- `Not changing Wi-Fi state, since it is already ` +
170
- `${shouldEnableWifi ? 'enabled' : 'disabled'}`
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
- if (shouldEnableAirplaneMode) {
175
- this.log.info('Not changing data connection state, because airplane mode is enabled');
176
- } else if (shouldEnableDataConnection === isDataEnabled) {
177
- this.log.info(
178
- `Not changing data connection state, since it is already ` +
179
- `${shouldEnableDataConnection ? 'enabled' : 'disabled'}`
180
- );
181
- } else {
182
- await adb.setDataState(shouldEnableDataConnection, this.isEmulator());
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 this.wrapBootstrapDisconnect(async () => {
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 this.wrapBootstrapDisconnect(async () => {
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 this.wrapBootstrapDisconnect(async () => {
220
- await adb.setAirplaneMode(flightMode);
221
- });
222
- await this.wrapBootstrapDisconnect(async () => {
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
  }
@@ -398,25 +398,7 @@ const TouchMixin = {
398
398
  },
399
399
 
400
400
  async doPerformMultiAction(elementId, states) {
401
- let opts;
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
  */
@@ -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
  },