Skip to content

Instantly share code, notes, and snippets.

@husen-hn
Created October 8, 2024 14:12
Show Gist options
  • Save husen-hn/111cf2491865218be7e2d310f5c61bcf to your computer and use it in GitHub Desktop.
Save husen-hn/111cf2491865218be7e2d310f5c61bcf to your computer and use it in GitHub Desktop.
import 'dart:io';
import 'dart:math';
import 'package:adivery/adivery.dart';
import 'package:adivery/adivery_ads.dart';
import 'package:bloc/bloc.dart';
import 'package:flutter/material.dart';
import 'package:freemake/apps/home/home_repository.dart';
part 'ad_state.dart';
class AdCubit extends Cubit<AdState> {
HomeRepository repository;
AdCubit({required this.repository})
: super(const AdState().copyWith(status: () => AdStatus.init));
get _interstitialPlacementID => '54ea235e-e78a-4721-8bd3-649ab4964c50';
getRewardedAd(
{required Function(bool isRewarded) reward,
required Function notLoaded}) async {
print('*********start');
bool rewarded = false;
try {
AdiveryPlugin.prepareRewardedAd(_interstitialPlacementID);
} catch (e) {
print('*****catch****$e');
}
AdiveryPlugin.addListener(
onRewardedClosed: (String placementId, bool isRewarded) {
// check rewarded to false for dont send true in callback twice
if (isRewarded && !rewarded) {
rewarded = true;
reward(true);
}
}, onError: (placement, reason) {
print('****onError*****$placement, $reason');
}, onInterstitialClicked: (e) {
print('****onInterstitialClicked*****$e');
}, onInterstitialClosed: (e) {
print('****onInterstitialClosed*****$e');
}, onInterstitialLoaded: (e) {
print('****onInterstitialLoaded*****$e');
}, onInterstitialShown: (e) {
print('****onInterstitialShown*****$e');
}, onRewardedClicked: (e) {
print('****onRewardedClicked*****$e');
}, onRewardedLoaded: (e) {
print('****onRewardedLoaded*****$e');
}, onRewardedShown: (e) {
print('****onRewardedShown*****$e');
});
try {
await AdiveryPlugin.isLoaded(_interstitialPlacementID).then((isLoaded) {
if (isLoaded ?? false) {
AdiveryPlugin.show(_interstitialPlacementID);
} else {
// notLoaded();
}
}, onError: (e) {
print('*********$e');
});
} catch (e) {
print('*****catch****$e');
}
reward(false);
}
Future<bool> hasNetwork() async {
try {
final result = await InternetAddress.lookup('google.com');
return result.isNotEmpty && result[0].rawAddress.isNotEmpty;
} on SocketException catch (_) {
return false;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment