showMultipleRewardOptions static method
void
showMultipleRewardOptions({
- required BuildContext context,
- required dynamic onRewardEarned(),
- VoidCallback? onAdFailed,
Show multiple reward options dialog
Implementation
static void showMultipleRewardOptions({
required BuildContext context,
required Function(String rewardType, int amount) onRewardEarned,
VoidCallback? onAdFailed,
}) {
if (config.rewardConfigs.isEmpty) {
onAdFailed?.call();
return;
}
if (!canShowRewarded() || !AivoryAdControl.instance.isRewardedAdLoaded()) {
onAdFailed?.call();
return;
}
showDialog(
context: context,
builder:
(context) => AlertDialog(
title: const Text('Choose Your Reward'),
content: Column(
mainAxisSize: MainAxisSize.min,
children:
config.rewardConfigs.entries.map((entry) {
final rewardType = entry.key;
final rewardConfig = entry.value;
return ListTile(
title: Text(
'${rewardConfig.rewardAmount} ${rewardConfig.rewardType}',
),
subtitle: Text(rewardConfig.description),
onTap: () {
Navigator.pop(context);
_showRewardedAdForType(
rewardType,
rewardConfig,
onRewardEarned,
onAdFailed,
);
},
);
}).toList(),
),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: const Text('Cancel'),
),
],
),
);
}