package com.masseranolabs.snappyfrog;
import org.robovm.apple.coregraphics.CGRect;
import org.robovm.apple.coregraphics.CGSize;
import org.robovm.apple.foundation.NSArray;
import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.foundation.NSDictionary;
import org.robovm.apple.foundation.NSObject;
import org.robovm.apple.foundation.NSString;
import org.robovm.apple.uikit.UIApplication;
import org.robovm.apple.uikit.UIScreen;
import org.robovm.bindings.admob.GADAdSizeManager;
import org.robovm.bindings.admob.GADBannerView;
import org.robovm.bindings.admob.GADBannerViewDelegateAdapter;
import org.robovm.bindings.admob.GADRequest;
import com.badlogic.gdx.Application;
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
import com.badlogic.gdx.utils.Logger;
import com.masseranolabs.bridge.SLComposeViewController;
public class RobovmLauncher extends IOSApplication.Delegate {
// Admob stuff
private static final Logger log = new Logger(RobovmLauncher.class.getName(), Application.LOG_DEBUG);
private static final boolean USE_TEST_DEVICES = false;
private GADBannerView adview;
private boolean adsInitialized = false;
private IOSApplication iosApplication;
public static boolean isSharingAvailable(){
return SLComposeViewController.isAvailable(SLComposeViewController.ServiceTypeTwitter) ||
SLComposeViewController.isAvailable(SLComposeViewController.ServiceTypeFacebook);
}
public static SLComposeViewController getSLComposeViewController(){
if (SLComposeViewController.isAvailable(SLComposeViewController.ServiceTypeTwitter)){
return SLComposeViewController.fromService(SLComposeViewController.ServiceTypeTwitter);
}else if (SLComposeViewController.isAvailable(SLComposeViewController.ServiceTypeFacebook)){
return SLComposeViewController.fromService(SLComposeViewController.ServiceTypeFacebook);
}
return null;
}
@Override
protected IOSApplication createApplication() {
final IOSApplicationConfiguration config = new IOSApplicationConfiguration();
config.orientationLandscape = true;
config.orientationPortrait = false;
iosApplication = new IOSApplication(new Game(new iOSServices()), config);
return iosApplication;
}
public static void main(String[] argv) {
NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(argv, null, RobovmLauncher.class);
pool.close();
}
@Override
public boolean didFinishLaunching(UIApplication application,
NSDictionary<NSString, ?> launchOptions) {
super.didFinishLaunching(application, launchOptions);
showAds();
return true;
}
public void showAds() {
initializeAds();
final CGSize screenSize = UIScreen.getMainScreen().getBounds().size();
double screenWidth = screenSize.height();
double screenHeight = screenSize.width();
final CGSize adSize = adview.getBounds().size();
double adWidth = adSize.width();
double adHeight = adSize.height();
log.debug(String.format("Hidding ad. size[%s, %s]", adWidth, adHeight));
float bannerWidth = (float) screenWidth;
float bannerHeight = (float) (bannerWidth / adWidth * adHeight);
log.debug(String.format("%s, %s, %s", screenWidth, screenHeight, bannerHeight));
adview.setFrame(new CGRect(0,
screenHeight - bannerHeight,
bannerWidth, bannerHeight));
}
public void initializeAds() {
if (!adsInitialized) {
log.debug("Initalizing ads...");
adsInitialized = true;
adview = new GADBannerView(GADAdSizeManager.smartBannerLandscape()); //.smartBannerPortrait()
adview.setAdUnitID("ca-app-pub-3144450577280402/6483128178"); //put your secret key here
adview.setRootViewController(iosApplication.getUIViewController());
iosApplication.getUIViewController().getView().addSubview(adview);
final GADRequest request = GADRequest.request();
if (USE_TEST_DEVICES) {
final NSArray<?> testDevices = new NSArray<NSObject>(
new NSString(GADRequest.GAD_SIMULATOR_ID));
request.setTestDevices(testDevices);
log.debug("Test devices: " + request.getTestDevices());
}
adview.setDelegate(new GADBannerViewDelegateAdapter() {
@Override
public void didReceiveAd(GADBannerView view) {
super.didReceiveAd(view);
//log.debug("didReceiveAd");
}
});
adview.loadRequest(request);
log.debug("Initalizing ads complete.");
}
}
}