#if UNITY_ANDROID //&& !UNITY_EDITOR using UnityEngine; namespace Azerion.BlueStack.Platforms.Android { public class AndroidJavaObjectFactory { public static AndroidJavaObjectFactory Instance { get; } = new AndroidJavaObjectFactory(); public void RunOnUiThread(System.Action action) { AndroidJavaClass playerClass = new AndroidJavaClass(BlueStackNativeClassNames.UnityActivityClassName); AndroidJavaObject activity = playerClass.GetStatic("currentActivity"); activity.Call("runOnUiThread", new AndroidJavaRunnable(action)); } public virtual AndroidJavaObject CreateUnityRewardedAdAndroidJavaObject(object unityRewardedAdListener) { AndroidJavaClass playerClass = new AndroidJavaClass(BlueStackNativeClassNames.UnityActivityClassName); AndroidJavaObject activity = playerClass.GetStatic("currentActivity"); return new AndroidJavaObject(BlueStackNativeClassNames.UnityRewardedVideoAd, activity, unityRewardedAdListener); } public virtual AndroidJavaObject CreateUnityInterstitialAdAndroidJavaObject(object unityInterstitialAdListener) { AndroidJavaClass playerClass = new AndroidJavaClass(BlueStackNativeClassNames.UnityActivityClassName); AndroidJavaObject activity = playerClass.GetStatic("currentActivity"); return new AndroidJavaObject(BlueStackNativeClassNames.UnityInterstitialAd, activity, unityInterstitialAdListener); } public virtual AndroidJavaObject CreateUnityBannerAdAndroidJavaObject(object unityBannerAdListener) { AndroidJavaClass playerClass = new AndroidJavaClass(BlueStackNativeClassNames.UnityActivityClassName); AndroidJavaObject activity = playerClass.GetStatic("currentActivity"); return new AndroidJavaObject( BlueStackNativeClassNames.UnityBannerAdClassName, activity, unityBannerAdListener); } public virtual AndroidJavaObject CreateUnityNativeAdAndroidJavaObject(object unityNativeAdListener) { AndroidJavaClass playerClass = new AndroidJavaClass(BlueStackNativeClassNames.UnityActivityClassName); AndroidJavaObject activity = playerClass.GetStatic("currentActivity"); return new AndroidJavaObject(BlueStackNativeClassNames.UnityNativeAd, activity, unityNativeAdListener); } public virtual AndroidJavaObject CreateCrossPlatformClientSetupAndroidJavaObject() { AndroidJavaClass playerClass = new AndroidJavaClass(BlueStackNativeClassNames.UnityActivityClassName); AndroidJavaObject activity = playerClass.GetStatic("currentActivity"); return new AndroidJavaObject(BlueStackNativeClassNames.CrossPlatformClientSetup, activity); } } } #endif