package Ġcom . example . android . track mys leep quality čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . content . res . Resources č Ċ import Ġandroid . os . Build č Ċ import Ġandroid . text . Html č Ċ import Ġandroid . text . Sp anned č Ċ import Ġandroid . widget . TextView č Ċ import Ġandroidx . core . text . Html Compat č Ċ import Ġandroidx . recyclerview . widget . RecyclerView č Ċ import Ġcom . example . android . track mys leep quality . base ded atos . Su eno N oche č Ċ import Ġjava . text . SimpleDateFormat č Ċ import Ġjava . util .* č Ċ import Ġjava . util . concurrent . TimeUnit čĊč Ċ private Ġval ĠUN _ MIN UTO _ M ILL IS Ġ= ĠTimeUnit . MILLISECONDS . convert ( 1 , ĠTimeUnit . MIN UTES ) č Ċ private Ġval ĠU NA _ H ORA _ M ILL IS Ġ= ĠTimeUnit . MILLISECONDS . convert ( 1 , ĠTimeUnit . HOUR S ) čĊč Ċ fun Ġconvert ir Dur acion Format o ( startTime Milli : ĠLong , ĠendTime Milli : ĠLong , Ġres : ĠResources ): ĠString Ġ{ čĊĠĠĠ Ġval Ġduration Milli Ġ= ĠendTime Milli Ġ- ĠstartTime Milli čĊĠĠĠ Ġval Ġweek day String Ġ= ĠSimpleDateFormat (" EEEE ", ĠLocale . getDefault ()). format ( startTime Milli ) čĊĠĠĠ Ġreturn Ġwhen Ġ{ čĊĠĠĠĠĠĠĠ Ġduration Milli Ġ< ĠUN _ MIN UTO _ M ILL IS Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= ĠTimeUnit . SECONDS . convert ( duration Milli , ĠTimeUnit . MILLISECONDS ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getString ( R . string . seg und os _ length , Ġseconds , Ġweek day String ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġduration Milli Ġ< ĠU NA _ H ORA _ M ILL IS Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= ĠTimeUnit . MIN UTES . convert ( duration Milli , ĠTimeUnit . MILLISECONDS ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getString ( R . string . min utos _ length , Ġminutes , Ġweek day String ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhours Ġ= ĠTimeUnit . HOUR S . convert ( duration Milli , ĠTimeUnit . MILLISECONDS ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getString ( R . string . hor as _ length , Ġhours , Ġweek day String ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun ĠConvert ir La Cal idad De Numero A String ( cal idad : ĠInt , Ġrecursos : ĠResources ): ĠString Ġ{ čĊĠĠĠ Ġvar Ġcal idad String Ġ= Ġrecursos . getString ( R . string . tres _ bi en ) čĊĠĠĠ Ġwhen Ġ( cal idad ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ- 1 Ġ-> Ġcal idad String Ġ= Ġ"-- " čĊĠĠĠĠĠĠĠĠ 0 Ġ-> Ġcal idad String Ġ= Ġrecursos . getString ( R . string . c ero _ mu y _ mal ) čĊĠĠĠĠĠĠĠĠ 1 Ġ-> Ġcal idad String Ġ= Ġrecursos . getString ( R . string . uno _ po bre ) čĊĠĠĠĠĠĠĠĠ 2 Ġ-> Ġcal idad String Ġ= Ġrecursos . getString ( R . string . dos _ mas _ o _ men os ) čĊĠĠĠĠĠĠĠĠ 4 Ġ-> Ġcal idad String Ġ= Ġrecursos . getString ( R . string . cu at ro _ mu y _ bi en ) čĊĠĠĠĠĠĠĠĠ 5 Ġ-> Ġcal idad String Ġ= Ġrecursos . getString ( R . string . cin co _ ex el ente ) čĊĠĠĠ Ġ} čĊĠĠĠ Ġreturn Ġcal idad String č Ċ } čĊč Ċ // ĠConvert ir Long AD ate String č Ċ @ Suppress Lint (" SimpleDateFormat ") č Ċ fun ĠConvert ir Long AD ate String ( system Time : ĠLong ): ĠString Ġ{ čĊĠĠĠ Ġreturn ĠSimpleDateFormat (" EEEE ĠM MM - dd - yyyy ' ĠTime : Ġ' HH : mm ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. format ( system Time ). toString () č Ċ } čĊčĊč Ċ fun Ġaplic ar Format o AN oc hes ( n ights : ĠList < Su eno N oche >, Ġresources : ĠResources ): ĠSp anned Ġ{ čĊĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () čĊĠĠĠ Ġsb . apply Ġ{ čĊĠĠĠĠĠĠĠ Ġappend ( resources . getString ( R . string . titulo )) čĊĠĠĠĠĠĠĠ Ġn ights . forEach Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("< br >") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( resources . getString ( R . string . in iciar _ ti empo )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ t ${ Convert ir Long AD ate String ( it . inicio Ti empo Milli )} < br >") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . termin o Ti empo Milli Ġ!= Ġit . inicio Ti empo Milli ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( resources . getString ( R . string . termin ar _ ti empo )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ t ${ Convert ir Long AD ate String ( it . termin o Ti empo Milli )} < br >") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( resources . getString ( R . string . cal idad )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ t ${ Convert ir La Cal idad De Numero A String ( it . su eno Cal idad , Ġresources )} < br >") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( resources . getString ( R . string . hor as _ d orm idas )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠH ours čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ t Ġ${ it . termin o Ti empo Milli . minus ( it . inicio Ti empo Milli ) Ġ/ Ġ 1 0 0 0 Ġ/ Ġ 6 0 Ġ/ Ġ 6 0 }: ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMin utes čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("${ it . termin o Ti empo Milli . minus ( it . inicio Ti empo Milli ) Ġ/ Ġ 1 0 0 0 Ġ/ Ġ 6 0 }: ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSecond s čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("${ it . termin o Ti empo Milli . minus ( it . inicio Ti empo Milli ) Ġ/ Ġ 1 0 0 0 } < br >< br >") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠHtml . from Html ( sb . toString (), ĠHtml . FROM _ HTML _ MODE _ LEG ACY ) čĊĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠHtml Compat . from Html ( sb . toString (), ĠHtml Compat . FROM _ HTML _ MODE _ LEG ACY ) čĊĠĠĠ Ġ} č Ċ } čĊč Ċ class ĠText Item ViewHolder ( val ĠtextView : ĠTextView ): ĠRecyclerView . ViewHolder ( textView ) čĊčĊčĊ