package Ġorg . bl itz ort ung . android . location . provider Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . location . Location Ċ import Ġandroid . util . Log Ċ import Ġorg . bl itz ort ung . android . app . Main Ċ import Ġorg . bl itz ort ung . android . app . view . Preference Key Ċ import Ġorg . bl itz ort ung . android . app . view . get And Convert Ċ import Ġorg . bl itz ort ung . android . location . Location Handler Ċ Ċ class ĠManual Location Provider ( location Update : Ġ( Location ?) Ġ-> ĠUnit , Ġprivate Ġval Ġshared Preferences : ĠSharedPreferences ) Ġ: ĠLocation Provider ( location Update ), ĠSharedPreferences . On Shared Preference ChangeListener Ġ{ ĊĠĠĠ Ġoverride Ġval Ġis Enabled : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġon Shared Preference Changed ( shared Preferences : ĠSharedPreferences , Ġkey : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Shared Preference Changed ( shared Preferences , ĠPreference Key . fromString ( key )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Shared Preference Changed ( shared Preferences : ĠSharedPreferences , Ġkey : ĠPreference Key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdouble Converter Ġ= Ġfun Ġ( x : ĠString ): ĠDouble ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġx . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( Main . LOG _ TAG , Ġ" bad Ġlongitude / latitude Ġnumber Ġformat Ġ'$ x '") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" NON _ EX HA UST IVE _ WHEN ") ĊĠĠĠĠĠĠĠ Ġwhen ( key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Key . LOCATION _ LONG IT UDE , ĠPreference Key . LOCATION _ LAT IT UDE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= ĠLocation ("") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . longitude Ġ= Ġshared Preferences . get And Convert ( Preference Key . LOCATION _ LONG IT UDE , Ġ" 1 1 . 0 ", Ġdouble Converter ) Ġ?: Ġ 1 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . latitude Ġ= Ġshared Preferences . get And Convert ( Preference Key . LOCATION _ LAT IT UDE , Ġ" 4 9 . 0 ", Ġdouble Converter ) Ġ?: Ġ 4 9 . 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Location Update ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠLocation Handler . MAN UAL _ PROVIDER ĊĊĠĠĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . start () ĊĊĠĠĠĠĠĠĠ Ġshared Preferences . register On Shared Preference ChangeListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġon Shared Preference Changed ( shared Preferences , ĠPreference Key . LOCATION _ LONG IT UDE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshutdown () Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Preferences . unregister On Shared Preference ChangeListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġsuper . shutdown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġre configure Provider ( isIn Background : ĠBoolean ) Ġ{ Ġ/* ĠNothing Ġto Ġdo Ġhere Ġ*/ Ġ} Ċ }