Add optional commit parameter to database functions.
This commit is contained in:
parent
17e85379f8
commit
07bd7bbb0b
4 changed files with 60 additions and 16 deletions
|
@ -52,23 +52,29 @@ class Database(val trackbook: Trackbook)
|
||||||
this.connection.endTransaction()
|
this.connection.endTransaction()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun delete_trkpt(device_id: String, time: Long)
|
fun delete_trkpt(device_id: String, time: Long, commit: Boolean=false)
|
||||||
{
|
{
|
||||||
Log.i("VOUSSOIR", "Database.delete_trkpt")
|
Log.i("VOUSSOIR", "Database.delete_trkpt")
|
||||||
begin_transaction()
|
begin_transaction()
|
||||||
connection.delete("trkpt", "device_id = ? AND time = ?", arrayOf(device_id, time.toString()))
|
connection.delete("trkpt", "device_id = ? AND time = ?", arrayOf(device_id, time.toString()))
|
||||||
commit()
|
if (commit)
|
||||||
|
{
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun delete_trkpt_start_end(device_id: String, start_time: Long, end_time: Long)
|
fun delete_trkpt_start_end(device_id: String, start_time: Long, end_time: Long, commit: Boolean=false)
|
||||||
{
|
{
|
||||||
Log.i("VOUSSOIR", "Track.delete ${device_id} ${start_time} -- ${end_time}.")
|
Log.i("VOUSSOIR", "Track.delete ${device_id} ${start_time} -- ${end_time}.")
|
||||||
this.begin_transaction()
|
this.begin_transaction()
|
||||||
this.connection.delete("trkpt", "device_id = ? AND time >= ? AND time <= ?", arrayOf(device_id, start_time.toString(), end_time.toString()))
|
this.connection.delete("trkpt", "device_id = ? AND time >= ? AND time <= ?", arrayOf(device_id, start_time.toString(), end_time.toString()))
|
||||||
this.commit()
|
if (commit)
|
||||||
|
{
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun insert_trkpt(trkpt: Trkpt)
|
fun insert_trkpt(trkpt: Trkpt, commit: Boolean=false)
|
||||||
{
|
{
|
||||||
Log.i("VOUSSOIR", "Database.insert_trkpt")
|
Log.i("VOUSSOIR", "Database.insert_trkpt")
|
||||||
val values = ContentValues().apply {
|
val values = ContentValues().apply {
|
||||||
|
@ -83,6 +89,10 @@ class Database(val trackbook: Trackbook)
|
||||||
}
|
}
|
||||||
begin_transaction()
|
begin_transaction()
|
||||||
connection.insert("trkpt", null, values)
|
connection.insert("trkpt", null, values)
|
||||||
|
if (commit)
|
||||||
|
{
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun select_trkpt_start_end(device_id: String, start_time: Long, end_time: Long, order: String="ASC"): Iterator<Trkpt>
|
fun select_trkpt_start_end(device_id: String, start_time: Long, end_time: Long, order: String="ASC"): Iterator<Trkpt>
|
||||||
|
@ -136,15 +146,18 @@ class Database(val trackbook: Trackbook)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun delete_homepoint(id: Long)
|
fun delete_homepoint(id: Long, commit: Boolean=false)
|
||||||
{
|
{
|
||||||
Log.i("VOUSSOIR", "Database.delete_homepoint")
|
Log.i("VOUSSOIR", "Database.delete_homepoint")
|
||||||
begin_transaction()
|
begin_transaction()
|
||||||
connection.delete("homepoints", "id = ?", arrayOf(id.toString()))
|
connection.delete("homepoints", "id = ?", arrayOf(id.toString()))
|
||||||
commit()
|
if (commit)
|
||||||
|
{
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun insert_homepoint(id: Long, name: String, latitude: Double, longitude: Double, radius: Double)
|
fun insert_homepoint(id: Long, name: String, latitude: Double, longitude: Double, radius: Double, commit: Boolean=false)
|
||||||
{
|
{
|
||||||
Log.i("VOUSSOIR", "Database.insert_homepoint")
|
Log.i("VOUSSOIR", "Database.insert_homepoint")
|
||||||
val values = ContentValues().apply {
|
val values = ContentValues().apply {
|
||||||
|
@ -156,10 +169,13 @@ class Database(val trackbook: Trackbook)
|
||||||
}
|
}
|
||||||
begin_transaction()
|
begin_transaction()
|
||||||
connection.insert("homepoints", null, values)
|
connection.insert("homepoints", null, values)
|
||||||
commit()
|
if (commit)
|
||||||
|
{
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun update_homepoint(id: Long, name: String, radius: Double)
|
fun update_homepoint(id: Long, name: String, radius: Double, commit: Boolean=false)
|
||||||
{
|
{
|
||||||
Log.i("VOUSSOIR", "Database.update_homepoint")
|
Log.i("VOUSSOIR", "Database.update_homepoint")
|
||||||
val values = ContentValues().apply {
|
val values = ContentValues().apply {
|
||||||
|
@ -168,7 +184,29 @@ class Database(val trackbook: Trackbook)
|
||||||
}
|
}
|
||||||
begin_transaction()
|
begin_transaction()
|
||||||
connection.update("homepoints", values, "id = ?", arrayOf(id.toString()))
|
connection.update("homepoints", values, "id = ?", arrayOf(id.toString()))
|
||||||
commit()
|
if (commit)
|
||||||
|
{
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun update_trkpt(trkpt: Trkpt, commit: Boolean=false)
|
||||||
|
{
|
||||||
|
Log.i("VOUSSOIR", "Database.update_trkpt")
|
||||||
|
val values = ContentValues().apply {
|
||||||
|
put("lat", trkpt.latitude)
|
||||||
|
put("lon", trkpt.longitude)
|
||||||
|
put("provider", trkpt.provider)
|
||||||
|
put("accuracy", trkpt.accuracy)
|
||||||
|
put("sat", trkpt.numberSatellites)
|
||||||
|
put("ele", trkpt.altitude)
|
||||||
|
}
|
||||||
|
begin_transaction()
|
||||||
|
connection.update("trkpt", values, "device_id = ? AND time = ?", arrayOf(trkpt.device_id, trkpt.time.toString()))
|
||||||
|
if (commit)
|
||||||
|
{
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initialize_tables()
|
private fun initialize_tables()
|
||||||
|
|
|
@ -168,6 +168,7 @@ class MapFragment : Fragment()
|
||||||
latitude=point.latitude,
|
latitude=point.latitude,
|
||||||
longitude=point.longitude,
|
longitude=point.longitude,
|
||||||
radius=radius,
|
radius=radius,
|
||||||
|
commit=true,
|
||||||
)
|
)
|
||||||
trackbook.load_homepoints()
|
trackbook.load_homepoints()
|
||||||
create_homepoint_overlays()
|
create_homepoint_overlays()
|
||||||
|
@ -553,14 +554,14 @@ class MapFragment : Fragment()
|
||||||
val save_button: Button = dialog.findViewById(R.id.homepoint_save_button)
|
val save_button: Button = dialog.findViewById(R.id.homepoint_save_button)
|
||||||
delete_button.text = "Delete"
|
delete_button.text = "Delete"
|
||||||
delete_button.setOnClickListener {
|
delete_button.setOnClickListener {
|
||||||
trackbook.database.delete_homepoint(homepoint.id)
|
trackbook.database.delete_homepoint(homepoint.id, commit=true)
|
||||||
trackbook.load_homepoints()
|
trackbook.load_homepoints()
|
||||||
create_homepoint_overlays()
|
create_homepoint_overlays()
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
}
|
}
|
||||||
save_button.setOnClickListener {
|
save_button.setOnClickListener {
|
||||||
val radius = radius_input.text.toString().toDoubleOrNull() ?: 25.0
|
val radius = radius_input.text.toString().toDoubleOrNull() ?: 25.0
|
||||||
trackbook.database.update_homepoint(homepoint.id, name=name_input.text.toString(), radius=radius)
|
trackbook.database.update_homepoint(homepoint.id, name=name_input.text.toString(), radius=radius, commit=true)
|
||||||
trackbook.load_homepoints()
|
trackbook.load_homepoints()
|
||||||
create_homepoint_overlays()
|
create_homepoint_overlays()
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
|
|
|
@ -259,7 +259,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener
|
||||||
Log.i("VOUSSOIR", selected.rendered_by_polyline?.actualPoints?.size.toString())
|
Log.i("VOUSSOIR", selected.rendered_by_polyline?.actualPoints?.size.toString())
|
||||||
selected.rendered_by_polyline?.setPoints(ArrayList(selected.rendered_by_polyline?.actualPoints))
|
selected.rendered_by_polyline?.setPoints(ArrayList(selected.rendered_by_polyline?.actualPoints))
|
||||||
Log.i("VOUSSOIR", selected.rendered_by_polyline?.actualPoints?.size.toString())
|
Log.i("VOUSSOIR", selected.rendered_by_polyline?.actualPoints?.size.toString())
|
||||||
trackbook.database.delete_trkpt(selected.device_id, selected.time)
|
trackbook.database.delete_trkpt(selected.device_id, selected.time, commit=true)
|
||||||
deselect_trkpt()
|
deselect_trkpt()
|
||||||
mapView.invalidate()
|
mapView.invalidate()
|
||||||
}
|
}
|
||||||
|
@ -674,7 +674,12 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener
|
||||||
{
|
{
|
||||||
if (type == Keys.DIALOG_DELETE_TRACK && dialogResult && track.trkpts.isNotEmpty())
|
if (type == Keys.DIALOG_DELETE_TRACK && dialogResult && track.trkpts.isNotEmpty())
|
||||||
{
|
{
|
||||||
trackbook.database.delete_trkpt_start_end(track.device_id, track.trkpts.first().time, track.trkpts.last().time)
|
trackbook.database.delete_trkpt_start_end(
|
||||||
|
track.device_id,
|
||||||
|
track.trkpts.first().time,
|
||||||
|
track.trkpts.last().time,
|
||||||
|
commit=true,
|
||||||
|
)
|
||||||
handler.removeCallbacks(requery_and_render)
|
handler.removeCallbacks(requery_and_render)
|
||||||
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
||||||
}
|
}
|
||||||
|
|
|
@ -339,7 +339,7 @@ class TrackerService: Service()
|
||||||
}
|
}
|
||||||
|
|
||||||
val trkpt = Trkpt(device_id=device_id, location=location)
|
val trkpt = Trkpt(device_id=device_id, location=location)
|
||||||
trackbook.database.insert_trkpt(trkpt)
|
trackbook.database.insert_trkpt(trkpt, commit=false)
|
||||||
|
|
||||||
recent_trackpoints_for_mapview.add(trkpt)
|
recent_trackpoints_for_mapview.add(trkpt)
|
||||||
while (recent_trackpoints_for_mapview.size > RECENT_TRKPT_COUNT)
|
while (recent_trackpoints_for_mapview.size > RECENT_TRKPT_COUNT)
|
||||||
|
|
Loading…
Reference in a new issue