package Ġcom . example . rv ic iana . safe flight . view . form Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Filter Ċ import Ġcom . example . rv ic iana . safe flight . R Ċ import Ġcom . example . rv ic iana . safe flight . domain . bo . Air port Ċ import Ġcom . example . rv ic iana . safe flight . extensions . inflate Ċ import Ġkotlinx . android . synt hetic . main . suggestion _ adapter _ item . view .* Ċ Ċ class ĠSuggest ions Array Adapter ( activity : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout ResourceId : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġair ports Array : ĠArrayList < Air port >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomplete Air ports Array : ĠArrayList < Air port > Ċ ) Ġ: ĠArray Adapter < Air port >( activity , Ġlayout ResourceId , Ġair ports Array ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġair ports Array . size ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠAir port ? Ġ= Ġair ports Array [ position ] ĊĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ= Ġposition . to Long () ĊĊĠĠĠ Ġ@ Suppress Lint (" ViewHolder ") ĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView ? ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĊĠĠĠĠĠĠĠ Ġview Ġ= Ġparent . inflate ( R . layout . suggestion _ adapter _ item ) ĊĠĠĠĠĠĠĠ Ġview . name . text Ġ= Ġitem ?. names ?. name List ! ![ 0 ]. name ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ= Ġobject Ġ: ĠFilter () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconvert Result ToString ( result Value : ĠAny ?): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġair port Ġ= Ġresult Value Ġas ĠAir port ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġair port . names . name List [ 0 ]. name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Filtering ( constraint : ĠCharSequence ?): ĠFilter Results Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter Results Ġ= ĠFilter Results () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġair ports Suggestion Array Ġ= ĠArrayList < Air port >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( constraint Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( airport Ġin Ġair ports Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġair port Name Ġ= Ġair port . names . name List [ 0 ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( airport Name . toLowerCase (). startsWith ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint . toString (). toLowerCase ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġair ports Suggestion Array . add ( airport ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Results . values Ġ= Ġair ports Suggestion Array ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Results . count Ġ= Ġair ports Suggestion Array . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfilter Results ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġpublish Results ( constraint : ĠCharSequence ?, Ġresults : ĠFilter Results ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġair ports Array . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( results Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( results . count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults List Ġ= Ġresults . values Ġas ĠList < *> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( any Ġin Ġresults List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġair ports Array . add ( any Ġas ĠAir port ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( constraint Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġair ports Array . addAll ( complete Air ports Array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊĊĊ