Ejemplo n.º 1
0
            public override NSArray AttachmentsWithCrashes(MSCrashes crashes, MSErrorReport msReport)
            {
                if (GetErrorAttachments == null)
                {
                    return(null);
                }
                var report      = new ErrorReport(msReport);
                var attachments = GetErrorAttachments(report);

                if (attachments != null)
                {
                    var nsArray = new NSMutableArray();
                    foreach (var attachment in attachments)
                    {
                        if (attachment != null)
                        {
                            nsArray.Add(attachment.internalAttachment);
                        }
                        else
                        {
                            AppCenterLog.Warn(LogTag, "Skipping null ErrorAttachmentLog in Crashes.GetErrorAttachments.");
                        }
                    }
                    return(nsArray);
                }
                return(null);
            }
 static PlatformCrashes()
 {
     /* Peform custom setup around the native SDK's for setting signal handlers */
     MSCrashes.DisableMachExceptionHandler();
     MSWrapperCrashesHelper.SetCrashHandlerSetupDelegate(new CrashesInitializationDelegate());
     AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
 }
Ejemplo n.º 3
0
 static void PlatformTrackError(Exception exception, IDictionary <string, string> properties)
 {
     if (properties != null)
     {
         MSCrashes.TrackModelException(GenerateiOSException(exception, false), StringDictToNSDict(properties));
         return;
     }
     MSCrashes.TrackModelException(GenerateiOSException(exception, false));
 }
Ejemplo n.º 4
0
 public override void CrashesDidSucceedSendingErrorReport(MSCrashes crashes, MSErrorReport msReport)
 {
     if (_owner.SentErrorReport != null)
     {
         var report = ErrorReportCache.GetErrorReport(msReport);
         var e      = new SentErrorReportEventArgs();
         e.Report = report;
         _owner.SentErrorReport(null, e);
     }
 }
Ejemplo n.º 5
0
            public override bool CrashesShouldProcessErrorReport(MSCrashes crashes, MSErrorReport msReport)
            {
                if (ShouldProcessErrorReport == null)
                {
                    return(true);
                }
                var report = new ErrorReport(msReport);

                return(ShouldProcessErrorReport(report));
            }
Ejemplo n.º 6
0
        public override bool CrashesShouldProcessErrorReport(MSCrashes crashes, MSErrorReport msReport)
        {
            if (_owner.ShouldProcessErrorReport == null)
            {
                return(true);
            }

            var report = ErrorReportCache.GetErrorReport(msReport);

            return(_owner.ShouldProcessErrorReport(report));
        }
Ejemplo n.º 7
0
 public override void CrashesDidFailSendingErrorReport(MSCrashes crashes, MSErrorReport msReport, NSError error)
 {
     if (_owner.FailedToSendErrorReport != null)
     {
         var report = ErrorReportCache.GetErrorReport(msReport);
         var e      = new FailedToSendErrorReportEventArgs();
         e.Report    = report;
         e.Exception = error;
         _owner.FailedToSendErrorReport(null, e);
     }
 }
Ejemplo n.º 8
0
 public override void CrashesDidSucceedSendingErrorReport(MSCrashes crashes, MSErrorReport msReport)
 {
     if (SentErrorReport != null)
     {
         var report = new ErrorReport(msReport);
         var e      = new SentErrorReportEventArgs
         {
             Report = report
         };
         SentErrorReport(null, e);
     }
 }
Ejemplo n.º 9
0
 public override void CrashesDidFailSendingErrorReport(MSCrashes crashes, MSErrorReport msReport, NSError error)
 {
     if (FailedToSendErrorReport != null)
     {
         var report = new ErrorReport(msReport);
         var e      = new FailedToSendErrorReportEventArgs
         {
             Report    = report,
             Exception = error
         };
         FailedToSendErrorReport(null, e);
     }
 }
 public PlatformCrashes()
 {
     MSCrashes.SetUserConfirmationHandler((arg0) =>
     {
         if (ShouldAwaitUserConfirmation != null)
         {
             return(ShouldAwaitUserConfirmation());
         }
         return(false);
     });
     crashesDelegate = new CrashesDelegate(this);
     MSCrashes.SetDelegate(crashesDelegate);
 }
Ejemplo n.º 11
0
        public override void CrashesWillSendErrorReport(MSCrashes crashes, MSErrorReport msReport)
        {
            if (_owner.SendingErrorReport == null)
            {
                return;
            }

            var report = ErrorReportCache.GetErrorReport(msReport);
            var e      = new SendingErrorReportEventArgs();

            e.Report = report;
            _owner.SendingErrorReport(null, e);
        }
Ejemplo n.º 12
0
 public PlatformCrashes()
 {
     MSCrashes.NotifyPermanentlyDisableMachExceptionHandling();
     MSCrashes.SetUserConfirmationHandler((arg0) =>
     {
         if (ShouldAwaitUserConfirmation != null)
         {
             return(ShouldAwaitUserConfirmation());
         }
         return(false);
     });
     crashesDelegate = new CrashesDelegate(this);
     MSCrashes.SetDelegate(crashesDelegate);
 }
Ejemplo n.º 13
0
 static Crashes()
 {
     /* Perform custom setup around the native SDK's for setting signal handlers */
     MSCrashes.DisableMachExceptionHandler();
     MSWrapperCrashesHelper.SetCrashHandlerSetupDelegate(_crashesInitializationDelegate);
     AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
     MSCrashes.SetUserConfirmationHandler((reports) =>
     {
         if (ShouldAwaitUserConfirmation != null)
         {
             return(ShouldAwaitUserConfirmation());
         }
         return(false);
     });
     MSCrashes.SetDelegate(_crashesDelegate);
 }
Ejemplo n.º 14
0
        public override MSErrorAttachment AttachmentWithCrashes(MSCrashes crashes, MSErrorReport msReport)
        {
            if (_owner.GetErrorAttachment == null)
            {
                return(null);
            }

            var             report     = ErrorReportCache.GetErrorReport(msReport);
            ErrorAttachment attachment = _owner.GetErrorAttachment(report);

            if (attachment != null)
            {
                return(attachment.internalAttachment);
            }

            return(null);
        }
Ejemplo n.º 15
0
        static void PlatformNotifyUserConfirmation(UserConfirmation confirmation)
        {
            MSUserConfirmation iosUserConfirmation;

            switch (confirmation)
            {
            case UserConfirmation.Send:
                iosUserConfirmation = MSUserConfirmation.Send;
                break;

            case UserConfirmation.DontSend:
                iosUserConfirmation = MSUserConfirmation.DontSend;
                break;

            case UserConfirmation.AlwaysSend:
                iosUserConfirmation = MSUserConfirmation.Always;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(confirmation), confirmation, null);
            }
            MSCrashes.NotifyWithUserConfirmation(iosUserConfirmation);
        }
 public override void TrackException(Exception exception)
 {
     MSCrashes.TrackModelException(GenerateiOSException(exception, false));
 }
Ejemplo n.º 17
0
 static Task PlatformSetEnabledAsync(bool enabled)
 {
     MSCrashes.SetEnabled(enabled);
     return(Task.FromResult(default(object)));
 }
Ejemplo n.º 18
0
 static Task <bool> PlatformIsEnabledAsync()
 {
     return(Task.FromResult(MSCrashes.IsEnabled()));
 }
Ejemplo n.º 19
0
 private static void PlatformUnsetInstance()
 {
     MSCrashes.ResetSharedInstance();
 }
 public override Task SetEnabledAsync(bool enabled)
 {
     MSCrashes.SetEnabled(enabled);
     return(Task.FromResult(default(object)));
 }
Ejemplo n.º 21
0
 private void Button2_AllEvents(object sender, EventArgs e)
 {
     MSAnalytics.TrackEvent("XAMARNTRACK CrashButton BOOM");
     MSCrashes.GenerateTestCrash();
 }
 public override Task <bool> IsEnabledAsync()
 {
     return(Task.FromResult(MSCrashes.IsEnabled()));
 }