package Ġcom . hour . hour . ui Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . support . v 4 . widget . Nested ScrollView Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . text . style . Relative Size Span Ċ import Ġandroid . text . style . Style Span Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Adapter View Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Spinner Ċ import Ġandroid . widget . TextView Ċ import Ġcom . hour . hour . R Ċ import Ġcom . hour . hour . helper . Calendar Helper Ċ import Ġcom . hour . hour . helper . Graph Helper Ċ import Ġcom . hour . hour . helper . LP Ċ import Ġcom . hour . hour . helper . Resource Helper Ċ import Ġcom . hour . hour . helper . Resource Helper . color Ċ import Ġcom . hour . hour . helper . Resource Helper . dp Ċ import Ġcom . hour . hour . helper . Screen Unlock Helper Ċ import Ġcom . hour . hour . helper . Touchable Ċ import Ġcom . hour . hour . helper . Usage Stats Helper Ċ import Ġcom . hour . hour . helper . Usage Stats Helper . HOUR _ 2 4 Ċ import Ġcom . hour . hour . model . Usage Summary Ċ import Ġcom . hour . hour . model . Usage Summary . Companion . filter Ċ import Ġcom . hour . hour . ui . base . Base Controller Ċ import Ġcom . hour . hour . widget . ActionBar Ċ import Ġcom . hour . hour . widget . Usage Recycler Adapter Ċ import Ġcom . github . mike phil . chart ing . charts . Pie Chart Ċ Ċ class ĠUsage Summary Screen Ġ: ĠBaseController () Ġ{ ĊĠĠĠ Ġenum Ġclass ĠMode Ġ{ ĊĠĠĠĠĠĠĠ ĠToday , ĊĠĠĠĠĠĠĠ ĠHour 2 4 , ĊĠĠĠĠĠĠĠ ĠY esterday , ĊĠĠĠĠĠĠĠ ĠDay 7 , ĊĠĠĠĠĠĠĠ ĠDay 3 0 , ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġmode Ġ= ĠMode . Today ĊĠĠĠ Ġprivate Ġvar Ġm Recycler : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Usage Text : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Unlock Text : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Overlay Layout : ĠFrame Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Pie Chart : ĠP ie Chart ? Ġ= Ġnull ĊĊĠĠĠ Ġ// region ĠLifecycle ĊĠĠĠ Ġ// ------------------------------------------------ --------------- ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( context : ĠContext ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= Ġsetup ( context ) ĊĊĠĠĠĠĠĠĠ ĠAsync Task . execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSelect Listener . invoke ( mode . ordinal ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlayout ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup ( context : ĠContext ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbase Layout Ġ= ĠFrame Layout ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġoverview Layout Ġ= ĠFrame Layout ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Bar Ġ= ĠAction Bar ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġcontent Layout Ġ= ĠNested ScrollView ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġpie Chart Ġ= ĠGraph Helper . plot Summary Pie Chart ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= ĠRecyclerView ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġoverlay Layout Ġ= ĠFrame Layout ( context ) ĊĊĠĠĠĠĠĠĠ Ġm Overlay Layout Ġ= Ġoverlay Layout ĊĠĠĠĠĠĠĠ Ġm Recycler Ġ= Ġre cyclerView ĊĠĠĠĠĠĠĠ Ġm Pie Chart Ġ= Ġpie Chart ĊĊĠĠĠĠĠĠĠ Ġaction Bar . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter < String >( context , Ġandroid . R . layout . simple _ spinner _ item , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" Today ", Ġ" Last Ġ 2 4 Ġhour ", Ġ" Y esterday ", Ġ" Last Ġ 7 Ġdays ", Ġ" Last Ġ 3 0 Ġdays ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠTextView ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER _ HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype face Ġ= ĠResource Helper . font ( R . font . bar low _ condensed _ medium ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġ 2 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( color ( R . color . primary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Usage ĠRecord " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTouch able . make ( this @ apply ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġpop Controller () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspinner Ġ= ĠSp inner ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ apply . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( p 0 : ĠAdapter View < *> ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( p 0 : ĠAdapter View < *> ?, Ġp 1 : ĠView ?, Ġp 2 : ĠInt , Ġp 3 : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 2 Ġ!= Ġmode . ordinal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSelect Listener . invoke ( p 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( Color . WHITE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Left Button ( R . drawable . ic _ arrow _ back _ 2 4 dp , Ġon Back Click ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Left View ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Right View ( spinner ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( 0 , Ġ 0 , Ġ 0 , Ġdp ( 8 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Nested Scrolling Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverview Layout . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusage Text Ġ= ĠTextView ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunlock Text Ġ= ĠTextView ( context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Usage Text Ġ= Ġusage Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Unlock Text Ġ= Ġunlock Text ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġusage Text . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( color ( R . color . light )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( 0 , Ġ 0 , Ġdp ( 1 4 5 ), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 1 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġunlock Text . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( Color . parse Color ("# 1 d 0 d 3 f ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 5 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( usage Text , ĠLP . frame ( LP . MATCH _ PARENT , Ġdp ( 8 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Gravity ( Gravity . BOTTOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( unlock Text , ĠLP . frame ( dp ( 1 2 0 ), Ġdp ( 8 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Margins ( 0 , Ġ 0 , Ġdp ( 2 5 ), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Gravity ( Gravity . END ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontent Layout . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠLinearLayout ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorientation Ġ= ĠLinearLayout . VERTICAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( pie Chart , ĠLP . linear ( LP . MATCH _ PARENT , Ġdp ( 2 5 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Margins ( dp ( 4 0 ), Ġ 0 , Ġdp ( 4 0 ), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( re cyclerView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( layout , ĠLP . MATCH _ PARENT , ĠLP . MATCH _ PARENT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverlay Layout . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( Color . parse Color ("# BB FFFF ff ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġvisibility Ġ= ĠView . GONE Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 4 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbase Layout . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( action Bar , ĠLP . frame ( LP . MATCH _ PARENT , Ġdp ( 5 0 )). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( content Layout , ĠLP . frame ( LP . MATCH _ PARENT , ĠLP . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Margins ( 0 , Ġdp ( 5 0 ), Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( overview Layout , ĠLP . frame ( LP . MATCH _ PARENT , Ġdp ( 1 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Gravity ( Gravity . BOTTOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( overlay Layout , ĠLP . frame ( LP . MATCH _ PARENT , ĠLP . MATCH _ PARENT ). build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbase Layout ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ------------------------------------------------ --------------- ĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠUI ĠEvents ĊĠĠĠ Ġprivate Ġval Ġon Back Click Ġ= ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġpop Controller () ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval ĠonSelect Listener Ġ= Ġ{ Ġs : ĠInt Ġ-> ĊĠĠĠĠĠĠĠ Ġmode Ġ= ĠMode . values ()[ s ] ĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlist Ġ= ĠlistOf < Usage Summary >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġunlock Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠSystem . currentTimeMillis () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . Today Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġfilter ( it , ĠUsage Summary . make Summary ( it , ĠUsage Stats Helper . query Today Usage ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunlock Count Ġ= ĠScreen Unlock Helper . get Today Unlock Count ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . Hour 2 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġfilter ( it , ĠUsage Summary . make Summary ( it , ĠUsage Stats Helper . query 2 4 h Usage ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunlock Count Ġ= ĠScreen Unlock Helper . get Today Unlock Count ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . Y esterday Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= ĠUsage Summary . get Filtered Summary ( it , Ġarray ListOf ( Calendar Helper . getDate Con dense d ( time Ġ- ĠHO UR _ 2 4 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunlock Count Ġ= ĠScreen Unlock Helper . get Today Unlock Count ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . Day 7 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= ĠUsage Summary . get Filtered Summary ( it , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( time Ġ- Ġ 6 Ġ* ĠHO UR _ 2 4 ) .. time Ġstep ĠHO UR _ 2 4 ). map Ġ{ ĠCalendar Helper . getDate Con dense d ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunlock Count Ġ= ĠScreen Unlock Helper . getN Day Unlock Count ( it , Ġ 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . Day 3 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= ĠUsage Summary . get Filtered Summary ( it , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( time Ġ- Ġ 2 9 Ġ* ĠHO UR _ 2 4 ) .. time Ġstep ĠHO UR _ 2 4 ). map Ġ{ ĠCalendar Helper . getDate Con dense d ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunlock Count Ġ= ĠScreen Unlock Helper . getN Day Unlock Count ( it , Ġ 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Usage ( list . map Ġ{ Ġit . use Time Total Ġ}. sum ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Unlock ( unlock Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGraph Helper . setData ( m Pie Chart Ġ?: Ġreturn @ run On Ui Thread , Ġlist ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Recycler ?. adapter Ġ= ĠUsage Recycler Adapter ( list , Ġon Summary Click ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Usage ( l : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Ġ= ĠCalendar Helper . to Readable Duration ( l ) ĊĠĠĠĠĠĠĠ Ġval Ġspan Ġ= ĠSp ann able String ("$ str \ n Usage ĠTime ") ĊĠĠĠĠĠĠĠ Ġspan . set Span ( Relative Size Span ( 0 . 7 f ), Ġstr . length , Ġspan . length , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( l Ġ/ Ġ 6 0 0 0 0 Ġ< Ġ 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspan . set Span ( Relative Size Span ( 2 f ), Ġ 0 , Ġstr . length Ġ- Ġ 4 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspan . set Span ( Style Span ( android . graphics . Type face . BOLD ), Ġ 0 , Ġstr . length Ġ- Ġ 4 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspan . set Span ( Relative Size Span ( 2 f ), Ġ 0 , Ġstr . length , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspan . set Span ( Style Span ( android . graphics . Type face . BOLD ), Ġ 0 , Ġstr . length , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġspan . set Span ( ForegroundColor Span ( Color . parse Color ("# aa ffffff ")), Ġstr . length , Ġspan . length , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġm Usage Text ?. text Ġ= Ġspan ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Unlock ( count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Ġ= Ġcount . toString () ĊĠĠĠĠĠĠĠ Ġval Ġspan Ġ= ĠSp ann able String ("$ str \ n Screen ĠUn lock ") ĊĠĠĠĠĠĠĠ Ġspan . set Span ( Relative Size Span ( 2 f ), Ġ 0 , Ġstr . length , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġspan . set Span ( Style Span ( Type face . BOLD ), Ġ 0 , Ġstr . length , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġspan . set Span ( Relative Size Span ( 0 . 7 f ), Ġstr . length , Ġspan . length , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġspan . set Span ( ForegroundColor Span ( Color . parse Color ("# 9 9 ffffff ")), Ġstr . length , Ġspan . length , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġm Unlock Text ?. text Ġ= Ġspan ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġon Summary Click Ġ= ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġm Overlay Layout ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// endregion Ċ } Ċ