start static method

Future<void> start()

Begins observing. Balanced by stop; observation runs while any caller has started it.

Implementation

static Future<void> start() async {
  if (!_isIOS) return;
  _clients++;
  if (!_handlerInstalled) {
    _handlerInstalled = true;
    _channel.setMethodCallHandler((call) async {
      if (call.method == 'onStateChanged') {
        _state.value = CNFoldableState.fromMap(
          call.arguments as Map<Object?, Object?>?,
        );
      }
    });
  }
  if (_clients != 1) return;
  try {
    final reply = await _channel.invokeMapMethod<Object?, Object?>('start');
    _state.value = CNFoldableState.fromMap(reply);
  } on MissingPluginException {
    // Tests and hot-restart edge cases: stay unsupported.
  } on PlatformException {
    // Same.
  }
}