package Ġcom . example . tracker . utils Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . content . res . Configuration . UI _ MODE _ N IGHT _ YES Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . TextView Ċ import Ġcom . example . tracker . R Ċ import Ġjava . text . Decimal Format Ċ import Ġjava . text . NumberFormat Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* ĊĊ Ċ object ĠExp ansion Utils Ġ{ ĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġfun ĠLong . timestamp ToDate ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" dd ĠM MMM ", ĠLocale ( context . getString ( R . string . app _ locale ))) ĊĠĠĠĠĠĠĠ Ġval Ġtime Format Ġ= ĠSimpleDateFormat (" k : mm ", ĠLocale ( context . getString ( R . string . app _ locale ))) ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠdateFormat . format ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġtime Ġ= Ġtime Format . format ( this ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ context . getString ( R . string . updated )} : Ġ$ date Ġ${ context . getString ( R . string . at )} Ġ$ time " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠString . to Millis (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat (" MM / dd / yy ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġdf . parse ( this ). time ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠLong . from Millis ( format : ĠString , Ġlocale : ĠLocale ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat ( format , Ġlocale ) ĊĠĠĠĠĠĠĠ Ġval Ġnet Date Ġ= ĠDate ( this ) ĊĠĠĠĠĠĠĠ Ġreturn ĠdateFormat . format ( net Date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" ResourceType ") ĊĠĠĠ Ġfun ĠTextView . setColor Before ( word : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĠSp ann able String ( this . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġforeground Span Ġ= ĠFore ground Color Span ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor . parse Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . color Accent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtext . set Span ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforeground Span , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . length Ġ- Ġword . length , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠView . hide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠInt . decimal Formatter (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠNumber Format . getNumber Instance ( Locale . getDefault ()) Ġas ĠDecimal Format ĊĠĠĠĠĠĠĠ Ġformat . apply Pattern ("# , ### , ### ") ĊĠĠĠĠĠĠĠ Ġreturn Ġformat . format ( this ). replace ( ("\\ s + "). to Regex (), Ġ", ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . is Dark Theme On (): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġreturn Ġresources . configuration . ui Mode Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration . UI _ MODE _ N IGHT _ MASK Ġ== ĠUI _ MODE _ N IGHT _ YES ĊĠĠĠ Ġ} Ċ }