dev
dart 29 lines 975 Bytes
Raw
1 import 'package:cake_wallet/entities/preferences_key.dart';
2 import 'package:shared_preferences/shared_preferences.dart';
3 import 'package:in_app_review/in_app_review.dart';
4
5 class RequestReviewHandler {
6 static const _coolDownDurationInDays = 30;
7
8 static void requestReview() async {
9 final sharedPrefs = await SharedPreferences.getInstance();
10
11 final lastReviewRequestDate =
12 DateTime.tryParse(sharedPrefs.getString(PreferencesKey.lastAppReviewDate) ?? '') ??
13 DateTime.now().subtract(Duration(days: _coolDownDurationInDays + 1));
14
15 final durationSinceLastRequest = DateTime.now().difference(lastReviewRequestDate).inDays;
16
17 if (durationSinceLastRequest < _coolDownDurationInDays) {
18 return;
19 }
20
21 sharedPrefs.setString(PreferencesKey.lastAppReviewDate, DateTime.now().toString());
22
23 final InAppReview inAppReview = InAppReview.instance;
24
25 if (await inAppReview.isAvailable()) {
26 inAppReview.requestReview();
27 }
28 }
29 }