@ file : Suppress (" UN CHECK ED _ CAST ") Ċ Ċ package Ġcom . ke e ppi eces . android . ui . overview Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . ke e ppi eces . android . MainActivity Ċ import Ġcom . ke e ppi eces . android . R Ċ import Ġcom . ke e ppi eces . android . extension . getItem Decoration Ċ import Ġcom . ke e ppi eces . android . extension . to CH IN AD Formatted Ċ import Ġcom . ke e ppi eces . android . logic . data .* Ċ import Ġcom . ke e ppi eces . android . ui . bill . Bill Activity Ċ import Ġcom . ke e ppi eces . android . ui . blank . Account Page Ċ import Ġcom . ke e ppi eces . android . ui . blank . Member Page Ċ import Ġcom . ke e ppi eces . android . ui . blank . current Type Ċ import Ġcom . ke e ppi eces . android . ui . overview . homepage _ card _ adapter . Account Summary Card Adapter Ċ import Ġcom . ke e ppi eces . android . ui . overview . homepage _ card _ adapter . Member Summary Card Adapter Ċ import Ġcom . ke e ppi eces . android . ui . overview . homepage _ card _ adapter . Today Summary Card Adapter Ċ import Ġcom . ke e ppi eces . line _ indicator . data . Line Indicator Data Ċ import Ġcom . ke e ppi eces . line _ indicator . data . Line Indicator Port ion Ċ import Ġcom . ke e ppi eces . pie _ chart . Pie Animation Ċ import Ġcom . ke e ppi eces . pie _ chart . Pie Data Ċ import Ġcom . ke e ppi eces . pie _ chart . Pie Port ion Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ overview .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ account _ summary _ card .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ member _ summary _ card .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ month _ summary _ card .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ today _ summary _ card .* Ċ import Ġjava . time . LocalDate Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . properties . Deleg ates ĊĊ Ċ class ĠOverview Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġlazy Ġ{ ĠViewModel Provider ( this ). get ( Homepage Summary ViewModel :: class . java ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġadd Month Budget Dialog Ġ= ĠAdd Month Budget Dialog () ĊĊĠĠĠ Ġprivate Ġval Ġmonth Budget File Ġ= Ġ" month _ budget " ĊĠĠĠ Ġprivate Ġval Ġnow Month B ud getString Ġ= Ġ" now Month Budget " ĊĠĠĠ Ġprivate Ġval Ġnow Month String Ġ= Ġ" now Month " ĊĠĠĠ Ġprivate Ġval Ġnow Year String Ġ= Ġ" now Year " ĊĠĠĠ Ġprivate Ġvar Ġsaved Month Budget : String ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġsaved Year Ġby ĠDeleg ates . notNull < Int >() ĊĠĠĠ Ġvar Ġsaved Month Ġby ĠDeleg ates . notNull < Int >() ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġval Ġnow Date : ĠLocalDate Ġ= ĠLocalDate . now () ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġval Ġnow Month Ġ= Ġnow Date . month Value ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġval Ġnow Year Ġ= Ġnow Date . year ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ overview , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : View , savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġfragment Manager Ġ= Ġparent FragmentManager ĊĠĠĠĠĠĠĠ Ġval Ġprefs : ĠSharedPreferences Ġ= Ġrequire Activity (). get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Budget File , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsaved Year Ġ= Ġprefs . getInt ( now Year String , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġsaved Month Ġ= Ġprefs . getInt ( now Month String , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġsaved Month Budget Ġ= Ġprefs . getString ( now Month B ud getString , Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( saved Year Ġ== Ġnow Year Ġ&& Ġsaved Month Ġ== Ġnow Month Ġ&& Ġsaved Month Budget Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset _ month _ budget . text Ġ= Ġsaved Month Budget !!. toDouble (). to CH IN AD Formatted () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġused _ budget _ percent . text Ġ= Ġ" 0 . 0 %" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Fab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill Activity . start ( require Context ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoday _ see _ more . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetParent Activity < MainActivity >(). view _ pager . setCurrent Item ( 1 , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġaccount _ see _ more . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Type Ġ= ĠAccount Page ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetParent Activity < MainActivity >(). view _ pager . setCurrent Item ( 3 , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmember _ see _ more . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Type Ġ= ĠMember Page ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetParent Activity < MainActivity >(). view _ pager . setCurrent Item ( 3 , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset _ month _ budget . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Month Budget Dialog . show ( fragment Manager , Ġ" add Month Budget ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetUp Card View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġprivate Ġfun ĠsetUp Card View () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoday Date Ġ= ĠLocalDate . now () ĊĠĠĠĠĠĠĠ Ġval Ġnow Month Ġ= Ġtoday Date . month Value ĊĠĠĠĠĠĠĠ Ġval Ġnow Year Ġ= Ġtoday Date . year ĊĠĠĠĠĠĠĠ Ġval Ġfirst Month Date Ġ= ĠLocalDate . parse ("$ now Year -$ now Month - 0 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġlast Month Date Ġ= Ġfirst Month Date . plus Months ( 1 ). minus Days ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠæĽ´æĸ° å¹¶ å±ķç¤º æľ¬ æľĪ ãĢģ æľ¬ æĹ¥ æ¦Ĥ è¦ģ åį¡ çīĩ ĊĠĠĠĠĠĠĠ ĠviewModel . all Bill LiveData . observe ( view Lifecycle Owner ) Ġ{ Ġbill List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¸į ä»İ æķ°æį®åºĵ ä¸Ń èİ·åıĸ æķ°æį® ï¼Į å¯¹ åħ¨ è¡¨ æķ°æį® è¿Ľè¡Į å¤ĦçĲĨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnow Month Bill List Ġ= ĠviewModel . get Period Bill Without Dao ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Month Date . toString (), Ġlast Month Date . toString (), Ġbill List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoday Bill List Ġ= ĠviewModel . get Period Bill Without Dao ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoday Date . toString (), Ġtoday Date . toString (), Ġnow Month Bill List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Month Summary Card View ( now Month Bill List ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Today Summary Card View ( today Bill List ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Member Month Summary Card View ( now Month Bill List ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Account Summary Card View ( now Month Bill List ) ĊĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// ĠæĽ´æĸ° å¹¶ å±ķç¤º è´¦æĪ· åį¡ çīĩ Ċ // ĠĠĠĠĠĠĠ ĠviewModel . all Account LiveData . observe ( view Lifecycle Owner ) Ġ{ Ġaccount List Ġ-> Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Month Summary Card View ( b ills : ĠList < Bill >) Ġ{ Ġ Ġ// Ġb ills ï¼ļ è¿Ļä¸ª æľĪ çļĦ è´¦ åįķ è¡¨ ĊĠĠĠĠĠĠĠ Ġvar Ġmonth Income Ġ= Ġ 0 . 0 0 ĊĠĠĠĠĠĠĠ Ġvar Ġmonth Ex pend iture Ġ= Ġ 0 . 0 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( bill Ġin Ġb ills ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( bill . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" æĶ¶ åħ¥ " Ġ-> Ġmonth Income Ġ+= Ġbill . amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" æĶ¯ åĩº " Ġ-> Ġmonth Ex pend iture Ġ+= Ġbill . amount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpie Port ions Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ie Port ion ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" æĶ¯ åĩº ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Ex pend iture , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( require Context (), ĠR . color . green _ 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ie Port ion ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" æĶ¶ åħ¥ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Income , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( require Context (), ĠR . color . green _ 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġpie Data Ġ= ĠP ie Data ( port ions Ġ= Ġpie Port ions ) ĊĠĠĠĠĠĠĠ Ġval Ġpie Animation Ġ= ĠP ie Animation ( month _ income _ ex pend iture _ pie ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 6 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmonth _ income _ ex pend iture _ pie . set Pie Data ( pie Data Ġ= Ġpie Data , Ġanimation Ġ= Ġpie Animation ) ĊĠĠĠĠĠĠĠ Ġmonth _ income . text Ġ= Ġmonth Income . to CH IN AD Formatted () ĊĠĠĠĠĠĠĠ Ġmonth _ ex pend iture . text Ġ= Ġmonth Ex pend iture . to CH IN AD Formatted () ĊĠĠĠĠĠĠĠ Ġif Ġ( saved Year Ġ== Ġnow Year Ġ&& Ġsaved Month Ġ== Ġnow Month Ġ&& Ġsaved Month Budget Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Ġ= ĠString . format ("% . 1 f %% ", ( 1 0 0 * month Ex pend iture / Ġsaved Month Budget !!. toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġused _ budget _ percent . text Ġ= Ġstring ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġprivate Ġfun ĠsetUp Today Summary Card View ( b ills : ĠList < Bill >) Ġ{ Ġ Ġ// Ġb ills ï¼ļ ä»Ĭå¤© çļĦ è´¦ åįķ è¡¨ ĊĠĠĠĠĠĠĠ Ġval Ġtoday Summary Ġ= ĠviewModel . get Today Summary ( b ills , Ġ" blue ") ĊĠĠĠĠĠĠĠ ĠLog . d (" today Summary . Bill ", today Summary . b ills . size . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġline Indicator Data Ġ= Ġget Line Indicator Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoday Summary . b ills , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ:: get General Bill Secondary Category , Ġ:: get General Bill Amount , Ġ:: get General Bill Color Int ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtoday _ summary _ line _ indicator . setData ( line Indicator Data ) ĊĠĠĠĠĠĠĠ Ġtoday _ amount . text Ġ= Ġtoday Summary . today _ total . to CH IN AD Formatted () ĊĠĠĠĠĠĠĠ Ġbill _ today _ overview _ recyclerview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( getItem Decoration ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠToday Summary Card Adapter ( require Context (), Ġtoday Summary . b ills ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Account Summary Card View ( b ills : ĠMutable List < Bill >) Ġ{ Ġ Ġ// Ġaccounts ï¼ļ æķ°æį®åºĵ ä¸Ń æīĢæľīçļĦ è´¦ è´¦æĪ· æĥħåĨµ ĊĠĠĠĠĠĠĠ Ġval Ġaccount List About Ġ= ĠviewModel . get Account Classification ( b ills ) ĊĠĠĠĠĠĠĠ Ġval Ġaccount Summary Ġ= ĠviewModel . get Account Summary ( account List About , Ġ" green ", Ġ" purple ") ĊĠĠĠĠĠĠĠ Ġval Ġline Indicator Data Ġ= Ġget Line Indicator Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Summary , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ:: get Daily Account Account , Ġ:: get Daily Account Amount , Ġ:: get Daily Account Color Int ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvar Ġamount Ġ= Ġ 0 . 0 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġaccount Summary ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ+= Ġitem . amount ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġaccount _ summary _ line _ indicator . setData ( line Indicator Data ) ĊĠĠĠĠĠĠĠ Ġaccount _ amount . text Ġ= Ġamount . to CH IN AD Formatted () ĊĠĠĠĠĠĠĠ Ġbill _ account _ overview _ recyclerview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( getItem Decoration ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠAccount Summary Card Adapter ( require Context (), Ġaccount Summary ) ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġaccount _ summary _ line _ indicator . setData ( line Indicator Data ) Ċ // ĠĠĠĠĠĠĠ Ġaccount _ amount . text Ġ= Ġaccount Summary . total . to CH IN AD Formatted () Ċ // ĠĠĠĠĠĠĠ Ġbill _ account _ overview _ recyclerview . apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Context ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( getItem Decoration ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠAccount Summary Card Adapter ( require Context (), Ġaccount Summary . accounts ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . N ) ĊĠĠĠ Ġprivate Ġfun ĠsetUp Member Month Summary Card View ( month Bill List : ĠList < Bill >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmember Month Summary Ġ= ĠviewModel . get Member Month Summary ( month Bill List , Ġ" yellow ") ĊĠĠĠĠĠĠĠ Ġval Ġline Indicator Data Ġ= Ġget Line Indicator Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). application Context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmember Month Summary , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ:: get Daily Member Member , Ġ:: get Daily Member Amount , Ġ:: get Daily Member Color Int ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmember _ month _ summary _ line _ indicator . setData ( line Indicator Data ) ĊĠĠĠĠĠĠĠ Ġbill _ member _ overview _ recyclerview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( getItem Decoration ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMember Summary Card Adapter ( require Context (), Ġmember Month Summary ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġget Line Indicator Data ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġdata List : ĠList < T >, ĊĠĠĠĠĠĠĠ ĠgetName : Ġ( T ) Ġ-> ĠString , ĊĠĠĠĠĠĠĠ ĠgetValue : Ġ( T ) Ġ-> ĠDouble , ĊĠĠĠĠĠĠĠ ĠgetValue Color : Ġ( T ) Ġ-> ĠInt ĊĠĠĠ Ġ): ĠLine Indicator Data Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" check Ġpoint ") ĊĠĠĠĠĠĠĠ Ġval Ġportions Ġ= Ġdata List . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLine Indicator Port ion ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠgetName ( it ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġabs ( getValue ( it ). toFloat ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Int Ġ= ĠContext Compat . getColor ( context , getValue Color ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠĠĠĠĠ Ġreturn ĠLine Indicator Data ( port ions Ġ= Ġportions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Overview Fragment " ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T Ġ: ĠAppCompatActivity > ĠFragment . getParent Activity (): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġrequire Activity () Ġas ĠT Ċ }