diff --git a/app/src/main/java/org/y20k/trackbook/Track.kt b/app/src/main/java/org/y20k/trackbook/Track.kt index bb986ac..4ad3013 100644 --- a/app/src/main/java/org/y20k/trackbook/Track.kt +++ b/app/src/main/java/org/y20k/trackbook/Track.kt @@ -41,7 +41,7 @@ data class Track ( { fun delete() { - Log.i("VOUSSOIR", "Track.delete.") + Log.i("VOUSSOIR", "Track.delete ${device_id} ${start_time} -- ${end_time}.") } fun export_gpx(context: Context, fileuri: Uri): Uri? @@ -120,6 +120,7 @@ data class Track ( fun statistics(): TrackStatistics { + Log.i("VOUSSOIR", "Track.statistics") var first: Trkpt? = null var last: Trkpt? = null var previous: Trkpt? = null @@ -170,7 +171,7 @@ data class Track ( "SELECT lat, lon, time, ele, accuracy, sat FROM trkpt WHERE device_id = ? AND time > ? AND time < ? ORDER BY time ASC", arrayOf(device_id, start_time.time.toString(), end_time.time.toString()) ) - Log.i("VOUSSOIR", "Querying points between ${start_time} -- ${end_time}") + Log.i("VOUSSOIR", "Track.trkpt_generator: Querying points between ${start_time} -- ${end_time}") val COLUMN_LAT = cursor.getColumnIndex("lat") val COLUMN_LON = cursor.getColumnIndex("lon") val COLUMN_ELE = cursor.getColumnIndex("ele") diff --git a/app/src/main/java/org/y20k/trackbook/TrackFragment.kt b/app/src/main/java/org/y20k/trackbook/TrackFragment.kt index 82a2fbe..78a416f 100644 --- a/app/src/main/java/org/y20k/trackbook/TrackFragment.kt +++ b/app/src/main/java/org/y20k/trackbook/TrackFragment.kt @@ -98,8 +98,8 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener val RERENDER_DELAY: Long = 1000 /* Overrides onCreateView from Fragment */ - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - // initialize layout + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View + { val database: Database = (requireActivity().applicationContext as Trackbook).database track = Track( database=database, @@ -108,6 +108,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener start_time= iso8601_format.parse(this.requireArguments().getString(Keys.ARG_TRACK_START_TIME)!!), end_time=iso8601_format.parse(this.requireArguments().getString(Keys.ARG_TRACK_STOP_TIME)!!), ) + track.load_trkpts() rootView = inflater.inflate(R.layout.fragment_track, container, false) mapView = rootView.findViewById(R.id.map) save_track_button = rootView.findViewById(R.id.save_button) @@ -147,7 +148,6 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener mapView.overlayManager.tilesOverlay.setColorFilter(TilesOverlay.INVERT_COLORS) } - track.load_trkpts() val actual_start_time: Date = if (track.trkpts.isEmpty()) track.start_time else Date(track.trkpts.first().time) val actual_end_time: Date = if (track.trkpts.isEmpty()) track.end_time else Date(track.trkpts.last().time) @@ -226,7 +226,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener } deleteButton.setOnClickListener { - val dialogMessage = "${getString(R.string.dialog_yes_no_message_delete_recording)}\n\n${trackNameView.text}" + val dialogMessage = "${getString(R.string.dialog_yes_no_message_delete_recording)}\n\n${track.trkpts.size} trackpoints" YesNoDialog(this@TrackFragment as YesNoDialog.YesNoDialogListener).show( context = activity as Context, type = Keys.DIALOG_DELETE_TRACK, @@ -251,6 +251,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener fun render_track() { + Log.i("VOUSSOIR", "TrackFragment.render_track") if (special_points_overlay != null) { mapView.overlays.remove(special_points_overlay) @@ -312,7 +313,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener Toast.makeText(context, R.string.toast_message_elevation_info, Toast.LENGTH_LONG).show() } } - // make track name on statistics sheet clickable + trackNameView.setOnClickListener { toggleStatisticsSheetVisibility() } @@ -341,11 +342,11 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener private val requery_and_render: Runnable = object : Runnable { override fun run() { - Log.i("VOUSSOIR", "requery_and_render") + Log.i("VOUSSOIR", "TrackFragment.requery_and_render") track.start_time = get_datetime(track_query_start_date, track_query_start_time, seconds=0) track.end_time = get_datetime(track_query_end_date, track_query_end_time, seconds=59) track.load_trkpts() - Log.i("VOUSSOIR", "Reloaded ${track.trkpts.size} trkpts.") + Log.i("VOUSSOIR", "TrackFragment.requery_and_render: Reloaded ${track.trkpts.size} trkpts.") render_track() mapView.invalidate() } @@ -384,6 +385,9 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener { // user tapped remove track true -> { + track.delete() + handler.removeCallbacks(requery_and_render) + handler.postDelayed(requery_and_render, RERENDER_DELAY) // switch to TracklistFragment and remove track there // val bundle: Bundle = bundleOf(Keys.ARG_TRACK_ID to layout.track.id) // findNavController().navigate(R.id.tracklist_fragment, bundle) diff --git a/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt b/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt index 9aca248..253bc18 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt +++ b/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt @@ -39,6 +39,7 @@ import java.util.* fun createTrackOverlay(context: Context, map_view: MapView, trkpts: Collection, trackingState: Int): SimpleFastPointOverlay { + Log.i("VOUSSOIR", "MapOverlayHelper.createTrackOverlay") val trackpoints: MutableList = mutableListOf() for (trkpt in trkpts) { @@ -83,6 +84,7 @@ fun createTrackOverlay(context: Context, map_view: MapView, trkpts: Collection): ItemizedIconOverlay? { + Log.i("VOUSSOIR", "MapOverlayHelper.create_start_end_markers") if (trkpts.size == 0) { return null diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 14ebfd0..4a6cadb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,7 +37,7 @@ Delete Delete Delete all non-starred recordings? This action cannot be undone. - Delete this recording? + Delete these trackpoints? Copied to clipboard. Hint: The accuracy of elevation data depends on your device. The uphill and downhill elevation of the whole route is measured.