package Ġcom . en of eb . lock view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Count Down Timer Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Dimension Ċ import Ġandroidx . annotation . Float Range Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . core . view . children Ċ import Ġandroidx . core . view . forEach Ċ import Ġcom . en of eb . lock view . databinding . Layout Touch Lock View Binding Ċ Ċ class ĠTouch Lock View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= ĠR . attr . touch Lock View Style Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding : ĠLayout Touch Lock View Binding Ġ= ĠLayout Touch Lock View Binding . inflate ( ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ), ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġvar Ġis Touch Enable : ĠBoolean ? Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview Count Down Timer : ĠCount Down Timer ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlock Count Down Timer : ĠCount Down Timer ĊĊĠĠĠ Ġprivate Ġvar Ġ_ lock Enabled Text : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ lock Disabled Text : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Color Int ĊĠĠĠ Ġprivate Ġvar Ġ_ lock TextColor Ġ= ĠColor . BLACK ĊĊĠĠĠ Ġ@ Float Range ( from Ġ= Ġ 0 . 0 , Ġto Ġ= Ġ 1 . 0 ) ĊĠĠĠ Ġprivate Ġvar Ġ_ animation Speed Ġ= Ġ 0 . 5 f ĊĊĠĠĠ Ġprivate Ġvar Ġ_ hidden View Time : ĠLong Ġ= Ġ 5 0 0 0 ĊĊĠĠĠ Ġvar Ġlock Enabled Text : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ lock Enabled Text ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ lock Enabled Text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlock Disabled Text : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ lock Disabled Text ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ lock Disabled Text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlock TextColor : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Color Int Ġget () Ġ= Ġ_ lock TextColor ĊĠĠĠĠĠĠĠ Ġset (@ Color Int Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ lock TextColor Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Label . setTextColor ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlock Text Size : ĠFloat ĊĠĠĠĠĠĠĠ Ġ@ Dimension Ġget () Ġ= Ġbinding . textView Label . text Size ĊĠĠĠĠĠĠĠ Ġset (@ Dimension Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Label . setText Size ( Typed Value . COMPLEX _ UNIT _ PX , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġanimation Speed : ĠFloat ĊĠĠĠĠĠĠĠ Ġ@ Float Range ( from Ġ= Ġ 0 . 0 , Ġto Ġ= Ġ 1 . 0 ) Ġget () Ġ= Ġ_ animation Speed ĊĠĠĠĠĠĠĠ Ġset (@ Float Range ( from Ġ= Ġ 0 . 0 , Ġto Ġ= Ġ 1 . 0 ) Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . lott ie Lock . speed Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġhidden View Time : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ hidden View Time ĊĠĠĠĠĠĠĠ Ġset (@ Dimension Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ hidden View Time Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġobtain Styled Attributes ( attrs , Ġdef Style Attr ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobtain Styled Attributes ( attrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtyped Array Ġ= Ġcontext . theme . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Touch Lock View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Attr , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( typed Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock Enabled Text Ġ= ĠgetString ( R . style able . Touch Lock View _ lock Enabled Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock Disabled Text Ġ= ĠgetString ( R . style able . Touch Lock View _ lock Disabled Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock TextColor Ġ= Ġget Color ( R . style able . Touch Lock View _ lock TextColor , Ġlock TextColor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock Text Size Ġ= Ġget Dimension ( R . style able . Touch Lock View _ lock Text Size , Ġlock Text Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Speed Ġ= Ġget Float ( R . style able . Touch Lock View _ animation Speed , Ġanimation Speed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġignored ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtyped Array . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Count Down s () ĊĠĠĠĠĠĠĠ Ġinit Switch Checked () ĊĠĠĠĠĠĠĠ Ġset Label Default Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Count Down s () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Count Down Timer Ġ= Ġobject Ġ: ĠCount Down Timer ( hidden View Time , ĠINTER VAL _ TIMER _ F UT URE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( p 0 : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// no - op ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Time For Switch Visibility () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlock Count Down Timer Ġ= Ġobject Ġ: ĠCount Down Timer ( hidden View Time , ĠINTER VAL _ TIMER _ F UT URE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( p 0 : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// no - op ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Time For Switch Visibility () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Component Items () ĊĠĠĠĠĠĠĠ Ġview Count Down Timer . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Switch Checked () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . lott ie Lock . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Ġ= Ġanimation Speed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Ġ= ĠDEFAULT _ PROGRESS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Count Down Timer . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock Count Down Timer . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock Count Down Timer . start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Touch Enable Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Touch Enable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Min And Max Progress ( MIN _ PROGRESS , ĠDEFAULT _ PROGRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Touch Enable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Min And Max Progress ( DEFAULT _ PROGRESS , ĠMAX _ PROGRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Label ( is Touch Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadjust Root Clickable ( is Touch Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Label ( isChecked : ĠBoolean ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isChecked Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Label . text Ġ= Ġlock Enabled Text ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Label . text Ġ= Ġlock Disabled Text ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Label Default Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . textView Label . text Ġ= Ġlock Disabled Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Time For Switch Visibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . dismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Component Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadjust Root Clickable ( isChecked : ĠBoolean ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġthis . parent Ġas ? ĠViewGroup ĊĊĠĠĠĠĠĠĠ Ġparent ?. children ?. forEach Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ! is ĠTouch Lock View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Group Ġ= Ġview Ġas ? ĠViewGroup ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Group ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Clickable Ġ= Ġis Checked Ġ!= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . is Clickable Ġ= Ġis Checked Ġ!= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ PROGRESS Ġ= Ġ 0 . 5 f ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN _ PROGRESS Ġ= Ġ 0 . 5 f ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMAX _ PROGRESS Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINTER VAL _ TIMER _ F UT URE : ĠLong Ġ= Ġ 2 0 0 0 ĊĠĠĠ Ġ} Ċ Ċ }