Advertisement
Guest User

LocationService.kt

a guest
Jun 17th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 8.65 KB | None | 0 0
  1. package com.comtrade.aicapone.Services
  2.  
  3. import android.app.Service
  4. import android.content.Context
  5. import android.content.Intent
  6. import android.content.res.Resources
  7. import android.location.Location
  8. import android.location.LocationManager
  9. import android.os.Bundle
  10. import android.support.v4.app.ActivityCompat
  11. import android.util.Log
  12. import com.comtrade.aicapone.Models.Job
  13. import com.comtrade.aicapone.Models.User
  14. import com.comtrade.aicapone.R
  15. import com.google.android.gms.common.api.GoogleApiClient
  16. import com.google.android.gms.maps.GoogleMap
  17. import android.os.IBinder
  18. import android.widget.Toast
  19. import com.comtrade.aicapone.Models.Coordinate
  20. import com.squareup.okhttp.Request
  21. import retrofit2.Call
  22. import retrofit2.Callback
  23. import retrofit2.Response
  24.  
  25.  
  26. class LocationService() : Service(){
  27.  
  28.     private var mLocationManager: LocationManager? = null
  29.  
  30.  
  31.     var mLocationListeners = arrayOf(LocationListener(LocationManager.GPS_PROVIDER), LocationListener(LocationManager.NETWORK_PROVIDER))
  32.  
  33.     class LocationListener(provider: String) : android.location.LocationListener {
  34.         internal var mLastLocation: Location
  35.         private var userID:Long?=null
  36.         private var token:String?=null
  37.         private var mJobService:JobService?=null
  38.         private var coordinate: Coordinate?=null
  39.  
  40.  
  41.  
  42.  
  43.         init {
  44.             Log.e(TAG, "LocationListener $provider")
  45.             Log.d("Redosled izvrsavanja","INIT")
  46.             mLastLocation = Location(provider)
  47.  
  48.         }
  49.  
  50.         override fun onLocationChanged(location: Location) {
  51.  
  52.             mJobService = JobService("http://10.0.2.2:52994/api/")
  53.  
  54.  
  55.             Log.d("Redosled izvrsavanja","onLocationChanged")
  56.             mLastLocation.set(location)
  57. //            coordinate?.lat=mLastLocation.latitude
  58. //            coordinate?.lng=mLastLocation.longitude
  59.             coordinate = Coordinate(mLastLocation.latitude,mLastLocation.longitude)
  60.             Log.d("mLastLocation","Koordinate: "+mLastLocation.latitude+", "+mLastLocation.longitude)
  61.             Log.d("Location coos","LAT: "+location.latitude+" LONG: "+location.longitude)
  62. //            coordinates?.lat = location.latitude
  63. //            coordinates?.lng = location.longitude
  64.  
  65.             Log.d("Location coos","LAT: "+location.latitude+" LONG: "+location.longitude)
  66.  
  67.             Log.d("OnLOcationChangedDebug","userID: "+LocationService.Companion.getUserID()+" lat: "+coordinate?.lat+" long: "+coordinate?.lng)
  68.             mJobService?.updateJobsLocation(coordinate!!,LocationService.Companion.getUserID(), LocationService.Companion.getToken())?.enqueue(object : Callback<Job> {
  69.  
  70.                 //override fun onRequest
  71.                 override fun onFailure(call: Call<Job>?, t: Throwable?) {
  72.                     Log.d("retrofit failure", "message " + t!!.message)
  73. //                    Toast.makeText(applicationContext, "Something went wrong. Please, try again." , Toast.LENGTH_SHORT).show()
  74.                 }
  75.                 override fun onResponse(call: Call<Job>?, response: Response<Job>?) {
  76.                     if(response!=null) {
  77.                         Log.d("retrofit response", response.toString())
  78.                         if(response.isSuccessful) {
  79. //                            Toast.makeText(applicationContext, "Job taken", Toast.LENGTH_LONG).show()
  80.                         }
  81.                         else{
  82.                             Log.d("retrofit response", "Job update failed")
  83.                         }
  84.                     }
  85.                 }
  86.             })
  87.             Log.v("LastLocation", mLastLocation.latitude.toString() +"  " + mLastLocation.longitude.toString())
  88. //            Log.v("Rez testa",LocationService.Companion.getString())
  89.             //Log.d("Intent params","userID: "+this.)
  90.         }
  91.  
  92.         override fun onProviderDisabled(provider: String) {
  93.             Log.e(TAG, "onProviderDisabled: $provider")
  94.         }
  95.  
  96.         override fun onProviderEnabled(provider: String) {
  97.             Log.e(TAG, "onProviderEnabled: $provider")
  98.         }
  99.  
  100.         override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {
  101.             Log.e(TAG, "onStatusChanged: $provider")
  102.         }
  103.     }
  104.  
  105.     override fun onBind(arg0: Intent): IBinder? {
  106.         Log.d("Redosled izvrsavanja","onBind")
  107.         return null
  108.     }
  109.  
  110.     override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
  111.         Log.e(TAG, "onStartCommand")
  112.         super.onStartCommand(intent, flags, startId)
  113.         Log.d("Redosled izvrsavanja","onStartCommand")
  114.         LocationService.Companion.setParams(intent?.extras?.get("userID") as Long, intent?.extras?.get("token") as String)
  115.         Log.d("USERID DEBUG","userID: "+LocationService.Companion.getUserID()+" ONSTARTCMD")
  116.         return Service.START_STICKY
  117.     }
  118.  
  119.     override fun onCreate() {
  120.         Log.e(TAG, "onCreate")
  121.         initializeLocationManager()
  122. //        LocationService.Companion.setString("TEST MORA BITI USPESAN!")
  123.         //Log.d("INTENT SRANJA","userID:"+this.userID+" token:"+this.token+" onCreate")
  124.         Log.d("Redosled izvrsavanja","onCreate")
  125.        // Log.d("USERID DEBUG","userID: "+LocationService.Companion.getUserID())
  126.  
  127.         try {
  128.             mLocationManager!!.requestLocationUpdates(
  129.                     LocationManager.NETWORK_PROVIDER, LOCATION_INTERVAL.toLong(), LOCATION_DISTANCE,
  130.                     mLocationListeners[1])
  131.         } catch (ex: java.lang.SecurityException) {
  132.             Log.i(TAG, "fail to request location update, ignore", ex)
  133.         } catch (ex: IllegalArgumentException) {
  134.             Log.d(TAG, "network provider does not exist, " + ex.message)
  135.         }
  136.  
  137.         try {
  138.             mLocationManager!!.requestLocationUpdates(
  139.                     LocationManager.GPS_PROVIDER, LOCATION_INTERVAL.toLong(), LOCATION_DISTANCE,
  140.                     mLocationListeners[0])
  141.         } catch (ex: java.lang.SecurityException) {
  142.             Log.i(TAG, "fail to request location update, ignore", ex)
  143.         } catch (ex: IllegalArgumentException) {
  144.             Log.d(TAG, "gps provider does not exist " + ex.message)
  145.         }
  146.  
  147.     }
  148.  
  149.     override fun onDestroy() {
  150.         Log.e(TAG, "onDestroy")
  151.         super.onDestroy()
  152.         if (mLocationManager != null) {
  153.             for (i in mLocationListeners.indices) {
  154.                 try {
  155.                     mLocationManager!!.removeUpdates(mLocationListeners[i])
  156.                 } catch (ex: Exception) {
  157.                     Log.i(TAG, "fail to remove location listners, ignore", ex)
  158.                 }
  159.  
  160.             }
  161.         }
  162.     }
  163.  
  164.     private fun initializeLocationManager() {
  165.         Log.e(TAG, "initializeLocationManager")
  166.         if (mLocationManager == null) {
  167.             Log.d("Redosled izvrsavanja","initializeLocationManager")
  168.             mLocationManager = applicationContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager
  169. //            mJobService? = JobService("http://10.0.2.2:52994/api/")
  170.  
  171.         }
  172.     }
  173.  
  174.     companion object {
  175.         private val TAG = "BOOMBOOMTESTGPS"
  176.         private val LOCATION_INTERVAL = 10000
  177.         private val LOCATION_DISTANCE = 0f
  178.  
  179.         private var userID: Long ?= null
  180.         private var token: String?= null
  181.         fun setParams(userID: Long,token: String)
  182.         {
  183.             this.userID = userID
  184.             this.token = token
  185.         }
  186.         fun getUserID():Long {return this.userID!!
  187.         }
  188.         fun getToken():String {return this.token!!
  189.         }
  190.  
  191.         private lateinit var strproba:String
  192.     }
  193.  
  194. }
  195.  
  196. //class LocationService(token: String?, user: User) : Runnable{
  197. //
  198. //    override fun run(){
  199. //        var jobService = JobService("http://10.0.2.2:52994/api/")
  200. //        jobService!!.updateJobsLocation(user?.id,lastLocation.latitude,lastLocation.longitude, token).enqueue(object : Callback<Job> {
  201. //            override fun onFailure(call: Call<Job>?, t: Throwable?) {
  202. //                Log.d("retrofit failure", "message " + t!!.message)
  203. //                //Toast.makeText(applicationContext, "Something went wrong. Please, try again." , Toast.LENGTH_SHORT).show()
  204. //            }
  205. //            override fun onResponse(call: Call<Job>?, response: Response<Job>?) {
  206. //                if(response!=null) {
  207. //                    Log.d("retrofit response", response.toString())
  208. //                    if(response.isSuccessful) {
  209. //                        //Toast.makeText(applicationContext, "Job taken", Toast.LENGTH_LONG).show()
  210. //                    }
  211. //                    else{
  212. //                        Log.d("retrofit response", "Job update failed")
  213. //                    }
  214. //                }
  215. //            }
  216. //        })
  217. //    }
  218. //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement