package Ġcom . ap top ay ments . sdk . features . input data . address Ċ Ċ import Ġandroid . content . Context Ċ 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 . TextView Ċ import Ġcom . ap top ay ments . mobile . data . config . UI Config Ċ import Ġcom . ap top ay ments . mobile . data . geo . Country Ċ import Ġcom . google . android . gms . tasks . Tasks Ċ import Ġcom . google . android . libraries . places . api . model . Autocomplete Prediction Ċ import Ġcom . google . android . libraries . places . api . model . Autocomplete Session Token Ċ import Ġcom . google . android . libraries . places . api . model . Type Filter Ċ import Ġcom . google . android . libraries . places . api . net . Find Autocomplete Pred i ctions Request Ċ import Ġcom . google . android . libraries . places . api . net . Places Client Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ internal Ġclass ĠPl aces Autocomplete Adapter Ġinternal Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġplaces Client : ĠPl aces Client , ĊĠĠĠ Ġprivate Ġval Ġcountry List : ĠList < Country > Ċ ) Ġ: ĠArray Adapter < Autocomplete Prediction >( context , Ġandroid . R . layout . simple _ expand able _ list _ item _ 2 , Ġandroid . R . id . text 1 ), ĊĠĠĠ ĠFilter able Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġresult List : ĠList < Autocomplete Prediction > Ġ= ĠlistOf () ĊĊĠĠĠ Ġoverride Ġfun Ġget Count () Ġ= Ġresult List . size ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ) Ġ= Ġresult List [ position ] ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġsuper . getView ( position , ĠconvertView , Ġparent ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġval ĠtextView 1 Ġ= Ġrow . findViewById < TextView >( android . R . id . text 1 ) ĊĠĠĠĠĠĠĠ Ġval ĠtextView 2 Ġ= Ġrow . findViewById < TextView >( android . R . id . text 2 ) ĊĠĠĠĠĠĠĠ ĠtextView 1 . text Ġ= Ġitem . get Primary Text ( null ) ĊĠĠĠĠĠĠĠ ĠtextView 2 . text Ġ= Ġitem . get Secondary Text ( null ) ĊĠĠĠĠĠĠĠ ĠtextView 1 . setTextColor ( UI Config . text Primary Color ) ĊĠĠĠĠĠĠĠ ĠtextView 2 . setTextColor ( UI Config . text Primary Color ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrow ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠFilter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Filtering ( char Sequence : ĠCharSequence ?): ĠFilter Results Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠFilter Results () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfilter Data : ĠList < Autocomplete Prediction > Ġ= Ġempty List () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! char Sequence . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Data Ġ= Ġget Autocomplete ( char Sequence ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults . values Ġ= Ġfilter Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults . count Ġ= Ġfilter Data . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġpublish Results ( char Sequence : ĠCharSequence ?, Ġresults : ĠFilter Results ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( results . count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult List Ġ= Ġresults . values Ġas ĠList < Autocomplete Prediction > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Invalid ated () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconvert Result ToString ( result Value : ĠAny ): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result Value Ġis ĠAuto complete Prediction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Value . getFull Text ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . convert Result ToString ( result Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Autocomplete ( constraint : ĠCharSequence ): ĠList < Autocomplete Prediction > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Builder Ġ= Ġbuild Request ( constraint ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġplaces Client . find Autocomplete Pred i ctions ( request Builder . build ()) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTasks . await ( results , Ġ 1 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNothing ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( results . is Successful Ġ&& Ġresults . result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . result !!. autocomplete Pred i ctions ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Request ( constraint : ĠCharSequence ): ĠFind Autocomplete Pred i ctions Request . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFind Autocomplete Pred i ctions Request . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Query ( constraint . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Countries ( country List . map Ġ{ Ġit . iso Code Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Session Token ( Autocomplete Session Token . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType Filter ( Type Filter . ADDRESS ) ĊĠĠĠ Ġ} Ċ } Ċ