Dispose iOS logs if logs plugin is not connected

Summary: See D27047041 (d293b2b0e5) for more details. This diff makes sure the log listener is disposed if the Logs plugin is disabled / the logging is paused, rather than keeping the connection open all time.

Reviewed By: nikoant

Differential Revision: D27083966

fbshipit-source-id: 6f157c237519a0fde9591f1c2033621858863de0
This commit is contained in:
Michel Weststrate
2021-03-16 20:08:53 -07:00
committed by Facebook GitHub Bot
parent 9d3c48fd84
commit 4f70219a47

View File

@@ -45,6 +45,7 @@ export default class IOSDevice extends BaseDevice {
buffer: string;
private recordingProcess?: ChildProcess;
private recordingLocation?: string;
private iOSBridge: IOSBridge;
constructor(
iOSBridge: IOSBridge,
@@ -55,7 +56,7 @@ export default class IOSDevice extends BaseDevice {
super(serial, deviceType, title, 'iOS');
this.icon = 'mobile';
this.buffer = '';
this.startLogListener(iOSBridge);
this.iOSBridge = iOSBridge;
}
async screenshot(): Promise<Buffer> {
@@ -81,10 +82,12 @@ export default class IOSDevice extends BaseDevice {
exec(command);
}
teardown() {
if (this.log) {
this.log.kill();
}
startLogging() {
this.startLogListener(this.iOSBridge);
}
stopLogging() {
this.log?.kill();
}
startLogListener(iOSBridge: IOSBridge, retries: number = 3) {
@@ -207,6 +210,11 @@ export default class IOSDevice extends BaseDevice {
}
return null;
}
disconnect() {
this.stopScreenCapture();
super.disconnect();
}
}
// Used to strip the initial output of the logging utility where it prints out settings.