package Ġcom . kot l ind is cord . k ord . extensions . sentry Ċ Ċ import Ġio . sentry .* Ċ import Ġio . sentry . protocol . S entry Id Ċ Ċ /** Ċ Ġ* ĠA Ġclass Ġthat Ġwraps Ġthe ĠS entry ĠAPIs Ġin Ġorder Ġto Ġmake Ġthem Ġa Ġbit Ġeasier Ġto Ġintegrate . Ċ Ġ*/ Ċ public Ġopen Ġclass ĠS entry Adapter Ġ{ ĊĠĠĠ Ġ/** ĠWhether ĠS entry Ġintegration Ġhas Ġbeen Ġenabled . Ġ**/ ĊĠĠĠ Ġpublic Ġval Ġenabled : ĠBoolean Ġget () Ġ= Ġthis ._ enabled ĊĊĠĠĠ Ġprivate Ġvar Ġ_ enabled : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġevent Ids : ĠMutable Set < S entry Id > Ġ= Ġmutable Set Of () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġup ĠS entry Ġand Ġenable ĠS entry Ġintegration . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġfunction Ġis Ġa Ġconvenience Ġfor Ġusers Ġthat Ġmay Ġnot Ġwant Ġto Ġuse Ġa Ġlambda ĊĠĠĠĠ Ġ* Ġto Ġconfigure ĠS entry . ĠAs Ġthere Ġare Ġ* so Ġmany Ġoptions *, Ġnot Ġeverything Ġis ĊĠĠĠĠ Ġ* Ġincluded Ġhere Ġ- Ġplease Ġuse Ġ[ init ] Ġif Ġyou Ġneed Ġto Ġchange Ġany ĊĠĠĠĠ Ġ* Ġother Ġsettings . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWe Ġrecommend Ġusing Ġkeyword Ġarguments Ġfor Ġthis Ġfunction . ĠEvery Ġsingle Ġparameter ĊĠĠĠĠ Ġ* Ġhas Ġa Ġdefault Ġvalue Ġthat Ġshould Ġmatch ĠS entry 's Ġdefault Ġsetup . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" Use Property Access Syntax ") ĊĠĠĠ Ġpublic Ġfun Ġsetup ( ĊĠĠĠĠĠĠĠ Ġd sn : ĠString ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġdiagnostic Level : ĠS entry Level ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġdistribution : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġenvironment : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġrelease : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġsample Rate : ĠDouble ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġserver Name : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġshutdown Timeout : ĠLong ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġattach Stack trace : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġattach Threads : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġdebug : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġenable External Configuration : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġenable N dk : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġenable Scope Sync : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġenable Session Tracking : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġenable Un caught ExceptionHandler : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġsend Default P ii : ĠBoolean Ġ= Ġfalse , ĊĊĠĠĠĠĠĠĠ Ġin App Exclude s : ĠArray < String > Ġ= ĠarrayOf (), ĊĠĠĠĠĠĠĠ Ġin App Includes : ĠArray < String > Ġ= ĠarrayOf (), ĊĊĠĠĠĠĠĠĠ Ġbefore Breadcrumb : Ġ(( Breadcrumb , ĠAny ?) Ġ-> ĠB readcrumb ? )? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġbefore Send : Ġ(( S entry Event ?, ĠAny ?) Ġ-> ĠS entry Event ? )? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS entry . init Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dsn Ġ!= Ġnull ) Ġit . dsn Ġ= Ġd sn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( diagnostic Level Ġ!= Ġnull ) Ġit . set Diagnostic Level ( diagnostic Level ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( distribution Ġ!= Ġnull ) Ġit . dist Ġ= Ġdistribution ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( environment Ġ!= Ġnull ) Ġit . environment Ġ= Ġenvironment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( release Ġ!= Ġnull ) Ġit . release Ġ= Ġrelease ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sample Rate Ġ!= Ġnull ) Ġit . sample Rate Ġ= Ġsample Rate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( server Name Ġ!= Ġnull ) Ġit . server Name Ġ= Ġserver Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( shutdown Timeout Ġ!= Ġnull ) Ġit . shutdown Timeout Ġ= Ġshutdown Timeout ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Attach Stack trace Ġ= Ġattach Stack trace ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Attach Threads Ġ= Ġattach Threads ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . isDebug Ġ= Ġdebug ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Enable External Configuration Ġ= Ġenable External Configuration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Enable N dk Ġ= Ġenable N dk ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Enable Scope Sync Ġ= Ġenable Scope Sync ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Enable Session Tracking Ġ= Ġenable Session Tracking ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Enable Un caught ExceptionHandler Ġ= Ġenable Un caught ExceptionHandler ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Send Default P ii Ġ= Ġsend Default P ii ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġin App Exclude s . forEach Ġ{ Ġexclude Ġ-> Ġit . add In App Exclude ( exclude ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin App Includes . forEach Ġ{ Ġinclude Ġ-> Ġit . add In App Include ( include ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( before Breadcrumb Ġ!= Ġnull ) Ġit . set Before Breadcrumb ( before Breadcrumb ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( before Send Ġ!= Ġnull ) Ġit . set Before Send ( before Send ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis ._ enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġup ĠS entry Ġand Ġenable ĠS entry Ġintegration . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġfunction Ġtakes Ġa Ġlambda Ġthat Ġmatches ĠS entry 's , Ġal beit Ġusing Ġa Ġreceiver ĊĠĠĠĠ Ġ* Ġfunction Ġinstead Ġfor Ġb rev ity . ĠPlease Ġsee Ġthe ĠS entry Ġdocumentation Ġfor ĊĠĠĠĠ Ġ* Ġinformation Ġon Ġhow Ġto Ġconfigure Ġit . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠUse Ġ[ setup ] Ġif Ġyou Ġdon 't Ġwant Ġto Ġuse Ġa Ġlambda Ġfor Ġthis . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġinit ( callback : ĠS entry Options . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS entry . init ( callback ) ĊĊĠĠĠĠĠĠĠ Ġthis ._ enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConvenience Ġwrapper Ġaround Ġthe ĠS entry Ġuser Ġfeedback ĠAPI . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġsend Feedback ( ĊĠĠĠĠĠĠĠ Ġid : ĠS entry Id , ĊĠĠĠĠĠĠĠ Ġcomments : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġemail : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġname : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! enabled ) Ġerror (" S entry Ġintegration Ġhas Ġnot Ġyet Ġbeen Ġconfigured .") ĊĊĠĠĠĠĠĠĠ Ġval Ġfeedback Ġ= ĠUser Feedback ( id ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( comments Ġ!= Ġnull ) Ġfeedback . comments Ġ= Ġcomments ĊĠĠĠĠĠĠĠ Ġif Ġ( email Ġ!= Ġnull ) Ġfeedback . email Ġ= Ġemail ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġnull ) Ġfeedback . name Ġ= Ġname ĊĊĠĠĠĠĠĠĠ ĠS entry . capture User Feedback ( feedback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConvenience Ġfunction Ġfor Ġcreating Ġa ĠB readcrumb Ġobject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġcreate Breadcrumb ( ĊĠĠĠĠĠĠĠ Ġcategory : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġlevel : ĠS entry Level ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġmessage : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġtype : ĠString ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġdata : ĠMap < String , ĠAny > Ġ= Ġmap Of () ĊĠĠĠ Ġ): ĠB readcrumb Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbreadcrumb Obj Ġ= ĠB readcrumb () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( category Ġ!= Ġnull ) Ġbreadcrumb Obj . category Ġ= Ġcategory ĊĠĠĠĠĠĠĠ Ġif Ġ( level Ġ!= Ġnull ) Ġbreadcrumb Obj . level Ġ= Ġlevel ĊĠĠĠĠĠĠĠ Ġif Ġ( message Ġ!= Ġnull ) Ġbreadcrumb Obj . message Ġ= Ġmessage ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ!= Ġnull ) Ġbreadcrumb Obj . type Ġ= Ġtype ĊĊĠĠĠĠĠĠĠ Ġdata . to Sorted Map (). forEach Ġ{ Ġ( key , Ġvalue ) Ġ-> Ġbreadcrumb Obj . setData ( key , Ġvalue ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbreadcrumb Obj ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠRegister Ġan Ġevent ĠID Ġthat Ġa Ġuser Ġmay Ġprovide Ġfeedback Ġfor . Ġ**/ ĊĠĠĠ Ġpublic Ġfun Ġadd EventId ( id : ĠS entry Id ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġevent Ids . add ( id ) ĊĊĠĠĠ Ġ/** ĠGiven Ġan Ġevent ĠID , Ġcheck Ġwhether Ġit 's Ġawait ing Ġfeedback . Ġ**/ ĊĠĠĠ Ġpublic Ġfun Ġhas EventId ( id : ĠS entry Id ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġevent Ids . contains ( id ) ĊĊĠĠĠ Ġ/** ĠRemove Ġan Ġevent ĠID Ġthat Ġfeedback Ġhas Ġalready Ġbeen Ġprovided Ġfor . Ġ**/ ĊĠĠĠ Ġpublic Ġfun Ġremove EventId ( id : ĠS entry Id ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġevent Ids . remove ( id ) Ċ } Ċ