imhotep/MapKit — pull request #17 by everplays (2013-09-30 11:19:12+00:00)
Title: allow handling google 'Google Play services' verifications

without these changes applications will die unexpectedly when google play services is not available or is out dated. here's the error that I got without these changes:

```
W/GooglePlayServicesUtil( 9118): Google Play services out of date. Requires 3265100 but found 3158130
W/System.err( 9118): com.google.android.gms.common.GooglePlayServicesNotAvailableException
W/System.err( 9118):	at com.google.android.gms.maps.internal.p.k(Unknown Source)
W/System.err( 9118):	at com.google.android.gms.maps.internal.p.i(Unknown Source)
W/System.err( 9118):	at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source)
W/System.err( 9118):	at com.phonegap.plugins.mapkit.MapKit$1.run(MapKit.java:65)
W/System.err( 9118):	at android.os.Handler.handleCallback(Handler.java:730)
W/System.err( 9118):	at android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err( 9118):	at android.os.Looper.loop(Looper.java:137)
W/System.err( 9118):	at android.app.ActivityThread.main(ActivityThread.java:5103)
W/System.err( 9118):	at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 9118):	at java.lang.reflect.Method.invoke(Method.java:525)
W/System.err( 9118):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
W/System.err( 9118):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/System.err( 9118):	at dalvik.system.NativeStart.main(Native Method)
W/GooglePlayServicesUtil( 9118): Google Play services out of date. Requires 3265100 but found 3158130
W/GooglePlayServicesUtil( 9118): Google Play services out of date. Requires 3265100 but found 3158130
W/GooglePlayServicesUtil( 9118): Google Play services out of date. Requires 3265100 but found 3158130
W/GooglePlayServicesUtil( 9118): Google Play services out of date. Requires 3265100 but found 3158130
D/AndroidRuntime( 9118): Shutting down VM
W/dalvikvm( 9118): threadid=1: thread exiting with uncaught exception (group=0x41d33700)
E/AndroidRuntime( 9118): FATAL EXCEPTION: main
E/AndroidRuntime( 9118): java.lang.NullPointerException: CameraUpdateFactory is not initialized
E/AndroidRuntime( 9118):	at com.google.android.gms.internal.s.b(Unknown Source)
E/AndroidRuntime( 9118):	at com.google.android.gms.maps.CameraUpdateFactory.aX(Unknown Source)
E/AndroidRuntime( 9118):	at com.google.android.gms.maps.CameraUpdateFactory.newLatLngZoom(Unknown Source)
E/AndroidRuntime( 9118):	at com.phonegap.plugins.mapkit.MapKit$1.run(MapKit.java:89)
E/AndroidRuntime( 9118):	at android.os.Handler.handleCallback(Handler.java:730)
E/AndroidRuntime( 9118):	at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 9118):	at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 9118):	at android.app.ActivityThread.main(ActivityThread.java:5103)
E/AndroidRuntime( 9118):	at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 9118):	at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime( 9118):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
E/AndroidRuntime( 9118):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime( 9118):	at dalvik.system.NativeStart.main(Native Method)
```

with this pull request, first we ask user to update/install google play servies and if didn't, error callback will be called, so developer can take proper action instead of unexpected exit of app.