setAppStatus method

Future<void> setAppStatus()

Sets the app status and tracks install/update events.

Implementation

Future<void> setAppStatus() async {
  final session = await InternalSessionUtils.instance.getOrCreateSession();
  final appStatus = await AppVersionService().checkAppStatus();
  final nowTimezone = DateTime.now();
  final newSession = await InternalSessionUtils.instance.getOrCreateSession();

  if (appStatus case OptimusAppStatus.install) {
    final properties = OptimusProperties()
      ..addAttribute(version, newSession.appVersion)
      ..addAttribute(
        installedTime,
        nowTimezone.toUtc().millisecondsSinceEpoch,
      );
    await trackEvent(appStatusInstall, properties);
  } else if (appStatus case OptimusAppStatus.update) {
    final properties = OptimusProperties()
      ..addAttribute(versionFrom, session.appVersion)
      ..addAttribute(versionTo, newSession.appVersion)
      ..addAttribute(updatedOn, nowTimezone.toUtc().millisecondsSinceEpoch);
    await trackEvent(appStatusUpdate, properties);
  }
  await trackEvent(appStatusOpen);
}