diff --git a/android/app/src/main/java/de/hft/geotracker/activities/MainActivity.kt b/android/app/src/main/java/de/hft/geotracker/activities/MainActivity.kt index 1667fd0..ccaf3bf 100644 --- a/android/app/src/main/java/de/hft/geotracker/activities/MainActivity.kt +++ b/android/app/src/main/java/de/hft/geotracker/activities/MainActivity.kt @@ -17,6 +17,7 @@ import de.hft.geotracker.GeofenceBroadcastReceiver import de.hft.geotracker.R import de.hft.geotracker.retrofit.* import kotlinx.android.synthetic.main.activity_home.* +import kotlinx.android.synthetic.main.dropdown_menu.* import okhttp3.OkHttpClient import retrofit2.Call import retrofit2.Callback @@ -32,6 +33,7 @@ class MainActivity : AppCompatActivity() { lateinit var geofence: Geofence lateinit var actionButton: TextView var running = false + var accName: String? = null lateinit var accounts: ValuesTimetrackAccounts lateinit var service: GeofenceService lateinit var locationRequest: LocationRequest @@ -151,6 +153,24 @@ class MainActivity : AppCompatActivity() { private fun callStartStop() { running = !running + if (running) { + account_spinner.visibility = View.GONE + } else { + account_spinner.visibility = View.VISIBLE + } + if (!accName.isNullOrEmpty()) { + val call = service.triggerTracking(accName!!) + call.enqueue(object : Callback { + override fun onResponse(call: Call, response: Response) { + latitude.text = response.body()?.startdate + longitude.text = response.body()?.enddate + println("Tracking event successful!") + } + override fun onFailure(call: Call, t: Throwable) { + println("Problem at start tracking: " + t.message) + } + }) + } println("StartStop pressed: $running") //ToDO call /track Endpoint } @@ -193,7 +213,8 @@ class MainActivity : AppCompatActivity() { position: Int, id: Long ) { - if (!accountNames.get(0).equals("rich")) { + if (!accountNames.get(0).equals("None")) { + accName = accounts.entries.get(position).name display_description.setText(accounts.entries.get(position).description) display_revenue.setText(accounts.entries.get(position).revenue.toString()) } else { diff --git a/android/app/src/main/java/de/hft/geotracker/retrofit/GeofenceService.kt b/android/app/src/main/java/de/hft/geotracker/retrofit/GeofenceService.kt index 65cb132..d437f99 100644 --- a/android/app/src/main/java/de/hft/geotracker/retrofit/GeofenceService.kt +++ b/android/app/src/main/java/de/hft/geotracker/retrofit/GeofenceService.kt @@ -4,6 +4,7 @@ import retrofit2.Call import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.POST +import retrofit2.http.Query interface GeofenceService { @POST("/login") @@ -14,4 +15,7 @@ interface GeofenceService { @GET("accounts") fun getAccounts(): Call + + @GET("track") + fun triggerTracking(@Query("account") account: String): Call } \ No newline at end of file diff --git a/android/app/src/main/java/de/hft/geotracker/retrofit/ValuesTracking.kt b/android/app/src/main/java/de/hft/geotracker/retrofit/ValuesTracking.kt new file mode 100644 index 0000000..50756e9 --- /dev/null +++ b/android/app/src/main/java/de/hft/geotracker/retrofit/ValuesTracking.kt @@ -0,0 +1,30 @@ +package de.hft.geotracker.retrofit + +import com.google.gson.annotations.SerializedName + +class ValuesTracking( + duration: Int, + start: String, + end: String, + account: String, + user: String, + type: String +) { + @SerializedName("duration") + var duration = duration + + @SerializedName("startdate") + var startdate = start + + @SerializedName("enddate") + var enddate = end + + @SerializedName("account") + var account = account + + @SerializedName("username") + var username = user + + @SerializedName("type") + var type = type +} \ No newline at end of file diff --git a/android/app/src/main/res/layout/activity_home.xml b/android/app/src/main/res/layout/activity_home.xml index 5474830..f267e14 100644 --- a/android/app/src/main/res/layout/activity_home.xml +++ b/android/app/src/main/res/layout/activity_home.xml @@ -188,11 +188,11 @@ 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" android:textAppearance="@style/text_style" android:textColor="@color/logo_white" - app:layout_constraintBottom_toTopOf="@+id/longitude" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/display_revenue_layout" /> @@ -202,12 +202,13 @@ 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" android:textAppearance="@style/text_style" - app:layout_constraintBottom_toTopOf="@+id/altitude" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/latitude" /> \ No newline at end of file