code: public OmemoMessage.Received decrypt(BareJid sender, OmemoElement omemoElement)
              throws SmackException.NotLoggedInException, CorruptedOmemoKeyException, NoRawSessionException,
              CryptoFailedException {
          LoggedInOmemoManager managerGuard = new LoggedInOmemoManager(this);
          return getOmemoService().decryptMessage(managerGuard, sender, omemoElement);
      }
docs: Manually decrypt an OmemoElement.
  This method should only be used for use-cases, where the internal listeners don't pick up on an incoming message.
  (for example MAM query results).
  
  @param sender bareJid of the message sender (must be the jid of the contact who sent the message)
  @param omemoElement omemoElement
  @return decrypted OmemoMessage
  
  @throws SmackException.NotLoggedInException if the Manager is not authenticated
  @throws CorruptedOmemoKeyException if our or their key is corrupted
  @throws NoRawSessionException if the message was not a preKeyMessage, but we had no session with the contact
  @throws CryptoFailedException if decryption fails