// Overridden from Service public override void OnCreate() { base.OnCreate(); portal = new IONPortalService(); Java.Lang.Thread.DefaultUncaughtExceptionHandler = this; AppDomain.CurrentDomain.UnhandledException += (sender, e) => { Log.E(this, "Uncaught Exception", e.ExceptionObject as Exception); }; Android.Runtime.AndroidEnvironment.UnhandledExceptionRaiser += (sender, e) => { Log.E(this, "Unhandled exception", e.Exception); e.Handled = true; }; }
/// <summary> /// Sends a support email to appion. /// </summary> /// <returns>The app suppory email.</returns> public static void SendAppSupportEmail(this IONPortalService service, IION ion, Activity activity) { var dump = ion.CreateApplicationDump(); var i = new Intent(Intent.ActionSend); try { var file = ion.fileManager.CreateTemporaryFile("HostDetails.json"); var s = file.OpenForWriting(); var w = new StreamWriter(s); var json = Newtonsoft.Json.JsonConvert.SerializeObject(dump, Formatting.Indented); w.Write(json); w.Dispose(); s.Dispose(); i.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(new Java.IO.File(file.fullPath))); } catch (Exception e) { Log.E(THIS, "Failed to create the application dump", e); } i.SetFlags(ActivityFlags.NewTask | ActivityFlags.NoHistory); i.PutExtra(Intent.ExtraEmail, new string[] { AppionConstants.EMAIL_SUPPORT }); i.SetType(AppionConstants.MIME_RFC822); try { var chooser = Intent.CreateChooser(i, activity.GetString(Resource.String.preferences_send_feedback)); chooser.SetFlags(ActivityFlags.NewTask | ActivityFlags.NoHistory); activity.StartActivity(chooser); } catch (Exception e) { Log.E(THIS, "Failed to start e-mail activity for support message", e); var adb = new IONAlertDialog(activity, Resource.String.preferences_send_feedback); adb.SetMessage(Resource.String.preferences_send_feedback_failed); adb.SetNegativeButton(Resource.String.cancel, (obj, args) => { var dialog = obj as Dialog; dialog.Dismiss(); }); adb.SetPositiveButton(Resource.String.ok, (obj, args) => { var dialog = obj as Dialog; dialog.Dismiss(); try { activity.StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("market://details?id=" + activity.PackageName))); } catch (Exception ee) { Log.E(THIS, "Failed to start activity for maket with package name.", ee); activity.StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("http://play.google.com/store/apps/details?id=" + activity.PackageName))); } }); adb.Show(); } }
public LocalIosION(IONPortalService portal) : base(portal) { }
public RemoteIosION(IONPortalService portal) : base(portal) { }
/// <summary> /// Creates a new BaseION. /// </summary> /// <param name="name">Name.</param> public IosION(IONPortalService portal) { this.portal = portal; }