package Ġcom . s yle im an . my foot prints . presentation Layer . activities . create And Edit . create Footprint Activity . fragments Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . location . Location Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . s yle im an . my foot prints . application Layer . services . geo Location Tracking . broadcast . Geo Location Receiver Ċ import Ġcom . s yle im an . my foot prints . application Layer . services . geo Location Tracking . broadcast . IG eo Location Channel Ċ import Ġcom . s yle im an . my foot prints . business Layer . foot prints Service . IF oot prints Service Ċ import Ġcom . s yle im an . my foot prints . business Layer . geo Location Service . IG eo Location Service Ċ import Ġcom . s yle im an . my foot prints . business Layer . sys Info Service . IS ystem Information Service Ċ import Ġcom . s yle im an . my foot prints . business Layer . sys Info Service . Internet Connection Statuses Ċ import Ġcom . s yle im an . my foot prints . business Layer . sys Info Service . System Information Service Ċ import Ġcom . s yle im an . my foot prints . model Layer . dto . Footprint Save Dto Ċ import Ġcom . s yle im an . my foot prints . presentation Layer . activities . create And Edit . common Fragments . photos Grid . Ch osen Photo Info Ċ import Ġjavax . inject . Inject Ċ Ċ /** ĠModel Ġfor Ġfoot print 's Ġcreation Ġ( shared Ġbetween Ġphoto Ġand Ġmap ) Ġ*/ Ċ class ĠCreate Step Fragment Model Ċ @ Inject Ċ constructor ( ĊĠĠĠ Ġprivate Ġval Ġgeo Location : ĠI Geo Location Service , ĊĠĠĠ Ġprivate Ġval Ġsys Info Ġ: ĠI System Information Service , ĊĠĠĠ Ġprivate Ġval Ġfoot prints Ġ: ĠIF oot prints Service ) Ċ { ĊĠĠĠ Ġprivate Ġvar Ġphoto Info : ĠCh osen Photo Info ? Ġ= Ġnull ĠĠĠĠĠĠĠĠ Ġ// ĠCh osen Ġphoto ĊĊĠĠĠ Ġvar Ġis Twitter On : ĠBoolean Ġ= Ġfalse ĠĠĠĠĠĠĠĠ Ġ// ĠIs ĠTwitter Ġbutton Ġturned Ġon ĊĊĠĠĠ Ġvar Ġis Inst agram On : ĠBoolean Ġ= Ġfalse ĠĠĠĠĠĠĠĠ Ġ// ĠIs ĠInst agram Ġbutton Ġturned Ġon ĊĊĠĠĠ Ġvar Ġis Save Button Enabled : ĠBoolean Ġ= Ġfalse ĠĠĠĠĠĠĠĠ Ġ// ĠIs ĠInst agram Ġbutton Ġturned Ġon ĊĊĠĠĠ Ġprivate Ġvar Ġis Internet Checked Ġ= Ġfalse ĠĠĠĠĠĠĠĠ Ġ// ĠInternet Ġconnection Ġwas Ġchecked ĊĊĠĠĠ Ġprivate Ġvar Ġfoot print Comment : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfoot print Location : ĠLat Lng ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** Ġ*/ ĊĠĠĠ Ġfun ĠgetCurrent Photo () Ġ: ĠCh osen Photo Info ? ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġphoto Info ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ*/ ĊĠĠĠ Ġfun ĠsetCurrent Photo ( photo Info : ĠCh osen Photo Info ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . photo Info Ġ= Ġphoto Info ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠCheck Ġis Ġinternet Ġconnection Ġis Ġestablished . ĠOnly Ġonce Ġto Ġavoid Ġuser 's Ġnegative Ġ Ġ*/ ĊĠĠĠ Ġval Ġis Internet Enabled : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Internet Checked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠSystem Information Service . get Internet Connection Status () Ġ!== ĠInternet Connection Statuses . None ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Internet Checked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMem or ize Ġcomment ĊĠĠĠĠ Ġ* Ġ@ param Ġsave Button State Callback Ġ- Ġtrue Ġ- ĠSave Ġbutton Ġenabled ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstore Comment ( comment : ĠString ?, Ġsave Button State Callback : ĠFunction 1 < Boolean , ĠUnit >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġfoot print Comment Ġ= Ġcomment ĊĠĠĠĠĠĠĠ Ġis Save Button Enabled Ġ= Ġ( comment ?. length Ġ?: Ġ 0 ) Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġsave Button State Callback . invoke ( is Save Button Enabled ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠStore Ġfoot print Ġlocation Ġ Ġ*/ ĊĠĠĠ Ġfun Ġstore Location ( location : ĠLat Lng ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġfoot print Location Ġ= Ġlocation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ Ġ*/ ĊĠĠĠ Ġval Ġlast Location : ĠLocation ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgeo Location . getLast Location () ĊĊĠĠĠ Ġ/** Ġ Ġ*/ ĊĠĠĠ Ġval Ġis Google Play Services Available : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsys Info . is Google Play Services Available () ĊĊĠĠĠ Ġ/** Ġ Ġ*/ ĊĠĠĠ Ġfun Ġget Locations Receiver ( channel : ĠI Geo Location Channel ): ĠGeo Location Receiver ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgeo Location . get Locations Receiver ( channel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġfoot print ĊĠĠĠĠ Ġ* Ġ@ param Ġresult Ġcallback Ġ( true Ġ- Ġsuccess ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Footprint ( context : ĠActivity , Ġmap Snapshot : ĠBitmap ?, Ġresult : ĠFunction 1 < Boolean , ĠUnit >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfoot print Ġ= ĠF oot print Save Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Info !!. photo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Info !!. is Photo From Camera , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoot print Comment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( foot print Location Ġ!= Ġnull ) Ġfoot print Location Ġelse Ġconvert Location ( geo Location . getLast Location ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Twitter On , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Inst agram On , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Snapshot ) ĊĊĠĠĠĠĠĠĠ Ġfoot prints . create Footprint ( context , Ġfoot print , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconvert Location ( location : ĠLocation ): ĠLat Lng Ġ= ĠLat Lng ( location . latitude , Ġlocation . longitude ) Ċ }