getUserStreak method

Future<UserStreak?> getUserStreak()

Retrieves the current user's driving streak information.

A streak represents consecutive days/periods of safe driving behavior. This can be used to gamify the driving experience and encourage consistent safe driving habits.

Returns:

  • UserStreak?: Streak information object, or null if not available

Usage:

try {
  final streak = await communicator.getUserStreak();
  if (streak != null) {
    print('Current streak: ${streak.currentStreak} days');
    print('Best streak: ${streak.longestStreak} days');
  }
} catch (e) {
  print('Failed to get user streak: $e');
}

Throws:

  • Future.error("Unable to get user streak"): When retrieval fails

Prerequisites:

  • User must be logged in
  • Some trip data must exist for meaningful streak calculation

Implementation

Future<UserStreak?> getUserStreak() async {
  try {
    return await kruzr_comm.getUserStreak();
  } on PlatformException catch (e) {
    if (kDebugMode) {
      print(e);
      print("PlatformException in getUserStreak");
    }
    return Future.error("Unable to get user streak");
  } on Exception catch (e) {
    if (kDebugMode) {
      print(e);
      print("Exception in getUserStreak");
    }
    return Future.error("Unable to get user streak");
  }
}