package Ġ` in `. mad apps . places autocomplete . adapter Ċ Ċ import Ġ` in `. mad apps . places autocomplete . Place API Ċ import Ġ` in `. mad apps . places autocomplete . R Ċ import Ġ` in `. mad apps . places autocomplete . R . layout Ċ import Ġ` in `. mad apps . places autocomplete . model . Place Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Filter Ċ import Ġandroid . widget . Filter able Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġm uk esh sol ank i Ġon Ġ 2 8 / 0 2 / 1 9 . Ċ Ġ*/ Ċ class ĠPl aces Auto Complete Adapter ( mContext : ĠContext , Ġval Ġplaces Api : ĠPlace API ) Ġ: ĊĠĠĠ ĠArray Adapter < Place >( mContext , Ġlayout . autocomplete _ list _ item ), ĠFilter able Ġ{ ĊĊĠ Ġvar Ġresult List : ĠArrayList < Place >? Ġ= ĠArrayList () ĊĊĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠ Ġresult List . isNull OrEmpty () Ġ-> Ġ 0 ĊĠĠĠĠĠ Ġelse Ġ-> Ġresult List ?. size !! ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠPlace ? Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠ Ġresult List . isNull OrEmpty () Ġ-> Ġnull ĊĠĠĠĠĠ Ġelse Ġ-> Ġresult List ! ![ position ] ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠ Ġvar Ġview Ġ= ĠconvertView ĊĠĠĠ Ġval ĠviewHolder : ĠViewHolder ĊĠĠĠ Ġif Ġ( view Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ ĠviewHolder Ġ= ĠViewHolder () ĊĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠ Ġview Ġ= Ġinflater . inflate ( R . layout . autocomplete _ list _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠ ĠviewHolder . description Ġ= Ġview . findViewById ( R . id . autocomplete Text ) Ġas ĠTextView ĊĠĠĠĠĠ ĠviewHolder . footer ImageView Ġ= Ġview . findViewById ( R . id . footer ImageView ) Ġas ĠImageView ĊĠĠĠĠĠ Ġview . tag Ġ= ĠviewHolder ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠviewHolder Ġ= Ġview . tag Ġas ĠViewHolder ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġplace Ġ= Ġresult List ! ![ position ] ĊĠĠĠ Ġbind View ( view Holder , Ġplace , Ġposition ) ĊĠĠĠ Ġreturn Ġview !! ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġbind View ( view Holder : ĠViewHolder , Ġplace : ĠPlace , Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġif Ġ(! result List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( position Ġ!= Ġresult List !!. size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewHolder . description ?. text Ġ= Ġplace . description ĊĠĠĠĠĠĠĠ ĠviewHolder . footer ImageView ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ ĠviewHolder . description ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠviewHolder . footer ImageView ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ ĠviewHolder . description ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠFilter () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġpublish Results ( constraint : ĠCharSequence ?, Ġresults : ĠFilter Results ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( results Ġ!= Ġnull Ġ&& Ġresults . count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Invalid ated () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġperform Filtering ( constraint : ĠCharSequence ?): ĠFilter Results Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilter Results Ġ= ĠFilter Results () ĊĠĠĠĠĠĠĠ Ġif Ġ( constraint Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġresult List Ġ= Ġplaces Api . autocomplete ( constraint . toString ()) ĊĠĠĠĠĠĠĠĠĠ Ġresult List ?. add ( Place ("- 1 ", Ġ" footer ")) ĊĠĠĠĠĠĠĠĠĠ Ġfilter Results . values Ġ= Ġresult List ĊĠĠĠĠĠĠĠĠĠ Ġfilter Results . count Ġ= Ġresult List !!. size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfilter Results ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġinternal Ġclass ĠViewHolder Ġ{ ĊĠĠĠ Ġvar Ġdescription : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfooter ImageView : ĠImageView ? Ġ= Ġnull ĊĠ Ġ} Ċ } Ċ