@Override public IChatMessage sendMessage2(Geoloc geoloc) throws RemoteException {
  if (geoloc == null) {
    throw new ServerApiIllegalArgumentException("geoloc must not be null!");
  }
  String label=geoloc.getLabel();
  if (label != null) {
    int labelLength=label.length();
    int labelMaxLength=mRcsSettings.getMaxGeolocLabelLength();
    if (labelLength > labelMaxLength) {
      throw new ServerApiIllegalArgumentException("geoloc message label length: " + labelLength + " exeeds max length: "+ labelMaxLength+ "!");
    }
  }
  if (sLogger.isActivated()) {
    sLogger.debug("Send geolocation message.");
  }
  try {
    long timestamp=System.currentTimeMillis();
    final ChatMessage geolocMsg=ChatUtils.createGeolocMessage(mContact,geoloc,timestamp,timestamp);
    ChatMessagePersistedStorageAccessor persistentStorage=new ChatMessagePersistedStorageAccessor(mMessagingLog,geolocMsg.getMessageId(),geolocMsg.getRemoteContact(),geolocMsg.getContent(),geolocMsg.getMimeType(),mContact.toString(),Direction.OUTGOING);
    addOutgoingChatMessage(geolocMsg,Status.QUEUED);
    mImService.tryToDequeueOneToOneChatMessages(mContact);
    return new ChatMessageImpl(persistentStorage);
  }
 catch (  ServerApiBaseException e) {
    if (!e.shouldNotBeLogged()) {
      sLogger.error(ExceptionUtil.getFullStackTrace(e));
    }
    throw e;
  }
catch (  Exception e) {
    sLogger.error(ExceptionUtil.getFullStackTrace(e));
    throw new ServerApiGenericException(e);
  }
}

@ Override public IChatMessage sendMessage2 ( Geoloc geoloc ) throws RemoteException { if ( geoloc == null ) { throw new ServerApiIllegalArgumentException ( "geoloc must not be null!" ) ; } String label = geoloc . getLabel ( ) ; if ( label != null ) { int labelLength = label . length ( ) ; int labelMaxLength = mRcsSettings . getMaxGeolocLabelLength ( ) ; if ( labelLength > labelMaxLength ) { throw new ServerApiIllegalArgumentException ( "geoloc message label length: " + labelLength + " exeeds max length: " + labelMaxLength + "!" ) ; } } if ( sLogger . isActivated ( ) ) { sLogger . debug ( "Send geolocation message." ) ; } try { long timestamp = System . currentTimeMillis ( ) ; final ChatMessage geolocMsg = ChatUtils . createGeolocMessage ( mContact , geoloc , timestamp , timestamp ) ; ChatMessagePersistedStorageAccessor persistentStorage = new ChatMessagePersistedStorageAccessor ( mMessagingLog , geolocMsg . getMessageId ( ) , geolocMsg . getRemoteContact ( ) , geolocMsg . getContent ( ) , geolocMsg . getMimeType ( ) , mContact . toString ( ) , Direction . OUTGOING ) ; addOutgoingChatMessage ( geolocMsg , Status . QUEUED ) ; mImService . tryToDequeueOneToOneChatMessages ( mContact ) ; return new ChatMessageImpl ( persistentStorage ) ; } catch ( ServerApiBaseException e ) { if ( ! e . shouldNotBeLogged ( ) ) { sLogger . error ( ExceptionUtil . getFullStackTrace ( e ) ) ; } throw e ; } catch ( Exception e ) { sLogger . error ( ExceptionUtil . getFullStackTrace ( e ) ) ; throw new ServerApiGenericException ( e ) ; } }
sends a geoloc message
