using System.Collections; using System.Collections.Generic; using Android.App; using Android.Content; using Android.Gms.Ads; using Android.Net; using Android.Runtime; using Android.Views; using Android.Widget; using GameAnalyticsSDK; using GameAnalyticsSDK.Utilities; using TouchyTickets; namespace Android { public class AndroidPlatform : Platform { private readonly Activity activity; private readonly LinearLayout adLayout; public AndroidPlatform(Activity activity, LinearLayout adLayout) { this.activity = activity; this.adLayout = adLayout; } public override void SetupAds() { var ad = new AdView(this.activity) { AdUnitId = "ca-app-pub-5754829579653773/7841535920", AdSize = AdSize.SmartBanner }; ad.LoadAd(new AdRequest.Builder() .AddTestDevice("14B965C6457E17D2808061ADF7E34923") .Build()); this.adLayout.AddView(ad); } public override void SetupAnalytics(Dictionary json) { GameAnalytics.SetAutoDetectAppVersion(true); GameAnalytics.Initialize(this.activity, GA_MiniJSON.JsonEncode(new Hashtable(json))); AndroidEnvironment.UnhandledExceptionRaiser += (o, args) => GameAnalytics.NewErrorEvent(GAErrorSeverity.Critical, args.Exception.ToString()); } public override void AddResourceEvent(bool sink, string currency, float amount, string itemType, string itemId) { GameAnalytics.NewResourceEvent(sink ? GAResourceFlowType.Sink : GAResourceFlowType.Source, currency, amount, itemType, itemId); } public override void SetKeepScreenOn(bool keep) { if (keep) { this.activity.Window.AddFlags(WindowManagerFlags.KeepScreenOn); } else { this.activity.Window.ClearFlags(WindowManagerFlags.KeepScreenOn); } } public override void OpenRateLink() { this.activity.StartActivity(new Intent(Intent.ActionView, Uri.Parse("https://play.google.com/store/apps/details?id=de.ellpeck.touchytickets"))); } } }