storeOlmSession method

Future<void> storeOlmSession(
  1. OlmSession session
)

Implementation

Future<void> storeOlmSession(OlmSession session) async {
  if (session.sessionId == null || session.pickledSession == null) {
    return;
  }

  _olmSessions[session.identityKey] ??= <OlmSession>[];
  final ix = _olmSessions[session.identityKey]!
      .indexWhere((s) => s.sessionId == session.sessionId);
  if (ix == -1) {
    // add a new session
    _olmSessions[session.identityKey]!.add(session);
  } else {
    // update an existing session
    _olmSessions[session.identityKey]![ix] = session;
  }
  await encryption.olmDatabase?.storeOlmSession(
    session.identityKey,
    session.sessionId!,
    session.pickledSession!,
    session.lastReceived?.millisecondsSinceEpoch ??
        DateTime.now().millisecondsSinceEpoch,
  );
}