/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠN ich olas ĠDog lio Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . n ich olas dog lio . weather . ui . common Ċ Ċ import Ġcom . google . android . gms . common . api . Status Ċ import Ġcom . google . android . gms . location . places . Autocomplete Filter Ċ import Ġcom . google . android . gms . location . places . Place Ċ import Ġcom . google . android . gms . location . places . ui . Place Selection Listener Ċ import Ġcom . google . android . gms . location . places . ui . Support Place Autocomplete Fragment Ċ import Ġcom . n ich olas dog lio . weather . R Ċ import Ġcom . n ich olas dog lio . weather . ui . MainActivity Ċ import Ġcom . n ich olas dog lio . weather . ui . forecast . details . Forecast Fragment Ċ import Ġcom . n ich olas dog lio . weather . ui . list . Weather List Fragment Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* Ġ@ author ĠN ich olas ĠDog lio Ċ Ġ*/ Ċ class ĠNavigation Controller Ġ@ Inject Ġconstructor ( private Ġval Ġmain Activity : ĠMainActivity ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcontainer Id Ġ= ĠR . id . fragment Container ĊĠĠĠ Ġprivate Ġval Ġfragment Manager Ġ= Ġmain Activity . support FragmentManager ĊĊĠĠĠ Ġ// TODO Ġtransitions ĊĠĠĠ Ġfun Ġopen Weather List Fragment ( latitude : ĠDouble Ġ= Ġ 0 . 0 , Ġlongitude : ĠDouble Ġ= Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( container Id , ĠWeather List Fragment . create ( latitude , Ġlongitude )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit Allow ing State Loss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen On boarding Fragment () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen Forecast Fragment ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( container Id , ĠFore cast Fragment . create ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit Allow ing State Loss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen About Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO ĠDialog Ġfragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen Search Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO Ġcan ĠI Ġmake Ġthis Ġbetter ? ĊĠĠĠĠĠĠĠ Ġval Ġplaces Fragment Ġ= ĠSupport Place Autocomplete Fragment () ĊĊĠĠĠĠĠĠĠ Ġval Ġtype Filter Ġ= ĠAuto complete Filter . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType Filter ( Autocomplete Filter . TYPE _ FILTER _ C ITIES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġplaces Fragment . set Filter ( type Filter ) ĊĊĠĠĠĠĠĠĠ Ġplaces Fragment . setOn Place Selected Listener ( object Ġ: ĠPlace Selection Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Place Selected ( place : ĠPlace ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ((" lat : Ġ${ place ?. lat Lng ?. latitude } Ġlong : Ġ${ place ?. lat Lng ?. longitude } ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Weather List Fragment ( place !!. lat Lng . latitude , Ġplace . lat Lng . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠStatus ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ("${ error ?. statusCode }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( container Id , ĠPl aces Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} Ċ }