overrideSimStatusBar function

Future<SimStatusBarResult> overrideSimStatusBar(
  1. SimStatusBarOverrideInput input
)

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();
}