SquareDash/Library/PackageCache/com.unity.services.mediation@1.0.5/Runtime/Plugins/Android/BannerAd.java
kingjuulian06 0efb85038a Arbeit 2
2023-11-21 22:03:49 +01:00

124 lines
3.9 KiB
Java

package com.unity3d.mediation;
import android.util.Log;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.view.ViewGroup;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
import com.unity3d.mediation.BannerAdView;
import com.unity3d.mediation.BannerAdViewSize;
import com.unity3d.mediation.IBannerAdViewListener;
import com.unity3d.mediation.errors.LoadError;
public class BannerAd {
Handler handler;
BannerAdView bannerAdView;
BannerAnchor bannerAnchor;
Activity activity;
public BannerAd(Activity activity, String adUnitId, BannerAdViewSize size, IBannerAdViewListener bannerListener) {
this.handler = new Handler(Looper.getMainLooper());
this.activity = activity;
this.bannerAdView = new BannerAdView(activity);
bannerAdView.setAdUnitId(adUnitId);
bannerAdView.setSize(size);
bannerAdView.setListener(new IBannerAdViewListener() {
@Override
public void onBannerAdViewLoaded(BannerAdView bannerAdView) {
bannerListener.onBannerAdViewLoaded(bannerAdView);
}
@Override
public void onBannerAdViewFailedLoad(BannerAdView bannerAdView, LoadError loadError, String errorMessage) {
bannerListener.onBannerAdViewFailedLoad(bannerAdView, loadError, errorMessage);
}
@Override
public void onBannerAdViewRefreshed(BannerAdView bannerAdView, LoadError loadError, String errorMessage) {
bannerListener.onBannerAdViewRefreshed(bannerAdView, loadError, errorMessage);
}
@Override
public void onBannerAdViewClicked(BannerAdView bannerAdView) {
bannerListener.onBannerAdViewClicked(bannerAdView);
}
});
}
public void destroy() {
bannerAdView.destroy();
}
public void load() {
bannerAdView.load();
}
public String getAdUnitId() {
return bannerAdView.getAdUnitId();
}
public AdState getAdState() {
return bannerAdView.getAdState();
}
public void setPosition(int anchor, int offsetX, int offsetY) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
if(bannerAdView.getParent() == null) {
activity.addContentView(bannerAdView, new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
bannerAdView.post(new Runnable() {
@Override
public void run() {
setPositionInternal(anchor, offsetX, offsetY);
}
});
}
else {
bannerAdView.post(new Runnable() {
@Override
public void run() {
setPositionInternal(anchor, offsetX, offsetY);
}
});
}
}
});
}
private void setPositionInternal (int anchor, int offsetX, int offsetY) {
FrameLayout.LayoutParams adLayoutParams = (FrameLayout.LayoutParams) bannerAdView.getLayoutParams();
if(adLayoutParams == null) return;
bannerAnchor = BannerAnchor.fromInteger(anchor);
int gravity = BannerAnchor.GetGravity(bannerAnchor);
adLayoutParams.gravity = gravity;
if(bannerAnchor.isTopRow()) {
adLayoutParams.topMargin = -offsetY;
}
else{
adLayoutParams.bottomMargin = offsetY;
}
if(bannerAnchor.isRightColumn()){
adLayoutParams.rightMargin = -offsetX;
}
else{
adLayoutParams.leftMargin = offsetX;
}
bannerAdView.setLayoutParams(adLayoutParams);
}
}