package Ġcom . kar h oo . uis dk . screen . address . search Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . Editable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . kar h oo . uis dk . R Ċ import Ġcom . kar h oo . uis dk . base . listener . Simple Text Watcher Ċ import Ġcom . kar h oo . uis dk . screen . address . domain . Address Search Provider Ċ import Ġkotlinx . android . synt hetic . main . uis dk _ view _ address _ search . view . clear Search Button Icon Ċ import Ġkotlinx . android . synt hetic . main . uis dk _ view _ address _ search . view . search Input Ċ Ċ class ĠAddress Search View Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style Attr ), ĠAddress Search M VP . View Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpresenter : ĠAddress Search Presenter ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġactions : ĠActions ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinf late ( context , ĠR . layout . uis dk _ view _ address _ search , Ġthis ) ĊĠĠĠĠĠĠĠ Ġinitialise Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Hint ( hint : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Input . hint Ġ= Ġhint ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Address Search Provider ( address Provider : ĠAddress Search Provider ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠAddress Search Presenter ( this , Ġaddress Provider ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear Search () Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Input . text . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Recent s () Ġ{ ĊĠĠĠĠĠĠĠ Ġactions ?. show Recent s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Results () Ġ{ ĊĠĠĠĠĠĠĠ Ġactions ?. show Results () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialise Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Search Button Icon . setOnClickListener Ġ{ Ġpresenter ?. on Clear Search () Ġ} ĊĠĠĠĠĠĠĠ Ġtoggle Clear Button ( false ) ĊĠĠĠĠĠĠĠ Ġsearch Input . add TextChanged Listener ( object Ġ: ĠSimple Text Watcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( editable : ĠEdit able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Term Ġ= Ġeditable . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Clear Button (! search Term . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter ?. search Updated ( search Term ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoggle Clear Button ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Search Button Icon . alpha Ġ= Ġif Ġ( enabled ) ĠAL PH A _ MAX Ġelse ĠAL PH A _ MIN ĊĠĠĠĠĠĠĠ Ġclear Search Button Icon . is Clickable Ġ= Ġenabled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠActions Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġshow Recent s () ĊĊĠĠĠĠĠĠĠ Ġfun Ġshow Results () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAL PH A _ MAX Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAL PH A _ MIN Ġ= Ġ 0 . 2 f ĊĠĠĠ Ġ} Ċ Ċ } Ċ