package Ġcom . google . android . gms . samples . vision . face . face tracker . view Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Handler Thread Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . TextView Ċ import Ġjava . util .* Ċ import Ġcom . google . android . gms . samples . vision . face . face tracker . R Ċ import Ġcom . google . android . gms . samples . vision . face . face tracker . utils . Time Utils ĊĊ Ċ class ĠC ust Tick TextView Ġ: ĠTextView Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= Ġ" Cust Tick TextView " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Format : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Tick Handler : Handler ĊĠĠĠ Ġprivate Ġval Ġm Tick Runnable Ġ= Ġobject : Runnable Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Cust Tick TextView . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Cust Tick TextView . text Ġ= ĠTime Utils . convert Date To Str ( cal . time , Ġm Format ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tick Handler . post Delayed ( this , Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( attrs , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠ Ġdef Style Attr ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( attrs , Ġdef Style Attr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet ?, ĊĠĠĠĠĠĠĠ Ġdef Style Attr : ĠInt , ĊĠĠĠĠĠĠĠ Ġdef Style Res : ĠInt ĊĠĠĠ Ġ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( attrs , Ġdef Style Attr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit ( attrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattrs Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Cust Tick TextView , Ġdef Style Attr , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġm Format Ġ= Ġattrs . getString ( R . style able . Cust Tick TextView _ output _ format ) ĊĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġthis . text Ġ= ĠTime Utils . convert Date To Str ( cal . time , Ġm Format ) ĊĠĠĠĠĠĠĠ Ġthis . m Tick Handler Ġ= ĠHandler () ĊĠĠĠĠĠĠĠ Ġ// ĠAlign ĠTime ĊĠĠĠĠĠĠĠ Ġval Ġcur TimeStamp Ġ= Ġcal . time In Millis ĊĠĠĠĠĠĠĠ Ġcal . add ( Calendar . SECOND , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġcal . set ( Calendar . MILLI SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Millis Ġ= Ġcal . time In Millis Ġ- Ġcur TimeStamp ĊĠĠĠĠĠĠĠ Ġm Tick Handler . post Delayed ( m Tick Runnable , Ġdiff Millis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrelease () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Tick Handler . remove Callbacks ( m Tick Runnable ) ĊĠĠĠ Ġ} Ċ }