diff --git a/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt b/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt index 5127584..7a79c88 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt +++ b/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt @@ -109,118 +109,48 @@ object TrackHelper { /* Creates GPX string for given track */ fun createGpxString(track: Track): String { - var gpxString: String + val gpxString = StringBuilder("") - // add header - gpxString = "\n" + - "\n" + // Header + gpxString.appendLine(""" + + + """.trimIndent()) + gpxString.appendLine("\t") + gpxString.appendLine("\t\tTrackbook Recording: ${track.name}") + gpxString.appendLine("\t") - // add name - gpxString += createGpxName(track) - - // add POIs - gpxString += createGpxPois(track) - - // add track - gpxString += createGpxTrk(track) - - // add closing tag - gpxString += "\n" - - return gpxString - } - - - /* Creates name for GPX file */ - private fun createGpxName(track: Track): String { - val gpxName = StringBuilder("") - gpxName.append("\t\n") - gpxName.append("\t\t") - gpxName.append("Trackbook Recording: ${track.name}") - gpxName.append("\n") - gpxName.append("\t\n") - return gpxName.toString() - } - - - /* Creates GPX formatted points of interest */ - private fun createGpxPois(track: Track): String { - val gpxPois = StringBuilder("") + // POIs val poiList: List = track.wayPoints.filter { it.starred } poiList.forEach { poi -> - gpxPois.append("\t\n") - - // add name to waypoint - gpxPois.append("\t\t") - gpxPois.append("Point of interest") - gpxPois.append("\n") - - // add altitude - gpxPois.append("\t\t") - gpxPois.append(poi.altitude) - gpxPois.append("\n") - - // add closing tag - gpxPois.append("\t\n") + gpxString.appendLine("\t") + gpxString.appendLine("\t\tPoint of interest") + gpxString.appendLine("\t\t${poi.altitude}") + gpxString.appendLine("\t") } - return gpxPois.toString() - } - - /* Creates GPX formatted track */ - private fun createGpxTrk(track: Track): String { - val gpxTrack = StringBuilder("") + // TRK val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US) dateFormat.timeZone = TimeZone.getTimeZone("UTC") - - // add opening track tag - gpxTrack.append("\t\n") - - // add name to track - gpxTrack.append("\t\t") - gpxTrack.append("Track") - gpxTrack.append("\n") - - // add opening track segment tag - gpxTrack.append("\t\t\n") - - // add route point + gpxString.appendLine("\t") + gpxString.appendLine("\t\t${track.name}") + gpxString.appendLine("\t\t") track.wayPoints.forEach { wayPoint -> - // add longitude and latitude - gpxTrack.append("\t\t\t\n") - - // add altitude - gpxTrack.append("\t\t\t\t") - gpxTrack.append(wayPoint.altitude) - gpxTrack.append("\n") - - // add time - gpxTrack.append("\t\t\t\t\n") - - // add closing tag - gpxTrack.append("\t\t\t\n") + gpxString.appendLine("\t\t\t") + gpxString.appendLine("\t\t\t\t${wayPoint.altitude}") + gpxString.appendLine("\t\t\t\t") + gpxString.appendLine("\t\t\t") } + gpxString.appendLine("\t\t") + gpxString.appendLine("\t") + gpxString.appendLine("") - // add closing track segment tag - gpxTrack.append("\t\t\n") - - // add closing track tag - gpxTrack.append("\t\n") - - return gpxTrack.toString() + return gpxString.toString() } /* Toggles starred flag for given position */