activateReferenceMessage method

void activateReferenceMessage(
  1. RCIMIWMessage message
)

Implementation

void activateReferenceMessage(RCIMIWMessage message) {
  if (_disposed) return;
  final operationId = ++_referenceOperationId;
  _focusScrollTimer?.cancel();
  _referenceMessage = message;
  _inputType = RCIMIWMessageInputType.text;
  notifyListeners();

  // 键盘被系统收起时 FocusNode 仍可能保持焦点。先断开旧连接,再在引用
  // 预览完成布局后重新聚焦,才能稳定唤起键盘。
  _focusNode.unfocus();
  WidgetsBinding.instance.addPostFrameCallback((_) {
    if (_disposed || operationId != _referenceOperationId) return;
    _focusNode.requestFocus();
  });
}