cockpitProbeAndroidDeviceState function
Future<CockpitAndroidDeviceProbeResult>
cockpitProbeAndroidDeviceState(
- CockpitProcessManager processManager,
- String deviceId, {
- required Duration timeout,
Implementation
Future<CockpitAndroidDeviceProbeResult> cockpitProbeAndroidDeviceState(
CockpitProcessManager processManager,
String deviceId, {
required Duration timeout,
}) async {
try {
final result = await processManager
.run('adb', <String>['-s', deviceId, 'get-state'])
.timeout(timeout);
final state = _processOutputText(result.stdout).trim();
if (result.exitCode == 0 && state == 'device') {
return CockpitAndroidDeviceProbeResult.reachable(state);
}
final stderr = _processOutputText(result.stderr).trim();
return CockpitAndroidDeviceProbeResult.blocked(
state: state.isEmpty ? null : state,
failureReason: stderr.isEmpty ? 'adbDeviceNotReady' : stderr,
);
} on TimeoutException {
return const CockpitAndroidDeviceProbeResult.blocked(
failureReason: 'adbDeviceProbeTimedOut',
);
} on ProcessException catch (error) {
return CockpitAndroidDeviceProbeResult.blocked(
failureReason: error.message.isEmpty ? 'adbUnavailable' : error.message,
);
} on Object catch (error) {
return CockpitAndroidDeviceProbeResult.blocked(failureReason: '$error');
}
}