2020-01-24 16:23:31 +01:00
|
|
|
package com.darkweb.genesissearchengine.pluginManager;
|
|
|
|
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
|
|
|
import com.google.android.gms.ads.*;
|
2021-01-28 11:22:41 +01:00
|
|
|
import java.util.List;
|
2020-11-11 13:11:13 +01:00
|
|
|
import static com.darkweb.genesissearchengine.constants.status.sPaidStatus;
|
2021-01-28 11:22:41 +01:00
|
|
|
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_SHOW_LOADED_ADS;
|
2020-01-24 16:23:31 +01:00
|
|
|
|
|
|
|
class adManager
|
|
|
|
{
|
|
|
|
|
2020-11-11 13:11:13 +01:00
|
|
|
/*Private Variables */
|
2020-01-24 16:23:31 +01:00
|
|
|
|
|
|
|
private AppCompatActivity mAppContext;
|
|
|
|
private eventObserver.eventListener mEvent;
|
|
|
|
private AdView mBannerAds;
|
2020-12-11 08:05:08 +01:00
|
|
|
|
2020-01-24 16:23:31 +01:00
|
|
|
private boolean bannerAdsLoading = false;
|
|
|
|
private boolean bannerAdsLoaded = false;
|
|
|
|
|
|
|
|
/*Initializations*/
|
|
|
|
|
2021-01-28 11:22:41 +01:00
|
|
|
adManager(AppCompatActivity pAppContext, eventObserver.eventListener pEvent, AdView pBannerAds) {
|
|
|
|
this.mAppContext = pAppContext;
|
|
|
|
this.mEvent = pEvent;
|
|
|
|
mBannerAds = pBannerAds;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void initializeBannerAds(){
|
|
|
|
if(!sPaidStatus){
|
|
|
|
AdRequest request = new AdRequest.Builder().build();
|
|
|
|
mBannerAds.loadAd(request);
|
|
|
|
admobListeners();
|
|
|
|
}
|
2020-01-24 16:23:31 +01:00
|
|
|
}
|
|
|
|
|
2021-01-28 11:22:41 +01:00
|
|
|
/*Local Helper Methods*/
|
|
|
|
|
|
|
|
private void loadAds(){
|
2020-11-11 13:11:13 +01:00
|
|
|
if(!sPaidStatus)
|
2020-01-24 16:23:31 +01:00
|
|
|
{
|
|
|
|
if (!bannerAdsLoading)
|
|
|
|
{
|
|
|
|
bannerAdsLoading = true;
|
2021-01-28 11:22:41 +01:00
|
|
|
MobileAds.initialize(mAppContext, initializationStatus -> { });
|
2021-02-07 18:40:35 +01:00
|
|
|
|
2020-01-24 16:23:31 +01:00
|
|
|
initializeBannerAds();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-01-28 11:22:41 +01:00
|
|
|
private boolean isAdvertLoaded(){
|
2020-01-24 16:23:31 +01:00
|
|
|
return bannerAdsLoaded;
|
|
|
|
}
|
|
|
|
|
2021-01-28 11:22:41 +01:00
|
|
|
/*Local Listeners*/
|
2020-01-24 16:23:31 +01:00
|
|
|
|
|
|
|
private void admobListeners(){
|
2020-11-11 13:11:13 +01:00
|
|
|
if(!sPaidStatus){
|
2020-01-24 16:23:31 +01:00
|
|
|
mBannerAds.setAdListener(new AdListener() {
|
|
|
|
@Override
|
|
|
|
public void onAdLoaded() {
|
|
|
|
bannerAdsLoaded = true;
|
2021-01-28 11:22:41 +01:00
|
|
|
mEvent.invokeObserver(null,M_SHOW_LOADED_ADS);
|
2020-01-24 16:23:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onAdOpened() {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onAdClicked() {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onAdLeftApplication() {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onAdClosed() {
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-01-28 11:22:41 +01:00
|
|
|
/*External Triggers*/
|
2020-01-24 16:23:31 +01:00
|
|
|
|
2021-01-28 11:22:41 +01:00
|
|
|
Object onTrigger(List<Object> pData, pluginEnums.eAdManager pEventType) {
|
|
|
|
if(pEventType.equals(pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS))
|
|
|
|
{
|
|
|
|
loadAds();
|
|
|
|
}
|
|
|
|
else if(pEventType.equals(pluginEnums.eAdManager.M_IS_ADVERT_LOADED))
|
|
|
|
{
|
|
|
|
return isAdvertLoaded();
|
2020-01-24 16:23:31 +01:00
|
|
|
}
|
2021-01-28 11:22:41 +01:00
|
|
|
return null;
|
2020-01-24 16:23:31 +01:00
|
|
|
}
|
|
|
|
}
|