package Ġio . ai ico . flight . presentation . flight Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġcom . google . android . gms . maps . Camera Update Factory Ċ import Ġcom . google . android . gms . maps . Google Map Ċ import Ġcom . google . android . gms . maps . Google Map . On Map Loaded Callback Ċ import Ġcom . google . android . gms . maps . On Map Ready Callback Ċ import Ġcom . google . android . gms . maps . Support Map Fragment Ċ import Ġcom . google . android . gms . maps . model . Bitmap Descriptor Factory Ċ import Ġcom . google . android . gms . maps . model . Dot Ċ import Ġcom . google . android . gms . maps . model . Gap Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . google . android . gms . maps . model . LatLng Bounds Ċ import Ġcom . google . android . gms . maps . model . Marker Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ import Ġcom . google . android . gms . maps . model . Polyline Options Ċ import Ġcom . google . maps . android . ui . Icon Generator Ċ import Ġio . ai ico . flight . R Ċ import Ġio . ai ico . flight . Service Locator Ċ import Ġio . ai ico . flight . domain . model . Destination Ċ import Ġio . ai ico . flight . presentation . base . Base Fragment Ċ import Ġio . ai ico . flight . presentation . flight . Flight Presenter . Companion . KEY _ END _ COORD IN ATE Ċ import Ġio . ai ico . flight . presentation . flight . Flight Presenter . Companion . KEY _ END _ POINT _ NAME Ċ import Ġio . ai ico . flight . presentation . flight . Flight Presenter . Companion . KEY _ START _ COORD IN ATE Ċ import Ġio . ai ico . flight . presentation . flight . Flight Presenter . Companion . KEY _ START _ POINT _ NAME Ċ Ċ class ĠFlight Fragment Ġ: ĊĠĠĠ ĠBase Fragment < Flight Presenter >(), ĊĠĠĠ ĠFlight View , ĊĠĠĠ ĠOn Map Ready Callback , ĊĠĠĠ ĠOn Map Loaded Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmap : ĠGoogle Map ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġplane Marker : ĠMarker ĊĊĠĠĠ Ġprivate Ġvar Ġdot Size : ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġcamera Padding : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Presenter (): ĠFlight Presenter Ġ= ĊĠĠĠĠĠĠĠ ĠFlight Presenter ( Service Locator . get Flight Interactor (), Ġrequire Arguments (), Ġthis ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġdot Size Ġ= Ġresources . get Dimension ( R . dim en . route _ dot _ size ) ĊĠĠĠĠĠĠĠ Ġcamera Padding Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . map _ camera _ padding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ flight , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ( child FragmentManager . find Fragment ById ( R . id . map Fragment ) Ġas ĠSupport Map Fragment ). getMap Async ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġpresenter . on View Be come s Visible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġpresenter . on View Be come s Not Visible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( prepared Map : ĠGoogle Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmap Ġ= Ġprepared Map ĊĠĠĠĠĠĠĠ Ġinit Map () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġmap . setOn Map Loaded Callback ( this ) ĊĊĠĠĠĠĠĠĠ Ġwith ( map . ui Settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Zoom Controls Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn door Level Picker Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Map Toolbar Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis My Location Button Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpresenter . on Map Initialization () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Point Marker ( position : ĠLat Lng , Ġtitle : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( Marker Options ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon ( Bitmap Descriptor Factory . from Bitmap ( generate City Label ( title ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflat ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . add Marker ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate City Label ( title : ĠString ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( Icon Generator ( require Context ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Background ( Context Compat . get Drawable ( require Context (), ĠR . drawable . background _ marker )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextAppearance ( R . style . TextAppearance _ Flight _ Marker Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmake Icon ( title ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Route ( path : ĠList < LatLng >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( Polyline Options ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath . forEach Ġ{ Ġpoint Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( point ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth ( dot Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġge odes ic ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor ( Context Compat . getColor ( require Context (), ĠR . color . color Route )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpattern ( mutable ListOf ( Dot (), ĠG ap ( dot Size ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . add Polyline ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Plane Marker ( position : ĠLat Lng , Ġrotation : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( Marker Options ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon ( Bitmap Descriptor Factory . from Resource ( R . drawable . ic _ plane )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrotation ( rotation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanchor ( 0 . 5 F , Ġ 0 . 5 F ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġz Index ( 1 F ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflat ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplane Marker Ġ= Ġmap . add Marker ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmove Plane Marker ( position : ĠLat Lng , Ġrotation : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplane Marker . position Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġplane Marker . rotation Ġ= Ġrotation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Loaded () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . on Map Loaded () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Scene ( var arg Ġbounds Points : ĠLat Lng ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( LatLng Bounds . Builder ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Points . forEach Ġ{ Ġpoint Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude ( point ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . animate Camera ( Camera Update Factory . new LatLng Bounds ( build (), Ġcamera Padding )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( start Destination : ĠDestination , Ġend Destination : ĠDestination ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFlight Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġbundle Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ START _ POINT _ NAME Ġto Ġstart Destination . i ata , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ END _ POINT _ NAME Ġto Ġend Destination . i ata , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ START _ COORD IN ATE Ġto ĠLat Lng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Destination . location . latitude . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Destination . location . longitude . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ END _ COORD IN ATE Ġto ĠLat Lng ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Destination . location . latitude . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Destination . location . longitude . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ