@@ -45,7 +45,9 @@ public IBinder onBind(Intent arg0) {
@ Override
public void onCreate () {
Log .v (EventsManager .LOG , "EventsService create" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "EventsService create" );
}
super .onCreate ();
Thread .setDefaultUncaughtExceptionHandler (new ExceptionHandler (this ));
@@ -57,15 +59,19 @@ public void onCreate() {
@ Override
public void onStart (Intent intent , int startId ) {
Log .v (EventsManager .LOG , "EventsService start" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "EventsService start" );
}
super .onStart (intent , startId );
Bundle extras =intent .getExtras ();
if (extras != null ) {
m_authToken = extras .getString (EventsManager .AUTH_TOKEN );
}
if (m_authToken == null ) {
Log .v (EventsManager .LOG , "problem with extracting data" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "problem with extracting data" );
}
broadcastError ("Failed to start tracking" );
stopSelf ();
return ;
@@ -76,7 +82,9 @@ public void onStart(Intent intent, int startId) {
@ Override
public void onDestroy () {
Log .v (EventsManager .LOG , "EventsService destroy" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "EventsService destroy" );
}
super .onDestroy ();
stopEventsTread ();
unregisterReceiver (m_internalReceiver );
@@ -99,10 +107,14 @@ public void run() {
while (!Thread .currentThread ().isInterrupted ()){
Location location = LocationService .getLocation (EventsService .this );
if (location == null ) {
Log .v (EventsManager .LOG , "can't get location" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "can't get location" );
}
} else {
Log .v (EventsManager .LOG , "coords: " + location .getLatitude ()
+ ", " + location .getLongitude ());
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "coords: " + location .getLatitude ()
+ ", " + location .getLongitude ());
}
requestEvents (location );
}
@@ -141,7 +153,9 @@ private void requestEvents(Location location) {
if (JSONResponse != null ) {
int errno = JsonFilterResponse .parseErrno (JSONResponse );
if (errno == IResponse .geo2tagError .SUCCESS .ordinal ()) {
Log .v (EventsManager .LOG , "Events received successfully" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "Events received successfully" );
}
JsonFilterResponse response = new JsonFilterResponse ();
response .parseJson (JSONResponse );
List <Channel > channels = response .getChannelsData ();
@@ -179,20 +193,28 @@ public void run() {
return ;
}
} else {
Log .v (EventsManager .LOG , "response failed" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "response failed" );
}
broadcastError ("Failed to send location" );
return ;
}
}
private void handleError (int errno ) {
if (errno < 0 ) {
Log .v (EventsManager .LOG , "bad response received" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "bad response received" );
}
} else if (errno >= IResponse .geo2tagError .values ().length ) {
Log .v (EventsManager .LOG , "unknown error" );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "unknown error" );
}
} else if (errno > 0 ) {
String error = IResponse .geo2tagError .values ()[errno ].name ();
Log .v (EventsManager .LOG , "error: " + error );
if (IGDSSettings .DEBUG ) {
Log .v (EventsManager .LOG , "error: " + error );
}
}
broadcastError ("Failed to send location" );
}