- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
380 lines
15 KiB
Java
380 lines
15 KiB
Java
package com.unity3d.services.banners;
|
|
|
|
import android.annotation.TargetApi;
|
|
import android.app.Activity;
|
|
import android.app.Application;
|
|
import android.content.Context;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.SystemClock;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.RelativeLayout;
|
|
import com.unity3d.ads.UnityAds;
|
|
import com.unity3d.ads.UnityAdsLoadOptions;
|
|
import com.unity3d.services.banners.BannerView;
|
|
import com.unity3d.services.banners.properties.BannerRefreshInfo;
|
|
import com.unity3d.services.banners.view.BannerPosition;
|
|
import com.unity3d.services.core.log.DeviceLog;
|
|
import com.unity3d.services.core.misc.Utilities;
|
|
import com.unity3d.services.core.misc.ViewUtilities;
|
|
import com.unity3d.services.core.properties.ClientProperties;
|
|
import com.vungle.ads.internal.protos.Sdk;
|
|
import java.util.UUID;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
/* loaded from: classes4.dex */
|
|
public final class UnityBanners {
|
|
private static UnityBanners instance;
|
|
private IUnityBannerListener _bannerListener;
|
|
private BannerPosition _currentBannerPosition = BannerPosition.NONE;
|
|
private BannerWrapper _currentBannerWrapper;
|
|
|
|
private static UnityBanners getInstance() {
|
|
if (instance == null) {
|
|
instance = new UnityBanners();
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
public class BannerWrapper extends FrameLayout {
|
|
private BannerAdRefreshView _bannerAdRefreshView;
|
|
private BannerPosition _bannerPosition;
|
|
|
|
public BannerWrapper(Context context, BannerAdRefreshView bannerAdRefreshView) {
|
|
super(context);
|
|
this._bannerPosition = BannerPosition.NONE;
|
|
this._bannerAdRefreshView = bannerAdRefreshView;
|
|
addView(bannerAdRefreshView);
|
|
setupLayoutConstraints();
|
|
setBackgroundColor(0);
|
|
}
|
|
|
|
public void setBannerPosition(BannerPosition bannerPosition) {
|
|
this._bannerPosition = bannerPosition;
|
|
setupLayoutConstraints();
|
|
}
|
|
|
|
private void setupLayoutConstraints() {
|
|
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(-2, -2);
|
|
layoutParams.gravity = this._bannerPosition.getGravity();
|
|
setLayoutParams(layoutParams);
|
|
}
|
|
|
|
public void destroy() {
|
|
Utilities.runOnUiThread(new Runnable() { // from class: com.unity3d.services.banners.UnityBanners.BannerWrapper.1
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
this.removeAllViews();
|
|
ViewUtilities.removeViewFromParent(this);
|
|
}
|
|
});
|
|
BannerAdRefreshView bannerAdRefreshView = this._bannerAdRefreshView;
|
|
if (bannerAdRefreshView != null) {
|
|
bannerAdRefreshView.destroy();
|
|
this._bannerAdRefreshView = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
private UnityBanners() {
|
|
}
|
|
|
|
private void _loadBanner(Activity activity, String str) {
|
|
if (this._currentBannerWrapper == null) {
|
|
BannerAdRefreshView bannerAdRefreshView = new BannerAdRefreshView(activity, str, new UnityBannerSize(Sdk.SDKError.Reason.WEBVIEW_ERROR_VALUE, 50));
|
|
final BannerWrapper bannerWrapper = new BannerWrapper(activity, bannerAdRefreshView);
|
|
bannerWrapper.setBannerPosition(this._currentBannerPosition);
|
|
this._currentBannerWrapper = bannerWrapper;
|
|
bannerAdRefreshView.setListener(new BannerView.Listener() { // from class: com.unity3d.services.banners.UnityBanners.1
|
|
@Override // com.unity3d.services.banners.BannerView.Listener, com.unity3d.services.banners.BannerView.IListener
|
|
public void onBannerLoaded(BannerView bannerView) {
|
|
if (this._bannerListener != null) {
|
|
this._bannerListener.onUnityBannerLoaded(bannerView.getPlacementId(), bannerWrapper);
|
|
}
|
|
}
|
|
|
|
@Override // com.unity3d.services.banners.BannerView.Listener, com.unity3d.services.banners.BannerView.IListener
|
|
public void onBannerShown(BannerView bannerView) {
|
|
if (this._bannerListener != null) {
|
|
this._bannerListener.onUnityBannerShow(bannerView.getPlacementId());
|
|
}
|
|
}
|
|
|
|
@Override // com.unity3d.services.banners.BannerView.Listener, com.unity3d.services.banners.BannerView.IListener
|
|
public void onBannerFailedToLoad(BannerView bannerView, BannerErrorInfo bannerErrorInfo) {
|
|
if (this._bannerListener != null) {
|
|
this._bannerListener.onUnityBannerError(bannerView.getPlacementId() + " " + bannerErrorInfo.errorMessage);
|
|
}
|
|
}
|
|
|
|
@Override // com.unity3d.services.banners.BannerView.Listener, com.unity3d.services.banners.BannerView.IListener
|
|
public void onBannerClick(BannerView bannerView) {
|
|
if (this._bannerListener != null) {
|
|
this._bannerListener.onUnityBannerClick(bannerView.getPlacementId());
|
|
}
|
|
}
|
|
});
|
|
bannerAdRefreshView.load();
|
|
return;
|
|
}
|
|
sendError("A Banner is already in use, please call destroy before loading another banner!");
|
|
}
|
|
|
|
private void _destroy() {
|
|
BannerWrapper bannerWrapper = this._currentBannerWrapper;
|
|
if (bannerWrapper != null) {
|
|
bannerWrapper.destroy();
|
|
this._currentBannerWrapper = null;
|
|
}
|
|
}
|
|
|
|
private static void sendError(final String str) {
|
|
Utilities.runOnUiThread(new Runnable() { // from class: com.unity3d.services.banners.UnityBanners.2
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
IUnityBannerListener bannerListener = UnityBanners.getBannerListener();
|
|
if (bannerListener != null) {
|
|
bannerListener.onUnityBannerError(str);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
@Deprecated
|
|
public static void loadBanner(Activity activity, String str) {
|
|
DeviceLog.entered();
|
|
if (!UnityAds.isSupported()) {
|
|
sendError("Unity Ads is not supported on this device.");
|
|
}
|
|
if (!UnityAds.isInitialized()) {
|
|
sendError("UnityAds is not initialized.");
|
|
} else {
|
|
ClientProperties.setActivity(activity);
|
|
getInstance()._loadBanner(activity, str);
|
|
}
|
|
}
|
|
|
|
@Deprecated
|
|
public static void destroy() {
|
|
getInstance()._destroy();
|
|
}
|
|
|
|
@Deprecated
|
|
public static void setBannerListener(IUnityBannerListener iUnityBannerListener) {
|
|
getInstance()._bannerListener = iUnityBannerListener;
|
|
}
|
|
|
|
@Deprecated
|
|
public static IUnityBannerListener getBannerListener() {
|
|
return getInstance()._bannerListener;
|
|
}
|
|
|
|
@Deprecated
|
|
public static void setBannerPosition(BannerPosition bannerPosition) {
|
|
getInstance()._currentBannerPosition = bannerPosition;
|
|
}
|
|
|
|
public class BannerAdRefreshView extends RelativeLayout {
|
|
private BannerView bannerView;
|
|
private boolean didLoad;
|
|
private boolean didShow;
|
|
private boolean didSubscribeToLifecycle;
|
|
private LifecycleListener lifecycleListener;
|
|
private String placementId;
|
|
private Handler refreshHandler;
|
|
private long refreshRate;
|
|
private long refreshTime;
|
|
private Runnable reloadRunnable;
|
|
|
|
public BannerAdRefreshView(Activity activity, String str, UnityBannerSize unityBannerSize) {
|
|
super(activity);
|
|
this.didLoad = false;
|
|
this.refreshRate = 30L;
|
|
this.didShow = false;
|
|
this.didSubscribeToLifecycle = false;
|
|
this.placementId = str;
|
|
this.refreshHandler = new Handler();
|
|
this.reloadRunnable = new Runnable() { // from class: com.unity3d.services.banners.UnityBanners.BannerAdRefreshView.1
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
this.reload();
|
|
}
|
|
};
|
|
setupLayoutParams();
|
|
setBackgroundColor(0);
|
|
BannerView bannerView = new BannerView(activity, str, unityBannerSize);
|
|
this.bannerView = bannerView;
|
|
addView(bannerView);
|
|
}
|
|
|
|
public String getPlacementId() {
|
|
return this.bannerView.getPlacementId();
|
|
}
|
|
|
|
public UnityBannerSize getSize() {
|
|
return this.bannerView.getSize();
|
|
}
|
|
|
|
public void setListener(BannerView.IListener iListener) {
|
|
this.bannerView.setListener(iListener);
|
|
}
|
|
|
|
public BannerView.IListener getListener() {
|
|
return this.bannerView.getListener();
|
|
}
|
|
|
|
public void load() {
|
|
if (this.didLoad) {
|
|
return;
|
|
}
|
|
this.didLoad = true;
|
|
Integer refreshRate = BannerRefreshInfo.getInstance().getRefreshRate(this.placementId);
|
|
if (refreshRate != null) {
|
|
this.refreshRate = refreshRate.longValue();
|
|
}
|
|
reload();
|
|
}
|
|
|
|
public void destroy() {
|
|
stopReloadTask();
|
|
this.bannerView.destroy();
|
|
Utilities.runOnUiThread(new Runnable() { // from class: com.unity3d.services.banners.UnityBanners.BannerAdRefreshView.2
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
this.removeAllViews();
|
|
}
|
|
});
|
|
this.bannerView = null;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void startReloadTask() {
|
|
long uptimeMillis = SystemClock.uptimeMillis();
|
|
long j = this.refreshTime;
|
|
if (uptimeMillis < j) {
|
|
this.refreshHandler.postAtTime(this.reloadRunnable, j);
|
|
} else {
|
|
reload();
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void stopReloadTask() {
|
|
Runnable runnable;
|
|
Handler handler = this.refreshHandler;
|
|
if (handler == null || (runnable = this.reloadRunnable) == null) {
|
|
return;
|
|
}
|
|
handler.removeCallbacks(runnable);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void reload() {
|
|
UnityAdsLoadOptions unityAdsLoadOptions = new UnityAdsLoadOptions();
|
|
unityAdsLoadOptions.setObjectId(UUID.randomUUID().toString());
|
|
this.bannerView.load(unityAdsLoadOptions);
|
|
long uptimeMillis = SystemClock.uptimeMillis() + TimeUnit.SECONDS.toMillis(this.refreshRate);
|
|
this.refreshTime = uptimeMillis;
|
|
this.refreshHandler.postAtTime(this.reloadRunnable, uptimeMillis);
|
|
}
|
|
|
|
private void subscribeToLifecycle() {
|
|
if (this.didSubscribeToLifecycle || ClientProperties.getApplication() == null) {
|
|
return;
|
|
}
|
|
this.lifecycleListener = new LifecycleListener() { // from class: com.unity3d.services.banners.UnityBanners.BannerAdRefreshView.3
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
{
|
|
super();
|
|
}
|
|
|
|
@Override // com.unity3d.services.banners.UnityBanners.BannerAdRefreshView.LifecycleListener, android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityPaused(Activity activity) {
|
|
this.stopReloadTask();
|
|
}
|
|
|
|
@Override // com.unity3d.services.banners.UnityBanners.BannerAdRefreshView.LifecycleListener, android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityStopped(Activity activity) {
|
|
this.stopReloadTask();
|
|
}
|
|
|
|
@Override // com.unity3d.services.banners.UnityBanners.BannerAdRefreshView.LifecycleListener, android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityDestroyed(Activity activity) {
|
|
this.stopReloadTask();
|
|
}
|
|
|
|
@Override // com.unity3d.services.banners.UnityBanners.BannerAdRefreshView.LifecycleListener, android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityResumed(Activity activity) {
|
|
this.startReloadTask();
|
|
}
|
|
};
|
|
this.didSubscribeToLifecycle = true;
|
|
ClientProperties.getApplication().registerActivityLifecycleCallbacks(this.lifecycleListener);
|
|
}
|
|
|
|
private void unsubscribeFromLifecycle() {
|
|
if (!this.didSubscribeToLifecycle || this.lifecycleListener == null || ClientProperties.getApplication() == null) {
|
|
return;
|
|
}
|
|
this.didSubscribeToLifecycle = false;
|
|
ClientProperties.getApplication().unregisterActivityLifecycleCallbacks(this.lifecycleListener);
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public void onDetachedFromWindow() {
|
|
super.onDetachedFromWindow();
|
|
stopReloadTask();
|
|
unsubscribeFromLifecycle();
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public void onAttachedToWindow() {
|
|
super.onAttachedToWindow();
|
|
subscribeToLifecycle();
|
|
if (this.didShow) {
|
|
startReloadTask();
|
|
} else {
|
|
this.didShow = true;
|
|
}
|
|
}
|
|
|
|
private void setupLayoutParams() {
|
|
setLayoutParams(new RelativeLayout.LayoutParams(-2, -2));
|
|
}
|
|
|
|
@TargetApi(14)
|
|
public class LifecycleListener implements Application.ActivityLifecycleCallbacks {
|
|
@Override // android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityCreated(Activity activity, Bundle bundle) {
|
|
}
|
|
|
|
@Override // android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityDestroyed(Activity activity) {
|
|
}
|
|
|
|
@Override // android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityPaused(Activity activity) {
|
|
}
|
|
|
|
@Override // android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityResumed(Activity activity) {
|
|
}
|
|
|
|
@Override // android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
|
|
}
|
|
|
|
@Override // android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityStarted(Activity activity) {
|
|
}
|
|
|
|
@Override // android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityStopped(Activity activity) {
|
|
}
|
|
|
|
private LifecycleListener() {
|
|
}
|
|
}
|
|
}
|
|
}
|