Skip to content

Commit e3a0148

Browse files
fix: Respect adb settings provided to the driver (#19)
1 parent c816a93 commit e3a0148

File tree

4 files changed

+25
-22
lines changed

4 files changed

+25
-22
lines changed

src/android.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,16 @@ export const startAndroidSession = async (
2323
};
2424

2525
export async function androidPortForward(
26-
udid: string,
26+
adb: ADB,
2727
systemPort: number,
2828
devicePort: number,
2929
) {
30-
let adb = new ADB();
31-
if (udid) adb.setDeviceId(udid);
3230
await adb.forwardPort(systemPort!, devicePort);
3331
}
3432

3533
export async function androidRemovePortForward(
36-
udid: string,
34+
adb: ADB,
3735
systemPort: number,
3836
) {
39-
let adb = new ADB();
40-
if (udid) adb.setDeviceId(udid);
4137
await adb.removePortForward(systemPort);
4238
}

src/driver.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import {
3131
import { W3C_WEB_ELEMENT_IDENTIFIER } from '@appium/support/build/lib/util';
3232
import { androidPortForward, androidRemovePortForward } from './android';
3333
import { iosPortForward, iosRemovePortForward } from './iOS';
34-
import { sleep } from 'asyncbox';
34+
import type { PortForwardCallback, PortReleaseCallback } from './types';
3535

3636
export class AppiumFlutterDriver extends BaseDriver<FlutterDriverConstraints> {
3737
// @ts-ignore
@@ -228,17 +228,25 @@ export class AppiumFlutterDriver extends BaseDriver<FlutterDriverConstraints> {
228228
? this.proxydriver.opts.appPackage!
229229
: this.proxydriver.opts.bundleId!;
230230

231-
let portcallbacks = {};
231+
const portcallbacks: {
232+
portForwardCallback?: PortForwardCallback,
233+
portReleaseCallback?: PortReleaseCallback,
234+
} = {};
232235
if (this.proxydriver instanceof AndroidUiautomator2Driver) {
233-
portcallbacks = {
234-
portForwardCallback: androidPortForward,
235-
portReleaseCallback: androidRemovePortForward,
236-
};
236+
portcallbacks.portForwardCallback = async (_: string, systemPort: number, devicePort: number) => await androidPortForward(
237+
// @ts-ignore ADB instance is ok
238+
(this.proxydriver as AndroidUiautomator2Driver).adb,
239+
systemPort,
240+
devicePort
241+
);
242+
portcallbacks.portReleaseCallback = async (_: string, systemPort: number) => await androidRemovePortForward(
243+
// @ts-ignore ADB instance is ok
244+
(this.proxydriver as AndroidUiautomator2Driver).adb,
245+
systemPort
246+
);
237247
} else if (this.proxydriver.isRealDevice()) {
238-
portcallbacks = {
239-
portForwardCallback: iosPortForward,
240-
portReleaseCallback: iosRemovePortForward,
241-
};
248+
portcallbacks.portForwardCallback = iosPortForward;
249+
portcallbacks.portReleaseCallback = iosRemovePortForward;
242250
}
243251
const flutterCaps: DriverCaps<FlutterDriverConstraints> = {
244252
flutterServerLaunchTimeout: this.internalCaps.flutterServerLaunchTimeout || 5000,

src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export type PortForwardCallback = (udid: string, systemPort: number, devicePort: number) => any;
2+
export type PortReleaseCallback = (udid: string, systemPort: number) => any;

src/utils.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { waitForCondition } from 'asyncbox';
66
import { JWProxy } from '@appium/base-driver';
77
import { desiredCapConstraints } from './desiredCaps';
88
import { DriverCaps } from '@appium/types';
9+
import type { PortForwardCallback, PortReleaseCallback } from './types';
910

1011
const DEVICE_PORT_RANGE = [9000, 9020];
1112
const SYSTEM_PORT_RANGE = [10000, 11000];
@@ -99,12 +100,8 @@ export async function fetchFlutterServerPort({
99100
}: {
100101
udid: string;
101102
systemPort?: number | null;
102-
portForwardCallback?: (
103-
udid: string,
104-
systemPort: number,
105-
devicePort: number,
106-
) => any;
107-
portReleaseCallback?: (udid: string, systemPort: number) => any;
103+
portForwardCallback?: PortForwardCallback;
104+
portReleaseCallback?: PortReleaseCallback;
108105
packageName: string;
109106
flutterCaps: DriverCaps<FlutterDriverConstraints>;
110107
}): Promise<number | null> {

0 commit comments

Comments
 (0)