| 1 | import 'package:flutter_riverpod/flutter_riverpod.dart'; |
| 2 | |
| 3 | import '../constants/app_constants.dart'; |
| 4 | import '../services/review_prompt_service.dart'; |
| 5 | import 'app_providers.dart'; |
| 6 | import 'storage_providers.dart'; |
| 7 | |
| 8 | final reviewPromptClientProvider = Provider<ReviewPromptClient>((ref) { |
| 9 | return InAppReviewPromptClient(); |
| 10 | }); |
| 11 | |
| 12 | final reviewPromptServiceProvider = Provider<ReviewPromptService>((ref) { |
| 13 | final prefs = ref.watch(sharedPreferencesProvider); |
| 14 | final client = ref.watch(reviewPromptClientProvider); |
| 15 | |
| 16 | return ReviewPromptService( |
| 17 | prefs: prefs, |
| 18 | client: client, |
| 19 | appVersionLoader: () async { |
| 20 | try { |
| 21 | final packageInfo = await ref.read(packageInfoProvider.future); |
| 22 | final buildNumber = packageInfo.buildNumber; |
| 23 | if (buildNumber.isEmpty) { |
| 24 | return packageInfo.version; |
| 25 | } |
| 26 | return '${packageInfo.version}+$buildNumber'; |
| 27 | } catch (_) { |
| 28 | return AppConstants.version; |
| 29 | } |
| 30 | }, |
| 31 | ); |
| 32 | }); |