package Ġcom . pol ito . s ism ic . Present ers . Report Activity . Fragments Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Nullable Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Adapter Ċ import Ġandroid . widget . Adapter View Ċ import Ġcom . pol ito . s ism ic . Extensions . toast Ċ import Ġcom . pol ito . s ism ic . R Ċ import Ġcom . step stone . step per . Step per Layout Ċ import Ġkotlinx . android . synt hetic . main . spe tt ri _ pro getto _ report _ layout .* Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Spinner Ċ import Ġcom . github . mike phil . chart ing . components . Legend Ċ import Ġcom . github . mike phil . chart ing . components . X Axis Ċ import Ġcom . github . mike phil . chart ing . components . Y Axis Ċ import Ġcom . github . mike phil . chart ing . data . Line Data Ċ import Ġcom . github . mike phil . chart ing . data . Line DataSet Ċ import Ġcom . pol ito . s ism ic . Domain . Project Spectrum State Ċ import Ġcom . pol ito . s ism ic . Domain . Spectrum DTO Ċ import Ġcom . pol ito . s ism ic . Extensions . to Entry List Ċ import Ġcom . pol ito . s ism ic . Inter actors . Helpers .* Ċ import Ġcom . pol ito . s ism ic . Present ers . Adapters . Spectrum s Data Adapter Ċ import Ġcom . pol ito . s ism ic . Present ers . Helpers . Spectrum Value Formatter Ċ import Ġcom . step stone . step per . Verification Error ĊĊ Ċ class ĠSpe tt ri Di Pro getto Report Fragment Ġ: ĠBase Report Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Spectrum Adapter : ĠSpect rum s Data Adapter ĊĠĠĠ Ġvar Ġm Spectrum List : ĠMutable List < Spectrum DTO > Ġ= Ġmutable ListOf Ġ() ĊĊĠĠĠ Ġinterface ĠSpect rum Return Time Request Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Spectrum Return Time Request ( data : ĠProject Spectrum State ): ĠList < Spectrum DTO > ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġvar Ġm Return Time Request : ĠSpect rum Return Time Request ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Return Time Request Ġ= Ġcontext Ġas ĠSpect rum Return Time Request ? ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass CastException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠClass CastException ( context !!. toString () Ġ+ Ġ" Ġmust Ġimplement ĠOn Parameters Confirmed ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġ@ Nullable Ġcontainer : ĠViewGroup ?, Ġ@ Nullable ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinf late Fragment ( R . layout . spe tt ri _ pro getto _ report _ layout , Ġinflater , Ġcontainer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġreg ol are _ in _ al te zza . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( R . string . error _ not _ supported ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreg ol are _ in _ al te zza . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cda . setOn Checked ChangeListener Ġ{ Ġ_, Ġflag Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cda . is Clickable Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cdb . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cdb . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Mol tip lic atore Visibility ( categoria _ tipo log ia _ parameter . selected Item Position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cdb . setOn Checked ChangeListener Ġ{ Ġ_, Ġflag Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cdb . is Clickable Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cda . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cda . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Mol tip lic atore Visibility ( categoria _ tipo log ia _ parameter . selected Item Position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcategor ia _ mol tip lic atore _ parameter . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, Ġm View : ĠView ?, Ġpos : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Q 0 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < out ĠAdapter > ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcategor ia _ tipo log ia _ parameter . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, Ġm View : ĠView ?, Ġpos : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Mol tip lic atore Visibility ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < out ĠAdapter > ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( list _ stat i ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Spectrum Adapter Ġ= ĠSpect rum s Data Adapter ( context , Ġm Spectrum List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġm Spectrum Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( report _ spe tt ro dir is posta _ chart ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSpect rum Value Formatter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis . value Formatter Ġ= Ġformatter . x Value Formatter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Axis ( Y Axis . Axis Dependency . LEFT ). value Formatter Ġ= Ġformatter . y Value Formatter ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis . position Ġ= ĠX Axis . X Axis Position . BOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis . axis Maximum Ġ= Ġ 4 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis . axis Minimum Ġ= Ġ 0 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlegend . vertical Alignment Ġ= ĠLegend . Legend Vertical Alignment . BOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlegend . set Draw Inside ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Axis ( Y Axis . Axis Dependency . RIGHT ). isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcalculate . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspectrum s Domain Ġ= Ġm Return Time Request ?. on Spectrum Return Time Request ( Ui Mapper . create Spectrum State For Domain ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Report (). report State . s ism ic State . project Spectrum State . spectrum s , Ġget Report (). report State . s ism ic State . project Spectrum State . q 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspectrum s Ui Ġ= Ġspectrum s Domain ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLine DataSet ( it . point List . to Entry List (), ĠString . format ( context . getString ( R . string . label _ limit _ state _ format ), Ġit . name , Ġit . year )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠContext Compat . getColor ( context , Ġit . color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlineWidth Ġ= Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Draw Circ les ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaxis Dependency Ġ= ĠY Axis . Axis Dependency . LEFT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġspectrum s Domain ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Report (). report State . s ism ic State . project Spectrum State . spectrum s Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( report _ spe tt ro dir is posta _ chart ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠLine Data ( spectrum s Ui ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreload Graph () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Mol tip lic atore Visibility ( pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ mol tip lic atore _ parameter _ container . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Spinner Items V ibility ( categoria _ mol tip lic atore _ parameter , Ġresources . getString Array ( R . array . cat _ mol tip lic atore _ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( categoria _ cl asse _ dut til ita _ parameter _ cda . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ mol tip lic atore _ parameter _ container . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Spinner Items V ibility ( categoria _ mol tip lic atore _ parameter , Ġresources . getString Array ( R . array . cat _ mol tip lic atore _ 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ mol tip lic atore _ parameter _ container . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ mol tip lic atore _ parameter _ container . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġupdate Q 0 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Reload () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreload Graph () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreload Graph () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġget Report (). report State . s ism ic State . project Spectrum State . spectrum s . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Spectrum List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Spectrum List . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Spectrum Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Q 0 () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġget Report (). report State . s ism ic State . project Spectrum State . q 0 Ġ= ĠS ism ic Action Calculator Helper . calculate Q 0 ( categoria _ tipo log ia _ parameter . selected Item Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA lf a . values ()[ categoria _ mol tip lic atore _ parameter . selected Item Position ]. multiplier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategor ia _ cl asse _ dut til ita _ parameter _ cda . isChecked ) ĊĊĠĠĠĠĠĠĠ Ġq 0 _ label . setValue ("% . 2 f ". format ( get Report (). report State . s ism ic State . project Spectrum State . q 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Spinner Items V ibility ( spinner ToUpdate : ĠSp inner , Ġnew String Array : ĠArray < out ĠString >) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreating Ġadapter Ġfor Ġspinner ĊĠĠĠĠĠĠĠ Ġval Ġdata Adapter Ġ= ĠArray Adapter < String >( context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ spinner _ item , Ġnew String Array ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠDrop Ġdown Ġlayout Ġstyle Ġ- Ġlist Ġview Ġwith Ġradio Ġbutton ĊĠĠĠĠĠĠĠ Ġdata Adapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠ Ġ// Ġatt aching Ġdata Ġadapter Ġto Ġspinner ĊĠĠĠĠĠĠĠ Ġspinner ToUpdate . adapter Ġ= Ġdata Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect Categoria S uo lo ( categoria _ su olo : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// iter ates Ġall Ġspin ners Ġelement Ġlooking Ġfor Ġthe Ġcategory Ġrequested ĊĠĠĠĠĠĠĠ Ġcategor ia _ su olo _ parameter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setSelection ( Categoria S ot tos uo lo . values () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. indexOf First Ġ{ Ġit . name Ġ== Ġcategor ia _ su olo Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect Categoria Top o graf ica ( categoria _ topo graf ica _ multiplier : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// iter ates Ġall Ġspin ners Ġelement Ġlooking Ġfor Ġthe Ġcategory Ġrequested ĊĠĠĠĠĠĠĠ Ġcategor ia _ topo graf ica _ parameter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setSelection ( Categoria Top o graf ica . values () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. indexOf First Ġ{ Ġit . multiplier Ġ== Ġcategor ia _ topo graf ica _ multiplier Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// callback Ġto Ġactivity Ġupdates Ġdomain Ġinstance Ġfor Ġactivity Ġand Ġall Ġexisting Ġand Ġfuture Ġfragments ĊĠĠĠ Ġoverride Ġfun Ġon Next Clicked ( callback : ĠStep per Layout . On Next Clicked Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Report (). report State . s ism ic State . project Spectrum State Ġ= ĠUi Mapper . create Spectrum State For Domain ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Report (). report State . s ism ic State . project Spectrum State . spectrum s , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Report (). report State . s ism ic State . project Spectrum State . q 0 ) ĊĊĠĠĠĠĠĠĠ Ġsuper . onNext Clicked ( callback ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġverify Step (): ĠVerification Error ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Spectrum List . isEmpty ()) Ġreturn ĠVerification Error ( resources . getString ( R . string . verification _ spectrum s )) ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }