package Ġorg . trust note . wallet . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . InputType Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . Auto Complete TextView Ċ import Ġorg . trust note . wallet . R Ċ import Ġorg . trust note . wallet . biz . js . JS Api Ċ import Ġorg . trust note . wallet . u iframe work . Activity Base Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . TextView Ċ Ċ class ĠM n emonic Auto Complete TextView Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull ) ĊĠĠĠ Ġ: ĠAuto Complete TextView ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġword List Ġ= ĠJS Api (). getB ip 3 8 Word List (). to Mutable List () ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠWord Adapter ( context , ĠR . layout . item _ mn emonic _ autocomplete , Ġword List ) ĊĠĠĠĠĠĠĠ Ġthis . setAdapter ( adapter ) ĊĊĠĠĠĠĠĠĠ Ġset Raw InputType ( InputType . TYPE _ CLASS _ TEXT ) ĊĠĠĠĠĠĠĠ Ġset Text Is Selectable ( true ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠBelow Ġcode Ġwill Ġcause ĠUI Ġgl itch . ĊĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Soft Input On Focus Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . setOn Focus ChangeListener Ġ{ Ġv , Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( getContext () Ġas ĠActivity Base ). show Keyboard With Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . setOn Touch Listener Ġ{ Ġv , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . is Focused ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( getContext () Ġas ĠActivity Base ). show Keyboard With Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . setOn ItemClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfocus Next Word () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Word In B ip 3 8 Ġ= Ġword List . contains ( text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Word In B ip 3 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// focus Next Word () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġis Word In B ip 3 8 Ġ= Ġfalse ĊĊĠĠĠ Ġfun Ġfocus Next Word () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( next Focus Forward Id Ġ!= Ġ 0 Ġ&& Ġparent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( parent Ġas ĠViewGroup ). findViewById < View >( next Focus Forward Id ). request Focus () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }