Bug fix
This commit is contained in:
parent
08b996308f
commit
73187542cd
@ -1,13 +1,20 @@
|
|||||||
package de.hft.geotracker.activities
|
package de.hft.geotracker.activities
|
||||||
|
|
||||||
|
import android.Manifest.permission.ACCESS_FINE_LOCATION
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
|
import android.location.Location
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.os.Looper
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.core.app.ActivityCompat
|
||||||
|
import androidx.core.app.ActivityCompat.requestPermissions
|
||||||
|
import com.google.android.gms.location.*
|
||||||
import com.google.android.gms.location.Geofence
|
import com.google.android.gms.location.Geofence
|
||||||
import com.google.android.gms.location.GeofencingClient
|
import com.google.android.gms.location.GeofencingClient
|
||||||
import com.google.android.gms.location.GeofencingRequest
|
import com.google.android.gms.location.GeofencingRequest
|
||||||
@ -26,6 +33,8 @@ import retrofit2.Retrofit
|
|||||||
import retrofit2.converter.gson.GsonConverterFactory
|
import retrofit2.converter.gson.GsonConverterFactory
|
||||||
import java.io.BufferedReader
|
import java.io.BufferedReader
|
||||||
import java.io.InputStreamReader
|
import java.io.InputStreamReader
|
||||||
|
import java.lang.StringBuilder
|
||||||
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
@ -34,12 +43,29 @@ class MainActivity : AppCompatActivity() {
|
|||||||
lateinit var actionButton: TextView
|
lateinit var actionButton: TextView
|
||||||
var running = false
|
var running = false
|
||||||
lateinit var service: GeofenceService
|
lateinit var service: GeofenceService
|
||||||
|
lateinit var locationRequest: LocationRequest
|
||||||
|
lateinit var fusedLocationClient: FusedLocationProviderClient
|
||||||
|
lateinit var locationCallback: LocationCallback
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
setContentView(R.layout.activity_home)
|
setContentView(R.layout.activity_home)
|
||||||
|
|
||||||
|
//Get location data and permissions
|
||||||
|
createLocationRequest()
|
||||||
|
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
|
||||||
|
if (ActivityCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) !=
|
||||||
|
PackageManager.PERMISSION_GRANTED
|
||||||
|
) {
|
||||||
|
requestPermissions(this, arrayOf(ACCESS_FINE_LOCATION), 1000)
|
||||||
|
}
|
||||||
|
locationCallback = object : LocationCallback() {
|
||||||
|
override fun onLocationResult(locationResult: LocationResult?) {
|
||||||
|
locationResult ?: return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//React on geofence state
|
||||||
this.getSharedPreferences("LOCATION", Context.MODE_PRIVATE)
|
this.getSharedPreferences("LOCATION", Context.MODE_PRIVATE)
|
||||||
?.edit()
|
?.edit()
|
||||||
?.putBoolean("ENABLED", false)
|
?.putBoolean("ENABLED", false)
|
||||||
@ -172,6 +198,26 @@ class MainActivity : AppCompatActivity() {
|
|||||||
PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
startLocationUpdates()
|
||||||
|
}
|
||||||
|
private fun startLocationUpdates() {
|
||||||
|
fusedLocationClient.requestLocationUpdates(
|
||||||
|
locationRequest,
|
||||||
|
locationCallback,
|
||||||
|
Looper.getMainLooper()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun createLocationRequest() {
|
||||||
|
locationRequest = LocationRequest.create().apply {
|
||||||
|
interval = 10000
|
||||||
|
fastestInterval = 5000
|
||||||
|
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user