Update version and fix issue to show only accounts belonging to the user
This commit is contained in:
parent
b0759a64b7
commit
c11d57de2e
25
android/.idea/jarRepositories.xml
generated
Normal file
25
android/.idea/jarRepositories.xml
generated
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Maven Central repository" />
|
||||||
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="jboss.community" />
|
||||||
|
<option name="name" value="JBoss Community repository" />
|
||||||
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="BintrayJCenter" />
|
||||||
|
<option name="name" value="BintrayJCenter" />
|
||||||
|
<option name="url" value="https://jcenter.bintray.com/" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="Google" />
|
||||||
|
<option name="name" value="Google" />
|
||||||
|
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
|
||||||
|
</remote-repository>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -1,5 +1,7 @@
|
|||||||
package de.hft.geotracker.activities
|
package de.hft.geotracker.activities
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
|
import android.Manifest.permission.ACCESS_COARSE_LOCATION
|
||||||
import android.Manifest.permission.ACCESS_FINE_LOCATION
|
import android.Manifest.permission.ACCESS_FINE_LOCATION
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@ -34,6 +36,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
lateinit var actionButton: TextView
|
lateinit var actionButton: TextView
|
||||||
var running = false
|
var running = false
|
||||||
var accName: String? = null
|
var accName: String? = null
|
||||||
|
var username: String? = null
|
||||||
lateinit var accounts: ValuesTimetrackAccounts
|
lateinit var accounts: ValuesTimetrackAccounts
|
||||||
lateinit var service: GeofenceService
|
lateinit var service: GeofenceService
|
||||||
lateinit var locationRequest: LocationRequest
|
lateinit var locationRequest: LocationRequest
|
||||||
@ -104,9 +107,9 @@ class MainActivity : AppCompatActivity() {
|
|||||||
showUsername()
|
showUsername()
|
||||||
|
|
||||||
//Get Timetrack Accounts
|
//Get Timetrack Accounts
|
||||||
val accountNames = mutableListOf<String>()
|
/*val accountNames = mutableListOf<String>()
|
||||||
// accountNames.add("None")
|
// accountNames.add("None")
|
||||||
val call = service.getAccounts()
|
val call = service.getAccounts(username!!)
|
||||||
call.enqueue(object: Callback<EmbeddedAccounts> {
|
call.enqueue(object: Callback<EmbeddedAccounts> {
|
||||||
override fun onResponse(
|
override fun onResponse(
|
||||||
call: Call<EmbeddedAccounts>,
|
call: Call<EmbeddedAccounts>,
|
||||||
@ -126,7 +129,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
Toast.makeText(this@MainActivity, "You dont have any Timetrack Accounts ", Toast.LENGTH_LONG)
|
Toast.makeText(this@MainActivity, "You dont have any Timetrack Accounts ", Toast.LENGTH_LONG)
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
})
|
})*/
|
||||||
|
|
||||||
actionButton = findViewById(R.id.button_start_stop)
|
actionButton = findViewById(R.id.button_start_stop)
|
||||||
actionButton.setOnClickListener {
|
actionButton.setOnClickListener {
|
||||||
@ -170,9 +173,10 @@ class MainActivity : AppCompatActivity() {
|
|||||||
println("Problem at start tracking: " + t.message)
|
println("Problem at start tracking: " + t.message)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
println("Accounts list is emty")
|
||||||
}
|
}
|
||||||
println("StartStop pressed: $running")
|
println("StartStop pressed: $running")
|
||||||
//ToDO call /track Endpoint
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showUsername() {
|
private fun showUsername() {
|
||||||
@ -182,13 +186,22 @@ class MainActivity : AppCompatActivity() {
|
|||||||
if (response.isSuccessful) {
|
if (response.isSuccessful) {
|
||||||
val firstname = response.body()?.firstname
|
val firstname = response.body()?.firstname
|
||||||
val location = response.body()?.location
|
val location = response.body()?.location
|
||||||
|
username = response.body()?.username
|
||||||
|
getTimetrackAccounts(username!!)
|
||||||
|
/* println("Username response: " + response.body()?.username)
|
||||||
|
if (!username.equals(null)) {
|
||||||
|
getTimetrackAccounts(username!!)
|
||||||
|
println("Your name: $username")
|
||||||
|
} else {
|
||||||
|
Toast.makeText(this@MainActivity, "Not able to read your username", Toast.LENGTH_LONG)
|
||||||
|
.show()
|
||||||
|
}*/
|
||||||
lbl_username.text = "Hello " + firstname
|
lbl_username.text = "Hello " + firstname
|
||||||
println("Body: " + firstname)
|
|
||||||
if (location?.latitude == null) {
|
if (location?.latitude == null) {
|
||||||
Toast.makeText(this@MainActivity, "No geofence set for you", Toast.LENGTH_LONG)
|
Toast.makeText(this@MainActivity, "No geofence set for you", Toast.LENGTH_LONG)
|
||||||
.show()
|
.show()
|
||||||
} else {
|
} else {
|
||||||
initializeGeofence(location?.latitude, location?.longitude, location?.radius)
|
initializeGeofence(location.latitude, location.longitude, location.radius)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
println("Response not successful: ${response.code()}")
|
println("Response not successful: ${response.code()}")
|
||||||
@ -199,6 +212,35 @@ class MainActivity : AppCompatActivity() {
|
|||||||
println("Response 'whoami' failed. " + t.message)
|
println("Response 'whoami' failed. " + t.message)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
private fun getTimetrackAccounts(user: String) {
|
||||||
|
val accountNames = mutableListOf<String>()
|
||||||
|
// accountNames.add("None")
|
||||||
|
val call = service.getAccounts(username!!)
|
||||||
|
call.enqueue(object: Callback<EmbeddedAccounts> {
|
||||||
|
override fun onResponse(
|
||||||
|
call: Call<EmbeddedAccounts>,
|
||||||
|
response: Response<EmbeddedAccounts>
|
||||||
|
) {
|
||||||
|
if (response.isSuccessful) {
|
||||||
|
accounts = response.body()!!.accounts
|
||||||
|
accounts.entries.forEach {
|
||||||
|
accountNames.add(it.name + "")
|
||||||
|
}
|
||||||
|
initializeDropdown(accountNames)
|
||||||
|
println("Dropdown initialized")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
override fun onFailure(call: Call<EmbeddedAccounts>, t: Throwable) {
|
||||||
|
accountNames.add("None")
|
||||||
|
initializeDropdown(accountNames)
|
||||||
|
Toast.makeText(this@MainActivity, "You dont have any Timetrack Accounts ", Toast.LENGTH_LONG)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
private fun initializeDropdown(accountNames: MutableList<String>) {
|
private fun initializeDropdown(accountNames: MutableList<String>) {
|
||||||
val spinner: Spinner = findViewById(R.id.account_spinner)
|
val spinner: Spinner = findViewById(R.id.account_spinner)
|
||||||
@ -237,6 +279,13 @@ class MainActivity : AppCompatActivity() {
|
|||||||
.setExpirationDuration(Geofence.NEVER_EXPIRE)
|
.setExpirationDuration(Geofence.NEVER_EXPIRE)
|
||||||
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER or Geofence.GEOFENCE_TRANSITION_EXIT)
|
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER or Geofence.GEOFENCE_TRANSITION_EXIT)
|
||||||
.build()
|
.build()
|
||||||
|
if (ActivityCompat.checkSelfPermission(
|
||||||
|
this,
|
||||||
|
ACCESS_FINE_LOCATION
|
||||||
|
) != PackageManager.PERMISSION_GRANTED
|
||||||
|
) {
|
||||||
|
requestPermissions(this, arrayOf(ACCESS_FINE_LOCATION), 1000)
|
||||||
|
}
|
||||||
geofencingClient.addGeofences(getGeofencingRequest(), geofencePendingIntent)?.run {
|
geofencingClient.addGeofences(getGeofencingRequest(), geofencePendingIntent)?.run {
|
||||||
addOnSuccessListener {
|
addOnSuccessListener {
|
||||||
println("Geofence added with: latitude: $lat longitude: $long radius: $rad")
|
println("Geofence added with: latitude: $lat longitude: $long radius: $rad")
|
||||||
@ -266,6 +315,16 @@ class MainActivity : AppCompatActivity() {
|
|||||||
startLocationUpdates()
|
startLocationUpdates()
|
||||||
}
|
}
|
||||||
private fun startLocationUpdates() {
|
private fun startLocationUpdates() {
|
||||||
|
if (ActivityCompat.checkSelfPermission(
|
||||||
|
this,
|
||||||
|
ACCESS_FINE_LOCATION
|
||||||
|
) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
|
||||||
|
this,
|
||||||
|
Manifest.permission.ACCESS_COARSE_LOCATION
|
||||||
|
) != PackageManager.PERMISSION_GRANTED
|
||||||
|
) {
|
||||||
|
requestPermissions(this, arrayOf(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION), 1000)
|
||||||
|
}
|
||||||
fusedLocationClient.requestLocationUpdates(
|
fusedLocationClient.requestLocationUpdates(
|
||||||
locationRequest,
|
locationRequest,
|
||||||
locationCallback,
|
locationCallback,
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
package de.hft.geotracker.retrofit
|
package de.hft.geotracker.retrofit
|
||||||
|
|
||||||
import retrofit2.Call
|
import retrofit2.Call
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.*
|
||||||
import retrofit2.http.GET
|
|
||||||
import retrofit2.http.POST
|
|
||||||
import retrofit2.http.Query
|
|
||||||
|
|
||||||
interface GeofenceService {
|
interface GeofenceService {
|
||||||
@POST("/login")
|
@POST("/login")
|
||||||
@ -13,8 +10,8 @@ interface GeofenceService {
|
|||||||
@GET("whoami")
|
@GET("whoami")
|
||||||
fun getUser(): Call<ValuesUser>
|
fun getUser(): Call<ValuesUser>
|
||||||
|
|
||||||
@GET("accounts")
|
@GET("accounts/search/findByUsername")
|
||||||
fun getAccounts(): Call<EmbeddedAccounts>
|
fun getAccounts(@Query("username") username : String): Call<EmbeddedAccounts>
|
||||||
|
|
||||||
@GET("track")
|
@GET("track")
|
||||||
fun triggerTracking(@Query("account") account: String): Call<ValuesTracking>
|
fun triggerTracking(@Query("account") account: String): Call<ValuesTracking>
|
||||||
|
@ -8,7 +8,7 @@ buildscript {
|
|||||||
|
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.6.3'
|
classpath 'com.android.tools.build:gradle:4.0.0'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#Sun Apr 05 19:25:41 CEST 2020
|
#Tue Jun 02 21:02:45 CEST 2020
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
|
||||||
|
Loading…
Reference in New Issue
Block a user