LeOS-Genesis/app/src/main/java/com/darkweb/genesissearchengine/pluginManager/adManager.java

105 lines
2.8 KiB
Java
Raw Normal View History

2020-01-24 16:23:31 +01:00
package com.darkweb.genesissearchengine.pluginManager;
2021-02-15 21:26:33 +01:00
import android.view.View;
2020-01-24 16:23:31 +01:00
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.google.android.gms.ads.*;
2021-04-11 21:25:15 +02:00
import java.lang.ref.WeakReference;
2021-01-28 11:22:41 +01:00
import java.util.List;
2021-03-09 07:36:59 +01:00
import java.util.Timer;
import java.util.TimerTask;
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 eventObserver.eventListener mEvent;
2021-04-11 21:25:15 +02:00
private WeakReference<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-04-11 21:25:15 +02:00
adManager(eventObserver.eventListener pEvent, AdView pBannerAds) {
2021-01-28 11:22:41 +01:00
this.mEvent = pEvent;
2021-04-11 21:25:15 +02:00
mBannerAds = new WeakReference(pBannerAds);
2021-01-28 11:22:41 +01:00
}
private void initializeBannerAds(){
if(!sPaidStatus){
AdRequest request = new AdRequest.Builder().build();
2021-04-11 21:25:15 +02:00
mBannerAds.get().loadAd(request);
2021-03-14 18:59:37 +01:00
admobListeners();
2021-01-28 11:22:41 +01:00
}
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
/*Local Helper Methods*/
2021-04-11 21:25:15 +02:00
private void loadAds(AppCompatActivity pAppContext){
2020-11-11 13:11:13 +01:00
if(!sPaidStatus)
2020-01-24 16:23:31 +01:00
{
if (!bannerAdsLoading)
{
bannerAdsLoading = true;
2021-04-11 21:25:15 +02:00
MobileAds.initialize(pAppContext.getApplicationContext(), 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){
2021-04-11 21:25:15 +02:00
mBannerAds.get().setAdListener(new AdListener() {
2020-01-24 16:23:31 +01:00
@Override
public void onAdLoaded() {
bannerAdsLoaded = true;
}
@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))
{
2021-04-11 21:25:15 +02:00
loadAds((AppCompatActivity)pData.get(0));
2021-01-28 11:22:41 +01:00
}
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
}
}