diff --git a/app/src/main/java/org/blitzortung/android/data/Coordsys.kt b/app/src/main/java/org/blitzortung/android/data/Coordsys.kt index a9e4b8c9..6ef3cad3 100644 --- a/app/src/main/java/org/blitzortung/android/data/Coordsys.kt +++ b/app/src/main/java/org/blitzortung/android/data/Coordsys.kt @@ -23,8 +23,8 @@ import org.osmdroid.util.GeoPoint object Coordsys { - fun toMapCoords(longitude: Float, latitude: Float): GeoPoint { - return GeoPoint((latitude * 1e6).toInt(), (longitude * 1e6).toInt()) + fun toMapCoords(longitude: Double, latitude: Double): GeoPoint { + return GeoPoint(latitude, longitude) } } diff --git a/app/src/main/java/org/blitzortung/android/data/beans/DefaultStrike.kt b/app/src/main/java/org/blitzortung/android/data/beans/DefaultStrike.kt index 5304e530..547c9206 100644 --- a/app/src/main/java/org/blitzortung/android/data/beans/DefaultStrike.kt +++ b/app/src/main/java/org/blitzortung/android/data/beans/DefaultStrike.kt @@ -22,16 +22,16 @@ import java.io.Serializable data class DefaultStrike( override val timestamp: Long = 0, - override val longitude: Float = 0f, - override val latitude: Float = 0f, + override val longitude: Double = 0.0, + override val latitude: Double = 0.0, val altitude: Int = 0, val amplitude: Float = 0f, val stationCount: Short = 0, - val lateralError: Float = 0f) : Strike, Serializable { + val lateralError: Double = 0.0) : Strike, Serializable { override val multiplicity = 1 companion object { - private val serialVersionUID = 4201042078597105622L + private const val serialVersionUID = 4201042078597105622L } } diff --git a/app/src/main/java/org/blitzortung/android/data/beans/Location.kt b/app/src/main/java/org/blitzortung/android/data/beans/Location.kt index 20cb536c..577512be 100644 --- a/app/src/main/java/org/blitzortung/android/data/beans/Location.kt +++ b/app/src/main/java/org/blitzortung/android/data/beans/Location.kt @@ -19,7 +19,7 @@ package org.blitzortung.android.data.beans interface Location { - val longitude: Float - val latitude: Float + val longitude: Double + val latitude: Double } diff --git a/app/src/main/java/org/blitzortung/android/data/beans/RasterElement.kt b/app/src/main/java/org/blitzortung/android/data/beans/RasterElement.kt index dfe7a703..e62bf835 100644 --- a/app/src/main/java/org/blitzortung/android/data/beans/RasterElement.kt +++ b/app/src/main/java/org/blitzortung/android/data/beans/RasterElement.kt @@ -22,8 +22,8 @@ import java.io.Serializable data class RasterElement( override val timestamp: Long, - override val longitude: Float, - override val latitude: Float, + override val longitude: Double, + override val latitude: Double, override val multiplicity: Int) : Strike, Serializable { companion object { diff --git a/app/src/main/java/org/blitzortung/android/data/beans/RasterParameters.kt b/app/src/main/java/org/blitzortung/android/data/beans/RasterParameters.kt index b672590b..4d6aa730 100644 --- a/app/src/main/java/org/blitzortung/android/data/beans/RasterParameters.kt +++ b/app/src/main/java/org/blitzortung/android/data/beans/RasterParameters.kt @@ -26,32 +26,32 @@ import org.blitzortung.android.data.Coordsys import org.osmdroid.views.Projection data class RasterParameters( - val longitudeStart: Float, - val latitudeStart: Float, - val longitudeDelta: Float, - val latitudeDelta: Float, + val longitudeStart: Double, + val latitudeStart: Double, + val longitudeDelta: Double, + val latitudeDelta: Double, val longitudeBins: Int, val latitudeBins: Int, val minDistance: Float? = null) { - val rectCenterLongitude: Float - get() = longitudeStart + longitudeDelta * longitudeBins / 2f + val rectCenterLongitude: Double + get() = longitudeStart + longitudeDelta * longitudeBins / 2.0 - val rectCenterLatitude: Float - get() = latitudeStart - latitudeDelta * latitudeBins / 2f + val rectCenterLatitude: Double + get() = latitudeStart - latitudeDelta * latitudeBins / 2.0 - fun getCenterLongitude(offset: Int): Float { - return longitudeStart + longitudeDelta * (offset + 0.5f) + fun getCenterLongitude(offset: Int): Double { + return longitudeStart + longitudeDelta * (offset + 0.5) } - fun getCenterLatitude(offset: Int): Float { - return latitudeStart - latitudeDelta * (offset + 0.5f) + fun getCenterLatitude(offset: Int): Double { + return latitudeStart - latitudeDelta * (offset + 0.5) } - val rectLongitudeDelta: Float + val rectLongitudeDelta: Double get() = longitudeDelta * longitudeBins - val rectLatitudeDelta: Float + val rectLatitudeDelta: Double get() = latitudeDelta * latitudeBins fun getRect(projection: Projection): RectF { diff --git a/app/src/main/java/org/blitzortung/android/data/beans/Station.kt b/app/src/main/java/org/blitzortung/android/data/beans/Station.kt index e975e2a3..77e344d2 100644 --- a/app/src/main/java/org/blitzortung/android/data/beans/Station.kt +++ b/app/src/main/java/org/blitzortung/android/data/beans/Station.kt @@ -18,7 +18,12 @@ package org.blitzortung.android.data.beans -class Station(override val longitude: Float, override val latitude: Float, val name: String, val offlineSince: Long) : Location { +class Station( + override val longitude: Double, + override val latitude: Double, + val name: String, + val offlineSince: Long +) : Location { val state: State get() { diff --git a/app/src/main/java/org/blitzortung/android/data/provider/blitzortung/MapBuilderFactory.kt b/app/src/main/java/org/blitzortung/android/data/provider/blitzortung/MapBuilderFactory.kt index 43994bf6..345f6a13 100644 --- a/app/src/main/java/org/blitzortung/android/data/provider/blitzortung/MapBuilderFactory.kt +++ b/app/src/main/java/org/blitzortung/android/data/provider/blitzortung/MapBuilderFactory.kt @@ -30,9 +30,9 @@ class MapBuilderFactory constructor(private val strikeLineSplitter: (String) -> fun createAbstractStrikeMapBuilder(): MapBuilder { return object : MapBuilder(strikeLineSplitter) { - var longitude: Float = 0.toFloat() - var latitude: Float = 0.toFloat() - var amplitude: Float = 0.toFloat() + var longitude: Double = 0.0 + var latitude: Double = 0.0 + var amplitude: Float = 0f private var timestamp: Long = 0 private var lateralError: Int = 0 private var altitude: Int = 0 @@ -43,18 +43,18 @@ class MapBuilderFactory constructor(private val strikeLineSplitter: (String) -> } override fun setBuilderMap(keyValueBuilderMap: MutableMap) -> Unit>) { - keyValueBuilderMap.put("pos", { values -> - longitude = java.lang.Float.valueOf(values[1]) - latitude = java.lang.Float.parseFloat(values[0]) - altitude = Integer.parseInt(values[2]) - }) - keyValueBuilderMap.put("str", { values -> amplitude = java.lang.Float.parseFloat(values[0]) }) - keyValueBuilderMap.put("dev", { values -> lateralError = Integer.parseInt(values[0]) }) - keyValueBuilderMap.put("sta", { values -> stationCount = values.size.toShort() }) + keyValueBuilderMap.put("pos") { values -> + longitude = values[1].toDouble() + latitude = values[0].toDouble() + altitude = values[2].toInt() + } + keyValueBuilderMap.put("str") { values -> amplitude = java.lang.Float.parseFloat(values[0]) } + keyValueBuilderMap.put("dev") { values -> lateralError = Integer.parseInt(values[0]) } + keyValueBuilderMap.put("sta") { values -> stationCount = values.size.toShort() } } override fun build(): Strike { - return DefaultStrike(timestamp, longitude, latitude, altitude, amplitude, stationCount, lateralError.toFloat()) + return DefaultStrike(timestamp, longitude, latitude, altitude, amplitude, stationCount, lateralError.toDouble()) } } } @@ -63,23 +63,23 @@ class MapBuilderFactory constructor(private val strikeLineSplitter: (String) -> return object : MapBuilder(stationLineSplitter) { private var name: String = "n/a" - private var longitude: Float = 0.toFloat() - private var latitude: Float = 0.toFloat() + private var longitude: Double = 0.0 + private var latitude: Double = 0.0 private var offlineSince: Long = 0 override fun prepare(fields: Array) { } override fun setBuilderMap(keyValueBuilderMap: MutableMap) -> Unit>) { - keyValueBuilderMap.put("city", { values -> name = values[0].replace("\"", "") }) - keyValueBuilderMap.put("pos", { values -> - longitude = java.lang.Float.parseFloat(values[1]) - latitude = java.lang.Float.parseFloat(values[0]) - }) - keyValueBuilderMap.put("last_signal", { values -> + keyValueBuilderMap.put("city") { values -> name = values[0].replace("\"", "") } + keyValueBuilderMap.put("pos") { values -> + longitude = values[1].toDouble() + latitude = values[0].toDouble() + } + keyValueBuilderMap.put("last_signal") { values -> val dateString = values[0].replace("\"", "").replace("-", "").replace(" ", "T") offlineSince = TimeFormat.parseTime(dateString) - }) + } } override fun build(): Station { diff --git a/app/src/main/java/org/blitzortung/android/data/provider/standard/DataBuilder.kt b/app/src/main/java/org/blitzortung/android/data/provider/standard/DataBuilder.kt index 432dea8a..80a19ff1 100644 --- a/app/src/main/java/org/blitzortung/android/data/provider/standard/DataBuilder.kt +++ b/app/src/main/java/org/blitzortung/android/data/provider/standard/DataBuilder.kt @@ -30,9 +30,9 @@ internal class DataBuilder { try { return DefaultStrike( timestamp = referenceTimestamp - 1000 * jsonArray.getInt(0), - longitude = jsonArray.getDouble(1).toFloat(), - latitude = jsonArray.getDouble(2).toFloat(), - lateralError = jsonArray.getDouble(3).toFloat(), + longitude = jsonArray.getDouble(1), + latitude = jsonArray.getDouble(2), + lateralError = jsonArray.getDouble(3), altitude = 0, amplitude = jsonArray.getDouble(4).toFloat(), stationCount = jsonArray.getInt(5).toShort()) @@ -45,10 +45,10 @@ internal class DataBuilder { @Throws(JSONException::class) fun createRasterParameters(response: JSONObject, minDistance: Float): RasterParameters { return RasterParameters( - longitudeStart = response.getDouble("x0").toFloat(), - latitudeStart = response.getDouble("y1").toFloat(), - longitudeDelta = response.getDouble("xd").toFloat(), - latitudeDelta = response.getDouble("yd").toFloat(), + longitudeStart = response.getDouble("x0"), + latitudeStart = response.getDouble("y1"), + longitudeDelta = response.getDouble("xd"), + latitudeDelta = response.getDouble("yd"), longitudeBins = response.getInt("xc"), latitudeBins = response.getInt("yc"), minDistance = minDistance) @@ -65,18 +65,18 @@ internal class DataBuilder { } fun createStation(jsonArray: JSONArray): Station { - var name : String - var longitude : Float - var latitude : Float + val name : String + val longitude : Double + val latitude : Double var offlineSince = Station.OFFLINE_SINCE_NOT_SET try { name = jsonArray.getString(1) - longitude = jsonArray.getDouble(3).toFloat() - latitude = jsonArray.getDouble(4).toFloat() + longitude = jsonArray.getDouble(3) + latitude = jsonArray.getDouble(4) if (jsonArray.length() >= 6) { val offlineSinceString = jsonArray.getString(5) - if (offlineSinceString.length > 0) { + if (offlineSinceString.isNotEmpty()) { offlineSince = TimeFormat.parseTimeWithMilliseconds(offlineSinceString) } } diff --git a/app/src/main/java/org/blitzortung/android/map/StrikePopup.kt b/app/src/main/java/org/blitzortung/android/map/StrikePopup.kt index 8da9c9a6..cdd4862e 100644 --- a/app/src/main/java/org/blitzortung/android/map/StrikePopup.kt +++ b/app/src/main/java/org/blitzortung/android/map/StrikePopup.kt @@ -15,7 +15,7 @@ fun createStrikePopUp(popUp: View, strikeOverlay: StrikeOverlay): View { if (strikeOverlay.shape is RasterShape) { result += ", #%d".format(strikeOverlay.multiplicity) } else if (strikeOverlay.shape is StrikeShape) { - result += " (%.4f %.4f)".format(strikeOverlay.center.longitudeE6 / 1e6, strikeOverlay.center.latitudeE6 / 1e6) + result += " (%.4f %.4f)".format(strikeOverlay.center.longitude, strikeOverlay.center.latitude) } with(popUp.findViewById(R.id.popup_text) as TextView) { diff --git a/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlayItem.kt b/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlayItem.kt index caaafd46..cc0ecea8 100644 --- a/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlayItem.kt +++ b/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlayItem.kt @@ -25,4 +25,4 @@ import org.osmdroid.views.overlay.OverlayItem class OwnLocationOverlayItem( location: Location -) : OverlayItem("own location", "", Coordsys.toMapCoords(location.longitude.toFloat(), location.latitude.toFloat())) +) : OverlayItem("own location", "", Coordsys.toMapCoords(location.longitude, location.latitude)) diff --git a/app/src/test/java/org/blitzortung/android/app/components/VersionComponentTest.kt b/app/src/test/java/org/blitzortung/android/app/components/VersionComponentTest.kt index 9953ddc8..613d33fb 100644 --- a/app/src/test/java/org/blitzortung/android/app/components/VersionComponentTest.kt +++ b/app/src/test/java/org/blitzortung/android/app/components/VersionComponentTest.kt @@ -61,7 +61,7 @@ class VersionComponentTest { } companion object { - val CURRENT_VERSION_CODE = 210 + val CURRENT_VERSION_CODE = 213 val CURRENT_VERSION_NAME = "2.0.0" } } \ No newline at end of file