| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | 
							- 
 
- using System;
 
- using System.Diagnostics;
 
- using System.IO;
 
- using System.Threading.Tasks;
 
- using Foundation;
 
- using InABox.Mobile.iOS;
 
- using Plugin.LocalNotification.Platforms;
 
- using UIKit;
 
- using UserNotifications;
 
- using Xamarin.Forms;
 
- using Syncfusion.TreeView;
 
- using Syncfusion.XForms.iOS.TreeView;
 
- using Syncfusion.XForms.iOS.PopupLayout;
 
- namespace comal.timesheets.iOS
 
- {
 
-     // The UIApplicationDelegate for the application. This class is responsible for launching the 
 
-     // User Interface of the application, as well as listening (and optionally responding) to 
 
-     // application events from iOS.
 
-     [Register("AppDelegate")]
 
-     public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
 
-     {
 
-         //
 
-         // This method is invoked when the application has loaded and is ready to run. In this 
 
-         // method you should instantiate the window, load the UI into it and then make the window
 
-         // visible.
 
-         //
 
-         // You have 17 seconds to return from this method, or iOS will terminate your application.
 
-         //
 
-         public override bool FinishedLaunching(UIApplication uiApplication, NSDictionary launchOptions)
 
-         {
 
-             AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
 
-             TaskScheduler.UnobservedTaskException += TaskSchedulerOnUnobservedTaskException;
 
-             DependencyService.Register<Version_iOS>();
 
-             global::Xamarin.Forms.Forms.Init();
 
-             DisplayCrashReport();
 
-             Syncfusion.XForms.iOS.PopupLayout.SfPopupLayoutRenderer.Init();
 
-             Syncfusion.SfPdfViewer.XForms.iOS.SfPdfDocumentViewRenderer.Init();
 
-             Syncfusion.SfRangeSlider.XForms.iOS.SfRangeSliderRenderer.Init();
 
-             Syncfusion.SfImageEditor.XForms.iOS.SfImageEditorRenderer.Init();
 
-             Syncfusion.SfDataGrid.XForms.iOS.SfDataGridRenderer.Init();
 
-             Syncfusion.XForms.iOS.RichTextEditor.SfRichTextEditorRenderer.Init();
 
-             Syncfusion.SfMaps.XForms.iOS.SfMapsRenderer.Init();
 
-             Syncfusion.XForms.iOS.MaskedEdit.SfMaskedEditRenderer.Init();
 
-             SfTreeViewRenderer.Init();
 
-             Syncfusion.SfSchedule.XForms.iOS.SfScheduleRenderer.Init();
 
-             new Syncfusion.SfSchedule.XForms.iOS.SfScheduleRenderer();
 
-             XF.Material.iOS.Material.Init();
 
-             ZXing.Net.Mobile.Forms.iOS.Platform.Init();
 
-             Xamarin.IQKeyboardManager.SharedManager.Enable = true;
 
-             Syncfusion.XForms.iOS.SignaturePad.SfSignaturePadRenderer.Init();
 
-             Syncfusion.XForms.iOS.TabView.SfTabViewRenderer.Init();
 
-             if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
 
-             {
 
-                 // Request notification permissions from the user
 
-                 UNUserNotificationCenter.Current.RequestAuthorization(UNAuthorizationOptions.Alert, (approved, err) =>
 
-                 {
 
-                     // Handle approval
 
-                 });
 
-             }
 
-             UNUserNotificationCenter.Current.Delegate = new UserNotificationCenterDelegate();
 
-             if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
 
-             {
 
-                 var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes(
 
-                     UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null
 
-                 );
 
-                 uiApplication.RegisterUserNotificationSettings(notificationSettings);
 
-             }
 
-             // check for a notification
 
-             if (launchOptions != null)
 
-             {
 
-                 // check for a local notification
 
-                 if (launchOptions.ContainsKey(UIApplication.LaunchOptionsLocalNotificationKey))
 
-                 {
 
-                     var localNotification =
 
-                         launchOptions[UIApplication.LaunchOptionsLocalNotificationKey] as UILocalNotification;
 
-                     if (localNotification != null)
 
-                     {
 
-                         UIAlertController okayAlertController = UIAlertController.Create(localNotification.AlertAction,
 
-                             localNotification.AlertBody, UIAlertControllerStyle.Alert);
 
-                         okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
 
-                         Window.RootViewController.PresentViewController(okayAlertController, true, null);
 
-                         // reset our badge
 
-                         UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
 
-                     }
 
-                 }
 
-             }
 
-             LoadApplication(new App());
 
-             return base.FinishedLaunching(uiApplication, launchOptions);
 
-         }
 
-         public override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification)
 
-         {
 
-             // show an alert
 
-             UIAlertController okayAlertController = UIAlertController.Create(notification.AlertAction,
 
-                 notification.AlertBody, UIAlertControllerStyle.Alert);
 
-             okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
 
-             UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(okayAlertController,
 
-                 true, null);
 
-             // reset our badge
 
-             UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
 
-         }
 
-         public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
 
-         {
 
-             GlobalVariables.LoadFromLinkString = url.AbsoluteString.Remove(0, 17);
 
-             LoadApplication(new App());
 
-             return true;
 
-         }
 
-         #region Error handling
 
-         private static void TaskSchedulerOnUnobservedTaskException(object sender,
 
-             UnobservedTaskExceptionEventArgs unobservedTaskExceptionEventArgs)
 
-         {
 
-             var newExc = new Exception("TaskSchedulerOnUnobservedTaskException",
 
-                 unobservedTaskExceptionEventArgs.Exception);
 
-             LogUnhandledException(newExc);
 
-         }
 
-         private static void CurrentDomainOnUnhandledException(object sender,
 
-             UnhandledExceptionEventArgs unhandledExceptionEventArgs)
 
-         {
 
-             var newExc = new Exception("CurrentDomainOnUnhandledException",
 
-                 unhandledExceptionEventArgs.ExceptionObject as Exception);
 
-             LogUnhandledException(newExc);
 
-         }
 
-         internal static void LogUnhandledException(Exception exception)
 
-         {
 
-             try
 
-             {
 
-                 const string errorFileName = "Fatal.log";
 
-                 var libraryPath =
 
-                     Environment.GetFolderPath(Environment.SpecialFolder
 
-                         .Personal); // iOS: Environment.SpecialFolder.Resources
 
-                 var errorFilePath = Path.Combine(libraryPath, errorFileName);
 
-                 var errorMessage = String.Format("Time: {0}\r\nError: Unhandled Exception\r\n{1}",
 
-                     DateTime.Now, exception.ToString());
 
-                 File.WriteAllText(errorFilePath, errorMessage);
 
-             }
 
-             catch
 
-             {
 
-                 // just suppress any error logging exceptions
 
-             }
 
-         }
 
-         [Conditional("DEBUG")]
 
-         //// <summary>
 
-         // If there is an unhandled exception, the exception information is diplayed 
 
-         // on screen the next time the app is started (only in debug configuration)
 
-         /// </summary>
 
-         private static void DisplayCrashReport()
 
-         {
 
-             const string errorFilename = "Fatal.log";
 
-             var libraryPath = Environment.GetFolderPath(Environment.SpecialFolder.Resources);
 
-             var errorFilePath = Path.Combine(libraryPath, errorFilename);
 
-             if (!File.Exists(errorFilePath))
 
-             {
 
-                 return;
 
-             }
 
-             var errorText = File.ReadAllText(errorFilePath);
 
-             var alertView = new UIAlertView("Crash Report", errorText, null, "Close", "Clear")
 
-                 { UserInteractionEnabled = true };
 
-             alertView.Clicked += (sender, args) =>
 
-             {
 
-                 if (args.ButtonIndex != 0)
 
-                 {
 
-                     File.Delete(errorFilePath);
 
-                 }
 
-             };
 
-             alertView.Show();
 
-         }
 
-         #endregion
 
-     }
 
- }
 
 
  |