internal ErrorReport(AndroidErrorReport androidReport) { Id = androidReport.Id; AppStartTime = DateTimeOffset.FromUnixTimeMilliseconds(androidReport.AppStartTime.Time); AppErrorTime = DateTimeOffset.FromUnixTimeMilliseconds(androidReport.AppErrorTime.Time); Device = androidReport.Device == null ? null : new Device(androidReport.Device); object androidThrowable; try { androidThrowable = androidReport.Throwable; } catch (Exception e) { AppCenterLog.Debug(Crashes.LogTag, "Cannot read throwable from java point of view, probably a .NET exception", e); androidThrowable = null; } AndroidDetails = new AndroidErrorDetails(androidThrowable, androidReport.ThreadName); iOSDetails = null; byte[] exceptionBytes = AndroidExceptionDataManager.LoadWrapperExceptionData(Java.Util.UUID.FromString(Id)); if (exceptionBytes != null) { StackTrace = CrashesUtils.DeserializeException(exceptionBytes); } }
public bool ShouldProcess(AndroidErrorReport androidReport) { if (ShouldProcessErrorReport == null) { return(true); } var report = ErrorReportCache.GetErrorReport(androidReport); return(ShouldProcessErrorReport(report)); }
public void OnSendingSucceeded(AndroidErrorReport androidReport) { if (_owner.SentErrorReport == null) { return; } var report = ErrorReportCache.GetErrorReport(androidReport); var e = new SentErrorReportEventArgs(); e.Report = report; _owner.SentErrorReport(null, e); }
public void OnSendingFailed(AndroidErrorReport androidReport, Exception exception) { if (_owner.FailedToSendErrorReport == null) { return; } var report = ErrorReportCache.GetErrorReport(androidReport); var e = new FailedToSendErrorReportEventArgs(); e.Report = report; e.Exception = exception; _owner.FailedToSendErrorReport(null, e); }
public void OnBeforeSending(AndroidErrorReport androidReport) { if (SendingErrorReport == null) { return; } var report = ErrorReportCache.GetErrorReport(androidReport); var e = new SendingErrorReportEventArgs { Report = report }; SendingErrorReport(null, e); }
public void OnSendingFailed(AndroidErrorReport androidReport, Java.Lang.Exception exception) { if (FailedToSendErrorReport == null) { return; } var report = ErrorReportCache.GetErrorReport(androidReport); var e = new FailedToSendErrorReportEventArgs { Report = report, Exception = exception }; FailedToSendErrorReport(null, e); }
internal static ErrorReport GetErrorReport(AndroidErrorReport androidReport) { lock (cachedReports) { ErrorReport cachedReport; if (cachedReports.TryGetValue(androidReport.Id, out cachedReport)) { return(cachedReport); } var newErrorReport = new ErrorReport(androidReport); cachedReports[androidReport.Id] = newErrorReport; return(newErrorReport); } }
internal ErrorReport(AndroidErrorReport androidReport) { Id = androidReport.Id; AppStartTime = DateTimeOffset.FromUnixTimeMilliseconds(androidReport.AppStartTime.Time); AppErrorTime = DateTimeOffset.FromUnixTimeMilliseconds(androidReport.AppErrorTime.Time); Device = androidReport.Device == null ? null : new Device(androidReport.Device); var androidStackTrace = androidReport.StackTrace; AndroidDetails = new AndroidErrorDetails(androidStackTrace, androidReport.ThreadName); iOSDetails = null; string exceptionString = AndroidExceptionDataManager.LoadWrapperExceptionData(Java.Util.UUID.FromString(Id)); if (exceptionString != null) { StackTrace = exceptionString; } }
#pragma warning disable RECS0146 // Member hides static member from outer class public IIterable GetErrorAttachments(AndroidErrorReport androidReport) #pragma warning restore RECS0146 // Member hides static member from outer class { if (Crashes.GetErrorAttachments == null) { return(null); } var report = ErrorReportCache.GetErrorReport(androidReport); var attachments = Crashes.GetErrorAttachments(report); if (attachments != null) { var attachmentList = new ArrayList(); foreach (var attachment in attachments) { /* Let Java SDK warn against null. */ attachmentList.Add(attachment?.internalAttachment); } return(attachmentList); } return(null); }
public IIterable GetErrorAttachments(AndroidErrorReport androidReport) { if (_owner.GetErrorAttachments == null) { return(null); } var report = ErrorReportCache.GetErrorReport(androidReport); var attachments = _owner.GetErrorAttachments(report); if (attachments != null) { var attachmentList = new ArrayList(); foreach (var attachment in attachments) { /* Let Java SDK warn against null. */ attachmentList.Add(attachment?.internalAttachment); } return(attachmentList); } return(null); }
public void OnResult(Java.Lang.Object result) { _result = result as AndroidErrorReport; Result.Start(); }