Add a line tracking animal history

This commit is contained in:
Danila Fedorin 2020-05-12 18:25:19 -07:00
parent 3cecc1e121
commit 7716d77f25
2 changed files with 9 additions and 2 deletions

View File

@ -1,8 +1,10 @@
package com.danilafe.fencelessgrazing package com.danilafe.fencelessgrazing
import android.app.Application
import android.graphics.Color import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.widget.TextView import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import com.android.volley.Request import com.android.volley.Request
@ -17,8 +19,10 @@ import com.danilafe.fencelessgrazing.requests.CollarHistoryRequest
import org.osmdroid.util.GeoPoint import org.osmdroid.util.GeoPoint
import org.osmdroid.views.MapView import org.osmdroid.views.MapView
import org.osmdroid.views.overlay.Marker import org.osmdroid.views.overlay.Marker
import org.osmdroid.views.overlay.Polyline
import java.sql.Time import java.sql.Time
import java.util.* import java.util.*
import kotlin.collections.ArrayList
import kotlin.concurrent.timerTask import kotlin.concurrent.timerTask
class CollarDetailActivity : AppCompatActivity() { class CollarDetailActivity : AppCompatActivity() {
@ -43,6 +47,7 @@ class CollarDetailActivity : AppCompatActivity() {
} }
private lateinit var mapMarker: Marker private lateinit var mapMarker: Marker
private lateinit var mapPolyline: Polyline
private var dataPoints: List<GeoPoint> = listOf() private var dataPoints: List<GeoPoint> = listOf()
set(newValue) { set(newValue) {
if(newValue.isNotEmpty()) updateAnimalHistory(newValue) if(newValue.isNotEmpty()) updateAnimalHistory(newValue)
@ -64,6 +69,7 @@ class CollarDetailActivity : AppCompatActivity() {
map = findViewById(R.id.detailMap) map = findViewById(R.id.detailMap)
mapPolygon = org.osmdroid.views.overlay.Polygon(map) mapPolygon = org.osmdroid.views.overlay.Polygon(map)
mapMarker = Marker(map) mapMarker = Marker(map)
mapPolyline = Polyline(map)
configureMapPolygon() configureMapPolygon()
boundingBox = Polygon( boundingBox = Polygon(
@ -122,13 +128,16 @@ class CollarDetailActivity : AppCompatActivity() {
private fun updateAnimalHistory(points : List<GeoPoint>) { private fun updateAnimalHistory(points : List<GeoPoint>) {
val currentPoint = points.first() val currentPoint = points.first()
mapMarker.position = currentPoint mapMarker.position = currentPoint
mapPolyline.setPoints(points)
collarPos.text = getString(R.string.collarSummaryLocation, currentPoint.longitude, currentPoint.latitude) collarPos.text = getString(R.string.collarSummaryLocation, currentPoint.longitude, currentPoint.latitude)
if(!map.overlays.contains(mapMarker)) map.overlays.add(mapMarker) if(!map.overlays.contains(mapMarker)) map.overlays.add(mapMarker)
if(!map.overlays.contains(mapPolyline)) map.overlays.add(mapPolyline)
map.invalidate() map.invalidate()
} }
private fun clearAnimalHistory() { private fun clearAnimalHistory() {
map.overlays.remove(mapMarker) map.overlays.remove(mapMarker)
map.overlays.remove(mapPolyline)
map.invalidate() map.invalidate()
} }

View File

@ -61,7 +61,6 @@ class CollarListActivity : AppCompatActivity() {
map.onResume() map.onResume()
refreshTimer = Timer() refreshTimer = Timer()
refreshTimer.schedule(timerTask { triggerRefresh() }, 0L, 5000L) refreshTimer.schedule(timerTask { triggerRefresh() }, 0L, 5000L)
Log.d("FencelessGrazing", "Should be resumed")
} }
override fun onPause() { override fun onPause() {
@ -69,7 +68,6 @@ class CollarListActivity : AppCompatActivity() {
map.onPause() map.onPause()
refreshTimer.cancel() refreshTimer.cancel()
refreshTimer.purge() refreshTimer.purge()
Log.d("FencelessGrazing", "Should be paused")
} }
private fun triggerRefresh() { private fun triggerRefresh() {