invoke static method

void invoke(
  1. String command,
  2. Object? parameter,
  3. Object? success_callback, {
  4. Object? progress_callback,
  5. Object? fail_callback,
  6. Object? other_fail_callback,
})

Implementation

static void invoke(
    String command, Object? parameter, Object? success_callback,
    {Object? progress_callback,
    Object? fail_callback,
    Object? other_fail_callback}) {
  if (!isListenEvent) {
    isListenEvent = true;
    _listenChannel
        .receiveBroadcastStream("TTLockListen")
        .listen(_onEvent, onError: _onError);
  }

  //开始、停止扫描的时候  清空之前所有的扫描回调
  if (command.contains("Scan")) {
    List<String> removeKeyList = [];
    _commandMap.keys.forEach((key) {
      if (key.contains("Scan")) {
        removeKeyList.add(key);
      }
    });
    removeKeyList.forEach((key) {
      _commandMap.remove(key);
    });
  }

  //只要有回调就加入队列,等待清除
  if (success_callback != null) {
    Map callbackMap = new Map();
    callbackMap[CALLBACK_SUCCESS] = success_callback;
    callbackMap[CALLBACK_PROGRESS] = progress_callback;
    callbackMap[CALLBACK_FAIL] = fail_callback;
    callbackMap[CALLBACK_OTHER_FAIL] = other_fail_callback;

    List<Map> commandList = _commandMap[command] ?? [];
    commandList.add(callbackMap);
    _commandMap[command] = commandList;
  }

  _commandChannel.invokeMethod(command, parameter);

  // if (printLog) {
  //   print(
  //       '----------------------------------------------------------------------------------------------------------');
  //   print('TTLock command: $command  parameter:$parameter');
  //   print(
  //       '----------------------------------------------------------------------------------------------------------');
  // }
}