package Ġt elen av . demo . app . homepage Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . location . Location Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . widget . Content Loading ProgressBar Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . tel enav . sdk . entity . api . Callback Ċ import Ġcom . tel enav . sdk . entity . api . Entity Client Ċ import Ġcom . tel enav . sdk . entity . api . Entity Service Ċ import Ġcom . tel enav . sdk . entity . model . prediction . Entity Suggestion Prediction Response Ċ import Ġcom . tel enav . sdk . entity . model . prediction . Suggestion Type Ċ import Ġt elen av . demo . app . R Ċ import Ġt elen av . demo . app . entity details . Entity Details Activity Ċ import Ġt elen av . demo . app . search list . Search List Fragment Ċ Ċ class ĠSuggest ion Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġt elen av Service : ĠEntity Client Ġby Ġlazy Ġ{ ĠEntity Service . getClient () Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġv Suggestions : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġv Suggestions List : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġv Suggestions Loading : ĠContent Loading ProgressBar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġv Suggestions Error : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġv Suggestions Empty : ĠTextView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ suggestions , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġv Suggestions Ġ= Ġview . findViewById ( R . id . suggestions ) ĊĠĠĠĠĠĠĠ Ġv Suggestions List Ġ= Ġview . findViewById ( R . id . suggestions List ) ĊĠĠĠĠĠĠĠ Ġv Suggestions Loading Ġ= Ġview . findViewById ( R . id . suggestions Loading ) ĊĠĠĠĠĠĠĠ Ġv Suggestions Error Ġ= Ġview . findViewById ( R . id . suggestions Error ) ĊĠĠĠĠĠĠĠ Ġv Suggestions Empty Ġ= Ġview . findViewById ( R . id . suggestions Empty ) ĊĊĠĠĠĠĠĠĠ Ġv Suggestions List . layout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠ Ġrequest Suggestions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Suggestions () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġarguments !!. getString (" text ") ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġ( activity !! Ġas ĠHome Page Activity ). last Known Location Ġ?: ĠLocation ("") ĊĠĠĠĠĠĠĠ ĠLog . w (" test ", Ġ"${ location . latitude } Ġ${ location . longitude }") ĊĊĠĠĠĠĠĠĠ Ġt elen av Service . suggestion Prediction Request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Query ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setLocation ( location . latitude , Ġlocation . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Limit ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. async Call ( activity !!. get UI Executor (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠCallback < Entity Suggestion Prediction Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( response : ĠEntity Suggestion Prediction Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w (" test ", ĠGson (). toJson ( response . results )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Suggestions Loading . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . results . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Suggestions Empty . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Suggestions . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Suggestions List . setAdapter ( Suggestion Recycler Adapter ( response . results ) Ġ{ Ġsuggestion Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" test ", Ġ" click Ġsuggestion Ġ${ Gson (). toJson ( suggestion )} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( suggestion . type Ġ== ĠSuggest ion Type . ENTITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( activity , ĠEntity Details Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Entity Details Activity . PARAM _ ID , Ġsuggestion . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity !! Ġas ĠHome Page Activity ). show Search Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch List Fragment . newInstance ( suggestion ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Suggestions Loading . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv Suggestions Error . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" test ", Ġ"", Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( text : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSuggest ion Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" text ", Ġtext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }