package Ġcom . ev ya . my weather app . ui . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Navigation Ċ import Ġcom . ev ya . my weather app . Constants Ċ import Ġcom . ev ya . my weather app . Main Data Ċ import Ġcom . ev ya . my weather app . R Ċ import Ġcom . ev ya . my weather app . databinding . Choose Attr action Fragment Layout Binding Ċ import Ġcom . ev ya . my weather app . ui . dialogs . No Attr action Found Dialog Ċ import Ġcom . ev ya . my weather app . util . Fire Base Events Ċ import Ġcom . ev ya . my weather app . util . Utils Functions Ċ import Ġcom . ev ya . my weather app . view models . Places ViewModel Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ Ċ @ Experimental Cor outines Api Ċ @ Android EntryPoint Ċ class ĠChoose Attr action Fragment Ġ: ĠFragment ( R . layout . choose _ attr action _ fragment _ layout ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Places ViewModel : ĠPl aces ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Nav Controller : ĠNav Controller ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Binding : ĠChoose Attr action Fragment Layout Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Name : ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm Binding Ġ= ĠChoose Attr action Fragment Layout Binding . bind ( view ) ĊĊĠĠĠĠĠĠĠ Ġm Nav Controller Ġ= ĠNavigation . find Nav Controller ( view ) ĊĠĠĠĠĠĠĠ Ġset OnClickListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. application Context !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . select _ dialog _ item , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . re plac edList () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm Binding . auto Complete Text view . threshold Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġm Binding . auto Complete Text view . setAdapter ( adapter ) ĊĠĠĠĠĠĠĠ Ġm Binding . auto Complete Text view . setOn ItemClickListener Ġ{ Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . auto Complete Text view . text . toString (). replace (" Ġ", Ġ"_ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . general _ error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . Search Attr actions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Places ViewModel . places Repo . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . first Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat Long : ĠArrayList < LatLng > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . first !!. features . forEach Ġ{ Ġfeature Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlat Long . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature . geometry . coordinates [ 0 ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature . geometry . coordinates [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lat Long . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġbundle Of (" places " Ġto Ġit . first ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Nav Controller . navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ choose Attr action Fragment _ to _ google Maps Attr action Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . lott ie . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. support FragmentManager ?. let Ġ{ Ġfragment Manager Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Binding . auto Complete Text view . text . toString (). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġm Binding . auto Complete Text view . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNo Attr action Found Dialog . newInstance ( m Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager , Ġ" ĠNO _ ATTR ACTION _ DIALOG " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . second . second ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . second . first ?. let Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils Functions . show Toast ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. application Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset OnClickListener () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm Binding . get Hotel Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ hot els _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" ac com od ations ", ĠR . string . ac commod ations _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . Hotel Attr actions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . get Night life Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ night _ life _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" ad ult ", ĠR . string . ad ult s _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . Night Life Attr actions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . get Transport Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ transport _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" transport ", ĠR . string . transport s _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . Transport Attr action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . getB anks Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ b anks _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" b anks ", ĠR . string . b anks _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . B anks Attr action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . get Food Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ food _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" food s ", ĠR . string . food _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . Food Attr action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . getM use ums Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ m use ums _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" m use ums ", ĠR . string . m use um _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . M use ums Attr action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . get History Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ h istoric _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" h istoric ", ĠR . string . h istoric _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . Historic Attr action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . getC ulture Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ c ult ural _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" c ult ural ", ĠR . string . natural _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . C ult ural Attr action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Binding . getN ature Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġresources . getString ( R . string . get _ natural _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhat ToDo (" natural ", ĠR . string . natural _ request _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFire Base Events . send Fire Base Custom Events ( Fire Base Events . Firebase Events Strings . N ature Attr action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwhat ToDo ( kind : ĠString , Ġerror : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding . main Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġm Binding . lott ie . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġm Binding . auto Complete Text view . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġm Places ViewModel . get What ToDo ( Main Data . lat , ĠMain Data . long , Ġkind , Ġerror ) ĊĠĠĠ Ġ} Ċ }