1+ package com.velmurugan.updatelivelocation
2+
3+ import android.Manifest
4+ import android.annotation.SuppressLint
5+ import android.content.Context
6+ import android.content.pm.PackageManager
7+ import android.location.Location
8+ import android.location.LocationListener
9+ import android.location.LocationManager
10+ import android.os.Bundle
11+ import androidx.core.app.ActivityCompat
12+
13+ class LocationHelper {
14+ var LOCATION_REFRESH_TIME = 3000 // 3 seconds. The Minimum Time to get location update
15+ var LOCATION_REFRESH_DISTANCE =
16+ 0 // 0 meters. The Minimum Distance to be changed to get location update
17+
18+ @SuppressLint(" MissingPermission" )
19+ fun startListeningUserLocation (context : Context , myListener : MyLocationListener ) {
20+ val mLocationManager = context.getSystemService(Context .LOCATION_SERVICE ) as LocationManager
21+ val locationListener: LocationListener = object : LocationListener {
22+ override fun onLocationChanged (location : Location ) {
23+ myListener.onLocationChanged(location) // calling listener to inform that updated location is available
24+ }
25+
26+ override fun onProviderEnabled (provider : String ) {}
27+ override fun onProviderDisabled (provider : String ) {}
28+ override fun onStatusChanged (provider : String , status : Int , extras : Bundle ) {}
29+ }
30+ mLocationManager.requestLocationUpdates(
31+ LocationManager .GPS_PROVIDER ,
32+ LOCATION_REFRESH_TIME .toLong(),
33+ LOCATION_REFRESH_DISTANCE .toFloat(),
34+ locationListener
35+ )
36+ }
37+ }
38+
39+ interface MyLocationListener {
40+ fun onLocationChanged (location : Location ? )
41+ }
0 commit comments