Add a line tracking animal history
This commit is contained in:
parent
3cecc1e121
commit
7716d77f25
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user