11package com .bugsnag .android ;
22
33import static com .bugsnag .android .SeverityReason .REASON_HANDLED_EXCEPTION ;
4+ import static com .bugsnag .android .SeverityReason .REASON_UNHANDLED_EXCEPTION ;
45
56import com .bugsnag .android .internal .BackgroundTaskService ;
67import com .bugsnag .android .internal .ForegroundDetector ;
@@ -776,7 +777,11 @@ public void notify(
776777 if (immutableConfig .shouldDiscardError (exc )) {
777778 return ;
778779 }
779- SeverityReason severityReason = SeverityReason .newInstance (REASON_HANDLED_EXCEPTION );
780+ SeverityReason severityReason =
781+ options == null || !options .isFatal ()
782+ ? SeverityReason .newInstance (REASON_HANDLED_EXCEPTION )
783+ : SeverityReason .newInstance (REASON_UNHANDLED_EXCEPTION );
784+
780785 Event event = createEventWithOptions (exc , severityReason , options );
781786 event .setGroupingDiscriminator (getGroupingDiscriminator ());
782787 populateAndNotifyAndroidEvent (event , options , onError );
@@ -861,7 +866,7 @@ void populateAndNotifyAndroidEvent(@NonNull Event event,
861866 event .setInternalMetrics (internalMetrics );
862867 event .setGroupingDiscriminator (getGroupingDiscriminator ());
863868
864- notifyInternal (event , onError );
869+ notifyInternalWithErrorOptions (event , onError , options );
865870 }
866871
867872 private void populateDeviceAndAppData (@ NonNull Event event ) {
@@ -893,7 +898,15 @@ private void populateEventData(@NonNull Event event, @Nullable ErrorOptions opti
893898 }
894899
895900 void notifyInternal (@ NonNull Event event ,
896- @ Nullable OnErrorCallback onError ) {
901+ @ Nullable OnErrorCallback onError
902+ ) {
903+ notifyInternalWithErrorOptions (event , onError , null );
904+ }
905+
906+ void notifyInternalWithErrorOptions (@ NonNull Event event ,
907+ @ Nullable OnErrorCallback onError ,
908+ @ Nullable ErrorOptions options
909+ ) {
897910 // set the redacted keys on the event as this
898911 // will not have been set for RN/Unity events
899912 Collection <Pattern > redactedKeys = metadataState .getMetadata ().getRedactedKeys ();
@@ -920,6 +933,9 @@ void notifyInternal(@NonNull Event event,
920933 setGroupingDiscriminator (getGroupingDiscriminator ());
921934
922935 deliveryDelegate .deliver (event );
936+ if (options != null && options .isFatal ()) {
937+ setAutoNotify (false );
938+ }
923939 }
924940
925941 /**
0 commit comments