package Ġde . r ki . cor on aw arn app . tracing . ui . details Ċ Ċ import Ġdagger . Re usable Ċ import Ġde . r ki . cor on aw arn app . dat ad on ation . survey . Sur veys Ċ import Ġde . r ki . cor on aw arn app . install Time . Install Time Provider Ċ import Ġde . r ki . cor on aw arn app . risk . Risk State Ċ import Ġde . r ki . cor on aw arn app . risk . storage . Risk Level Storage Ċ import Ġde . r ki . cor on aw arn app . tracing . General Tracing Status Ċ import Ġde . r ki . cor on aw arn app . tracing . General Tracing Status . Status Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . Details Item Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . additional infos . Additional Info Low Risk Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . additional infos . Find Details In Journal Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . behavior . Behavior Increase d Risk Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . behavior . Behavior Normal Risk Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . period logged . Period Logged Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . risk details . Details Failed Calculation Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . risk details . Details Increase d Risk Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . risk details . Details Low Risk Box Ċ import Ġde . r ki . cor on aw arn app . tracing . ui . details . items . survey . User Survey Box Ċ import Ġde . r ki . cor on aw arn app . util . Time And Date Extensions . to LocalDate Utc Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . combine Ċ import Ġkotlinx . coroutines . flow . on Completion Ċ import Ġkotlinx . coroutines . flow . on Each Ċ import Ġkotlinx . coroutines . flow . onStart Ċ import Ġorg . joda . time . Instant Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ @ Re usable Ċ class ĠTr acing Details Item Provider Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġtracing Status : ĠGeneral Tracing Status , ĊĠĠĠ Ġrisk Level Storage : ĠR isk Level Storage , ĊĠĠĠ Ġinstall Time Provider : ĠInstall Time Provider , ĊĠĠĠ Ġsur veys : ĠSur veys Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġstate : ĠFlow < List < Details Item >> Ġ= Ġcombine ( ĊĠĠĠĠĠĠĠ Ġtracing Status . general Status , ĊĠĠĠĠĠĠĠ Ġrisk Level Storage . latest And Last Successful Combined Ew Pt Risk Level Result , ĊĠĠĠĠĠĠĠ Ġsur veys . available Sur veys ĊĠĠĠ Ġ) Ġ{ Ġstatus , ĊĠĠĠĠĠĠĠ Ġrisk Level Results , ĊĠĠĠĠĠĠĠ Ġavailable Sur veys Ġ-> ĊĊĠĠĠĠĠĠĠ Ġval Ġlatest Calc Ġ= Ġrisk Level Results . last Calculated ĊĊĠĠĠĠĠĠĠ Ġval Ġlow Risk With En counters Ġ= Ġlatest Calc . risk State Ġ== ĠR isk State . LOW _ R IS K Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Calc . matched Risk Count Ġ> Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġmutable ListOf < Details Item >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ!= ĠStatus . TR ACING _ IN ACTIVE Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( low Risk With En counters Ġ|| Ġlatest Calc . risk State Ġ== ĠR isk State . INCRE ASE D _ R IS K ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Find Details In Journal Box . Item ( latest Calc . risk State )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ!= ĠStatus . TR ACING _ IN ACTIVE Ġ&& Ġlow Risk With En counters ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Additional Info Low Risk Box . Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ!= ĠStatus . TR ACING _ IN ACTIVE Ġ&& Ġlatest Calc . risk State Ġ== ĠR isk State . INCRE ASE D _ R IS K Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBehavior Increase d Risk Box . Item ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠBehavior Normal Risk Box . Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtracing Status Ġ= Ġstatus , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrisk State Ġ= Ġlatest Calc . risk State ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġadd ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ!= ĠStatus . TR ACING _ IN ACTIVE Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Calc . risk State Ġ== ĠR isk State . INCRE ASE D _ R IS K Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavailable Sur veys . contains ( Sur veys . Type . HIGH _ R IS K _ EN COUNTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( User Survey Box . Item ( Sur veys . Type . HIGH _ R IS K _ EN COUNTER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( latest Calc . risk State Ġ!= ĠR isk State . CAL C UL ATION _ FAILED Ġ&& Ġstatus Ġ!= ĠStatus . TR ACING _ IN ACTIVE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPeriod Logged Box . Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdays Since Installation Ġ= Ġinstall Time Provider . days Since Installation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtracing Status Ġ= Ġstatus ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġadd ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ== ĠStatus . TR ACING _ IN ACTIVE Ġ|| Ġlatest Calc . risk State Ġ== ĠR isk State . CAL C UL ATION _ FAILED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDetails Failed Calculation Box . Item ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Calc . risk State Ġ== ĠR isk State . LOW _ R IS K Ġ-> ĠDetails Low Risk Box . Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrisk State Ġ= Ġlatest Calc . risk State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Risk Count Ġ= Ġlatest Calc . matched Risk Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Calc . risk State Ġ== ĠR isk State . INCRE ASE D _ R IS K Ġ-> ĠDetails Increase d Risk Box . Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrisk State Ġ= Ġlatest Calc . risk State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Encounter ed At Ġ= Ġlatest Calc . last Risk Encounter At Ġ?: ĠInstant . EPOCH . to LocalDate Utc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġadd ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. onStart Ġ{ ĠTim ber . v (" Tracing Details State ĠF LOW Ġstart ") Ġ} ĊĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĠTim ber . d (" Tracing Details State ĠF LOW Ġemission : Ġ% s ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. on Completion Ġ{ ĠTim ber . v (" Tracing Details State ĠF LOW Ġcompleted .") Ġ} Ċ } Ċ