import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:in_app_review/in_app_review.dart'; class RequestReviewHandler { static const _coolDownDurationInDays = 30; static void requestReview() async { final sharedPrefs = await SharedPreferences.getInstance(); final lastReviewRequestDate = DateTime.tryParse(sharedPrefs.getString(PreferencesKey.lastAppReviewDate) ?? '') ?? DateTime.now().subtract(Duration(days: _coolDownDurationInDays + 1)); final durationSinceLastRequest = DateTime.now().difference(lastReviewRequestDate).inDays; if (durationSinceLastRequest < _coolDownDurationInDays) { return; } sharedPrefs.setString(PreferencesKey.lastAppReviewDate, DateTime.now().toString()); final InAppReview inAppReview = InAppReview.instance; if (await inAppReview.isAvailable()) { inAppReview.requestReview(); } } }