Merge branch '67-read-geo-information' into 'master'
Resolve "Read geo-information" Closes #67 See merge request marcel.schwarz/2020ss-qbc-geofence-timetracking!42
This commit is contained in:
commit
3dd71a11eb
@ -37,6 +37,7 @@ dependencies {
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.2.0-alpha06'
|
||||
implementation "com.google.android.gms:play-services-location:17.0.0"
|
||||
implementation 'androidx.preference:preference:1.1.1'
|
||||
testImplementation 'junit:junit:4.13'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
|
@ -3,6 +3,10 @@
|
||||
package="de.hft.geotracker">
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
|
||||
<!-- Required if your app targets Android 10 (API level 29) or higher -->
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
|
@ -1,9 +1,13 @@
|
||||
package de.hft.geotracker
|
||||
|
||||
import android.Manifest.permission.ACCESS_FINE_LOCATION
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.location.Location
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import android.os.Looper
|
||||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
@ -11,20 +15,46 @@ import android.view.Window
|
||||
import android.widget.ArrayAdapter
|
||||
import android.widget.AutoCompleteTextView
|
||||
import android.widget.Spinner
|
||||
import android.widget.TextView
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.app.ActivityCompat.requestPermissions
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.navigation.ui.NavigationUI
|
||||
import com.google.android.gms.location.*
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
import java.util.jar.Manifest
|
||||
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
lateinit var fusedLocationClient : FusedLocationProviderClient
|
||||
lateinit var locationRequest : LocationRequest
|
||||
lateinit var locationCallback: LocationCallback
|
||||
lateinit var actionButton : TextView
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
setSupportActionBar(findViewById(R.id.my_toolbar))
|
||||
setContentView(R.layout.activity_home)
|
||||
|
||||
// val builder = LocationSettingsRequest.Builder().addLocationRequest(locationRequest)
|
||||
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
|
||||
for (location in locationResult.locations){
|
||||
// Update UI with location data
|
||||
findViewById<TextView>(R.id.latitude).text = location.latitude.toString()
|
||||
findViewById<TextView>(R.id.longitude).text = location.longitude.toString()
|
||||
findViewById<TextView>(R.id.altitude).text = location.altitude.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
// val binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
|
||||
// val navController = this.findNavController(R.id.HostFragment)
|
||||
// NavigationUI.setupActionBarWithNavController(this, navController)
|
||||
@ -49,8 +79,43 @@ class MainActivity : AppCompatActivity() {
|
||||
// Apply the adapter to the spinner
|
||||
spinner.adapter = adapter
|
||||
}
|
||||
actionButton = findViewById(R.id.button_start_stop)
|
||||
actionButton.setOnClickListener {
|
||||
callStartStop()
|
||||
}
|
||||
}
|
||||
|
||||
private fun callStartStop() {
|
||||
println("StartStop pressed")
|
||||
fusedLocationClient.lastLocation
|
||||
.addOnSuccessListener { location : Location? ->
|
||||
if (location != null) {
|
||||
var label = findViewById<TextView>(R.id.display_acc)
|
||||
label.text = location.latitude.toString()
|
||||
|
||||
} else {
|
||||
println("Location = null")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
startLocationUpdates()
|
||||
}
|
||||
|
||||
private fun startLocationUpdates() {
|
||||
fusedLocationClient.requestLocationUpdates(locationRequest,
|
||||
locationCallback,
|
||||
Looper.getMainLooper())
|
||||
}
|
||||
fun createLocationRequest() {
|
||||
locationRequest = LocationRequest.create().apply {
|
||||
interval = 10000
|
||||
fastestInterval = 5000
|
||||
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
|
||||
}
|
||||
}
|
||||
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
|
||||
R.id.settings -> {
|
||||
// User chose the "Settings" item, show the app settings UI...
|
||||
|
@ -83,9 +83,42 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/my_toolbar" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/altitude"
|
||||
style="@style/text_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="dummy"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/longitude" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/latitude"
|
||||
style="@style/text_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="dummy"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/display_acc" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/longitude"
|
||||
style="@style/text_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="dummy"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/latitude" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue
Block a user