registerApp method
Implementation
Future<void> registerApp(RegisterAppParameters registerAppParameters) async {
final adId = await AdClass.showUserMessage();
log("MultiAds:[_registerDevice]->AdId->$adId");
final publicToken =
await _registerDevice(adId, registerAppParameters.rewardType);
if (publicToken != null) {
if (Platform.isIOS && registerAppParameters.apiKey.iosKey == null) {
registerAppParameters.onError("No Api Key For Ios Platform");
return;
}
if (Platform.isAndroid &&
registerAppParameters.apiKey.androidKey == null) {
registerAppParameters.onError("No Api Key For Android Platform");
return;
}
GlobalAdVariables.deviceServerToken = publicToken;
final res = await _fetchConfig(
publicToken,
Platform.isIOS
? registerAppParameters.apiKey.iosKey ?? ""
: registerAppParameters.apiKey.androidKey ?? "",
registerAppParameters.appVersion,
);
if (res != null) {
log("MultiAds:[_registerDevice]->Active-AdLvl->${res['activeLevel']}");
GlobalAdVariables.fullJson = res;
GlobalAdVariables.screenAdJson = JsonMethods.parseScreenData(
json.decode(res['versions'][res['activeLevel']]),
);
GlobalAdVariables.adNetworkIds = JsonMethods.parseAdNetworkIds(
json.decode(res['versions']['adNetworkIds']),
);
GlobalAdVariables.globalAdFlag =
res['versions']['global_ad_status'] == 0;
GlobalAdVariables.initAdNetworks =
json.decode(res['versions']['init_ad_network']);
AdClass.initAdNetwork(
adNetworks: registerAppParameters.requiredAdNetworks,
initNetwork: GlobalAdVariables.initAdNetworks,
);
final updateConfig =
json.decode(res['versions']['update_dialog_config']);
if (updateConfig['show_update_dialog'] ?? false) {
showAdaptiveDialog(
context: registerAppParameters.context,
builder: (context) {
return AlertDialog.adaptive(
title: Text(
updateConfig['update_dialog_title'] ?? "",
),
content: Text(
updateConfig['update_dialog_message'] ?? "",
),
actions: (updateConfig['force_update'] ?? false)
? [
TextButton(
onPressed: () {
Navigator.pop(registerAppParameters.context);
registerAppParameters.onUpdateLaunch(
updateConfig['update_app_url'] ?? "");
},
child: Text(
updateConfig['update_dialog_button_text'],
style: TextStyle(
color: Colors.green,
),
),
),
]
: [
TextButton(
onPressed: () {
Navigator.pop(registerAppParameters.context);
Future.delayed(const Duration(seconds: 1), () {
MultiAds.showAdBasedOnScreen(
registerAppParameters.context,
adModuleWithCallBacks: AdModuleWithCallBacks(
onCloseEvent: () {
registerAppParameters.onComplete();
},
));
});
},
child: Text(
updateConfig['update_dialog_second_button_text'],
style: TextStyle(
color: Colors.red,
),
),
),
TextButton(
onPressed: () {
Navigator.pop(registerAppParameters.context);
registerAppParameters.onUpdateLaunch(
updateConfig['update_app_url'] ?? "");
},
child: Text(
updateConfig['update_dialog_button_text'],
style: TextStyle(
color: Colors.green,
),
),
),
],
);
},
);
return;
}
Future.delayed(const Duration(seconds: 1), () {
MultiAds.showAdBasedOnScreen(registerAppParameters.context,
adModuleWithCallBacks: AdModuleWithCallBacks(
onCloseEvent: () {
registerAppParameters.onComplete();
},
));
});
return;
}
registerAppParameters.onError("Config Fetch Error");
}
registerAppParameters.onError("No Public Token Register");
}