diff --git a/app/src/main/java/com/speedyapps/keepyousafe/GpsTool.java b/app/src/main/java/com/speedyapps/keepyousafe/GpsTool.java new file mode 100644 index 0000000000000000000000000000000000000000..fb468c8491cbc6bfa90b90491418cb559b28060c --- /dev/null +++ b/app/src/main/java/com/speedyapps/keepyousafe/GpsTool.java @@ -0,0 +1,87 @@ +package com.speedyapps.keepyousafe; + +/** + * Created by SUBASH on 18-04-2017. + */ + +import android.content.Context; +import android.content.Intent; +import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; +import android.os.Bundle; +import android.provider.Settings; + +/** + * Created by pethoalpar on 4/13/2016. + */ +public class GpsTool { + + String locationProvider = LocationManager.GPS_PROVIDER; + private LocationManager locationManager; + private LocationListener locationListener; + + public GpsTool(Context context){ + locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + this.turnOnGps(context); + locationListener = new LocationListener() { + @Override + public void onLocationChanged(Location location) { + onGpsLocationChanged(location); + location.reset(); + } + + @Override + public void onStatusChanged(String provider, int status, Bundle extras) { + onGpsStatusChanged(provider, status, extras); + } + + @Override + public void onProviderEnabled(String provider) { + onGpsProviderEnabled(provider); + } + + @Override + public void onProviderDisabled(String provider) { + onGpsProviderDisabled(provider); + } + }; + startGpsUpdate(); + } + + public void onGpsLocationChanged(Location location) { + //Location change. + } + + public void onGpsStatusChanged(String provider, int status, Bundle extras) { + + } + + public void onGpsProviderEnabled(String provider) { + + } + + public void onGpsProviderDisabled(String provider) { + + } + + public Location getLocation(){ + return locationManager.getLastKnownLocation(locationProvider); + } + + public void startGpsUpdate(){ + locationManager.requestLocationUpdates(locationProvider, 1000, 0, locationListener); + } + + public void stopGpsUpdate(){ + locationManager.removeUpdates(locationListener); + } + + public void turnOnGps(Context context){ + boolean isEnabled = locationManager.isProviderEnabled(locationProvider); + if(!isEnabled){ + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + context.startActivity(intent); + } + } +}