send method

Future<void> send(
  1. MessageDestination msgDest, {
  2. bool saveChanges = true,
})

Send message

Implementation

Future<void> send(MessageDestination msgDest, {bool saveChanges=true}) async {
  _logs?.print('Sending new message ext:${msgDest.toExt} accId:${msgDest.fromAccId}');

  try {
    //When accUri present - model loaded from json, search accId as it might be changed
    String accUri = _accountsModel.getUri(msgDest.fromAccId);

    //Send and get assigned id
    int myMessageId = await SiprixVoipSdk().sendMessage(msgDest) ?? 0;

    //Add to the list and notify UI
    _messages.add(MessageModel.outgoing(myMessageId, accUri, msgDest));
    if(_messages.length > maxItems)  _messages.removeAt(0);
    notifyListeners();

    //Log and save changes
    _logs?.print('Message post successfully with id: $myMessageId');
    if(saveChanges) _raiseSaveChanges();

  } on PlatformException catch (err) {
      _logs?.print('Can\'t send message: ${err.code} ${err.message} ');
      return Future.error((err.message==null) ? err.code : err.message!);
  }
}