package Ġcom . n aw rot . mate us z . compass . home . destination Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Dialog Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . jak ew h art on . r xb ind ing 2 . view . Rx View Ċ import Ġcom . n aw rot . mate us z . compass . R Ċ import Ġcom . n aw rot . mate us z . compass . base . clear Error Ċ import Ġcom . n aw rot . mate us z . compass . base . enable AndSet Error Ċ import Ġcom . n aw rot . mate us z . compass . base . to Optional Double Ċ import Ġkotlinx . android . synt hetic . main . fragment _ destination _ dialog .* ĊĊ Ċ class ĠDestination Dialog Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġactivity Interface : ĠDestination Dialog Activity Interface ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDEST INATION _ LAT IT UDE _ KEY : ĠString Ġ= Ġ" DEST INATION _ LAT IT UDE " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDEST INATION _ LONG IT UDE _ KEY : ĠString Ġ= Ġ" DEST INATION _ LONG IT UDE " ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( destination Latitude : ĠDouble ?, Ġdestination Long it ue : ĠDouble ?): ĠDestination Dialog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠDestination Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Latitude ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Double ( DEST INATION _ LAT IT UDE _ KEY , Ġdestination Latitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Long it ue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Double ( DEST INATION _ LONG IT UDE _ KEY , Ġdestination Long it ue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠTAG : ĠString Ġ= ĠDestination Dialog :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattach ( context Ġas ĠActivity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġattach ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġis ĠDestination Dialog Activity Interface ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Interface Ġ= Ġactivity ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ destination _ dialog , Ġcontainer , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠRx View . click s ( dialog Cancel Button ). subscribe Ġ{ Ġcancel Button Clicked () Ġ} ĊĠĠĠĠĠĠĠ ĠRx View . click s ( dialog Apply Button ). subscribe Ġ{ Ġapply Button Clicked () Ġ} ĊĊĠĠĠĠĠĠĠ Ġget Latitude From Bundle ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude EditText . setText ( it . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget Longitude From Bundle ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude EditText . setText ( it . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġactivity Interface Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcancel Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapply Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! coordinates Are Valid ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġactivity Interface ?. destination Coordinates Entered ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude EditText . text . toString (). to Optional Double (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude EditText . text . toString (). to Optional Double ()) ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Latitude From Bundle (): ĠDouble ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( arguments ?. containsKey ( DEST INATION _ LAT IT UDE _ KEY ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments ?. getDouble ( DEST INATION _ LAT IT UDE _ KEY ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Longitude From Bundle (): ĠDouble ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( arguments ?. containsKey ( DEST INATION _ LONG IT UDE _ KEY ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments ?. getDouble ( DEST INATION _ LONG IT UDE _ KEY ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcoordinates Are Valid (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlat Ġ= Ġlatitude EditText . text . toString (). to Optional Double () ĊĠĠĠĠĠĠĠ Ġval Ġlng Ġ= Ġlongitude EditText . text . toString (). to Optional Double () ĊĊĠĠĠĠĠĠĠ Ġval Ġlat Valid Ġ= Ġlat Ġ== Ġnull Ġ|| Ġ( lat Ġ>= Ġ- 9 0 Ġ&& Ġlat Ġ<= Ġ 9 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġlng Valid Ġ= Ġlng Ġ== Ġnull Ġ|| Ġ( lng Ġ>= Ġ- 1 8 0 Ġ&& Ġlng Ġ<= Ġ 1 8 0 ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! lat Valid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Input Layout . enable AndSet Error ( R . string . error _ latitude _ not _ valid ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Input Layout . clear Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! lng Valid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Input Layout . enable AndSet Error ( R . string . error _ longitude _ not _ valid ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Input Layout . clear Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlat Valid Ġ&& Ġlng Valid ĊĠĠĠ Ġ} ĊĊ Ċ }