overrideSimStatusBar function
Overrides the iOS simulator status bar with the given values.
All fields are optional; only the provided fields are overridden.
Never throws; all error conditions are represented as sealed result cases.
Implementation
Future<SimStatusBarResult> overrideSimStatusBar(SimStatusBarOverrideInput input) async {
final device = await resolveSimulatorDevice();
final args = <String>[
'status_bar',
device,
'override',
if (input.time != null) ...['--time', input.time!],
if (input.dataNetwork != null) ...['--dataNetwork', input.dataNetwork!],
if (input.wifiMode != null) ...['--wifiMode', input.wifiMode!],
if (input.wifiBars != null) ...['--wifiBars', '${input.wifiBars}'],
if (input.cellularMode != null) ...['--cellularMode', input.cellularMode!],
if (input.cellularBars != null) ...['--cellularBars', '${input.cellularBars}'],
if (input.operatorName != null) ...['--operatorName', input.operatorName!],
if (input.batteryState != null) ...['--batteryState', input.batteryState!],
if (input.batteryLevel != null) ...['--batteryLevel', '${input.batteryLevel}'],
];
final error = await runSimctl(args);
if (error != null) {
return SimStatusBarFailed(error);
}
return const SimStatusBarOverridden();
}