markSessionStart function
Future<void> markSessionStart()
Implementation
Future<void> markSessionStart() async {
var currentTime = DateTime.now().millisecondsSinceEpoch;
SharedPreferences prefs = await SharedPreferences.getInstance();
var sessionStart = prefs.getInt("session-start") ?? 0;
var sessionEnd = prefs.getInt("session-end") ?? sessionStart;
var sessionLength = prefs.getInt("session-length") ?? 0;
sessionLength += sessionEnd - sessionStart;
prefs.setInt("session-length", sessionLength);
prefs.setInt("session-start", currentTime);
if (currentTime - sessionEnd > const Duration(seconds: 10).inMilliseconds) {
var sessionId = prefs.getString("session-id");
prefs.setString("session-id", randomAlphaNumeric(10));
prefs.setInt("session-length", 0);
prefs.setInt("session-end", 0);
if (sessionLength > 0) {
LogEvent event = LogEvent();
event.name = "session_length";
event.value = sessionLength.toString();
event.params = {"id": sessionId, "time": sessionLength};
LogApi().logEvent(event);
}
}
await prefs.setString("app_state", "resumed");
}