package com.nexchanges.hailyo.gcm;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Looper;
import android.util.Log;
import com.nexchanges.hailyo.MyApplication;
import com.nexchanges.hailyo.apiSupport.SendLocationUpdate;
import com.nexchanges.hailyo.model.SharedPrefs;
/**
* Created by TP on 06/08/15.
*/
public class LocationServices extends Service {
LocationManager lm;
Thread triggerService;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
addLocationListener();
}
private void addLocationListener()
{
triggerService = new Thread(new Runnable(){
public void run(){
try{
Looper.prepare();//Initialise the current thread as a looper.
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria c = new Criteria();
c.setAccuracy(Criteria.ACCURACY_COARSE);
final String PROVIDER = lm.getBestProvider(c, true);
MyLocationListener myLocationListener = new MyLocationListener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 180000, 150, myLocationListener);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,180000,150
,myLocationListener);
Log.d("LOC_SERVICE", "Service RUNNING!");
Looper.loop();
}catch(Exception ex){
ex.printStackTrace();
}
}
}, "LocationThread");
triggerService.start();
}
class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location location)
{
updateLocation(location);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
}
public void updateLocation(Location location)
{
Context appCtx = getApplicationContext();
double latitude, longitude;
latitude = location.getLatitude();
longitude = location.getLongitude();
String Str_lat = String.valueOf(latitude);
String Str_lon = String.valueOf(longitude);
SharedPrefs.save(appCtx, SharedPrefs.MY_CUR_LAT, Str_lat);
SharedPrefs.save(appCtx, SharedPrefs.MY_CUR_LNG, Str_lon);
String user_id = SharedPrefs.getString(appCtx,SharedPrefs.MY_USER_ID);
String user_role = SharedPrefs.getString(appCtx,SharedPrefs.MY_ROLE_KEY);
SendLocationUpdate sendLocationUpdate = new SendLocationUpdate();
sendLocationUpdate.sendPostRequest(user_id, Str_lat, Str_lon, user_role);
}
}