package Ġcom . k rist al . k bbi . presentation . view . common Ċ Ċ import Ġandroid . os . Handler Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . widget . EditText Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠD wi _ A ri Ġon Ġ 1 0 / 2 8 / 1 7 . Ċ Ġ*/ Ċ Ċ class ĠEditText Search Support ( ĊĠĠĠĠĠĠĠ Ġedit Text : ĠEditText , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsearch Query : Ġ( String ) Ġ-> ĠUnit Ċ ) Ġ: ĠText Watcher Ġ{ ĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler () ĊĠĠĠ Ġprivate Ġvar Ġrunnable : ĠRunnable ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġdelay : ĠLong Ġ= Ġ 1 0 0 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Text . add TextChanged Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( run nable Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( run nable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrunnable Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( s )) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġrunnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Query . invoke ( s . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhandler . post Delayed ( run nable , Ġdelay ) ĊĠĠĠ Ġ} Ċ }