Source:
void notifyInternal(@NonNull Event event, @NonNull DeliveryStyle style, @Nullable OnError onError) { if (event.shouldIgnoreClass()) { return; } if (!immutableConfig.shouldNotifyForReleaseStage()) { return; } Session currentSession = sessionTracker.getCurrentSession(); if (currentSession != null && (immutableConfig.getAutoTrackSessions() || !currentSession.isAutoCaptured())) { event.setSession(currentSession); } Map<String, Object> errorDeviceData = deviceData.getDeviceData(); event.setDevice(errorDeviceData); event.addMetadata("device", null, deviceData.getDeviceMetadata()); Map<String, Object> errorAppData = appData.getAppData(); event.setApp(errorAppData); event.addMetadata("app", null, appData.getAppDataMetadata()); event.setBreadcrumbs(new ArrayList<>(breadcrumbState.getStore())); event.setUser(user.getId(), user.getEmail(), user.getName()); if (Intrinsics.isEmpty(event.getContext())) { String context = clientState.getContext(); event.setContext(context != null ? context : appData.getActiveScreenClass()); } if ((onError != null && !onError.run(event)) || !runOnErrorTasks(event)) { Logger.info("Skipping notification - onError task returned false"); return; } Report report = new Report(immutableConfig.getApiKey(), event); if (event.getSession() != null) { setChanged(); if (event.getUnhandled()) { notifyObservers(new Message( NativeInterface.MessageType.NOTIFY_UNHANDLED, null)); } else { List<Error> errors = event.getErrors(); String name = ""; if (errors.size() > 0) { name = errors.get(0).getErrorClass(); } notifyObservers(new Message( NativeInterface.MessageType.NOTIFY_HANDLED, name)); } } switch (style) { case ASYNC: deliverReportAsync(event, report); break; case ASYNC_WITH_CACHE: eventStore.write(event); eventStore.flushAsync(); break; default: break; } }

Target:
void notifyInternal(@NonNull Event event, @NonNull DeliveryStyle style, @Nullable OnError onError) { if (event.shouldIgnoreClass()) { return; } if (!immutableConfig.shouldNotifyForReleaseStage()) { return; } Session currentSession = sessionTracker.getCurrentSession(); if (currentSession != null && (immutableConfig.getAutoTrackSessions() || !currentSession.isAutoCaptured())) { event.setSession(currentSession); } Map<String, Object> errorDeviceData = deviceData.getDeviceData(); event.setDevice(errorDeviceData); event.addMetadata("device", null, deviceData.getDeviceMetadata()); Map<String, Object> errorAppData = appData.getAppData(); event.setApp(errorAppData); event.addMetadata("app", null, appData.getAppDataMetadata()); event.setBreadcrumbs(new ArrayList<>(breadcrumbState.getStore())); User user = userState.getUser(); event.setUser(user.getId(), user.getEmail(), user.getName()); if (Intrinsics.isEmpty(event.getContext())) { String context = clientState.getContext(); event.setContext(context != null ? context : appData.getActiveScreenClass()); } if (!runOnErrorTasks(event) || (onError != null && !onError.run(event))) { Logger.info("Skipping notification - onError task returned false"); return; } Report report = new Report(immutableConfig.getApiKey(), event); if (event.getSession() != null && currentSession != null) { setChanged(); if (event.isUnhandled()) { event.setSession(currentSession.incrementUnhandledAndCopy()); notifyObservers(new Message( NativeInterface.MessageType.NOTIFY_UNHANDLED, null)); } else { event.setSession(currentSession.incrementHandledAndCopy()); notifyObservers(new Message( NativeInterface.MessageType.NOTIFY_HANDLED, null)); } } switch (style) { case ASYNC: deliverReportAsync(event, report); break; case ASYNC_WITH_CACHE: eventStore.write(event); eventStore.flushAsync(); break; default: break; } }