package Ġcom . w uj ia . login . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ import Ġcom . w uj ia . login . R Ċ Ċ class ĠS ms Code View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠRelative Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMAX Ġ= Ġ 6 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġedit Text : ĠEditText ĊĠĠĠ Ġprivate Ġval Ġtext Views : ĠArray < TextView ?> ĊĠĠĠ Ġvar Ġedit Content : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠView . inflate ( context , ĠR . layout . lg _ view _ sms _ code , Ġthis ) ĊĠĠĠĠĠĠĠ Ġtext Views Ġ= ĠarrayOf Null s ( MAX ) ĊĠĠĠĠĠĠĠ Ġtext Views [ 0 ] Ġ= ĠfindViewById < View >( R . id . tv _ 0 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtext Views [ 1 ] Ġ= ĠfindViewById < View >( R . id . tv _ 1 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtext Views [ 2 ] Ġ= ĠfindViewById < View >( R . id . tv _ 2 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtext Views [ 3 ] Ġ= ĠfindViewById < View >( R . id . tv _ 3 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtext Views [ 4 ] Ġ= ĠfindViewById < View >( R . id . tv _ 4 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtext Views [ 5 ] Ġ= ĠfindViewById < View >( R . id . tv _ 5 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġedit Text Ġ= ĠfindViewById < View >( R . id . edit _ text _ view ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġedit Text . is Cursor Visible Ġ= Ġfalse Ġ// éļĲèĹı åħī æłĩ ĊĠĠĠĠĠĠĠ Ġset EditText Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset EditText Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Text . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( char Sequence : ĠCharSequence , Ġi : ĠInt , Ġi 1 : ĠInt , Ġi 2 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( char Sequence : ĠCharSequence , Ġi : ĠInt , Ġi 1 : ĠInt , Ġi 2 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( editable : ĠEdit able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Content Ġ= Ġedit Text . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input Complete Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit Content !!. length Ġ>= ĠMAX ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Complete Listener !!. input Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Complete Listener !!. invalid Content () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil ĠMAX ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġedit Content !!. length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Views [ i ] !!. text Ġ= Ġedit Content ! ![ i ]. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Views [ i ] !!. text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġinput Complete Listener : ĠInput Complete Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset Input Complete Listener ( input Complete Listener : ĠInput Complete Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . input Complete Listener Ġ= Ġinput Complete Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠInput Complete Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġinput Complete () ĊĠĠĠĠĠĠĠ Ġfun Ġinvalid Content () ĊĠĠĠ Ġ} Ċ Ċ }