diff options
author | Leonard Kugis <leonard@kug.is> | 2024-01-04 02:39:04 +0100 |
---|---|---|
committer | Leonard Kugis <leonard@kug.is> | 2024-01-04 02:39:04 +0100 |
commit | aa93b37883deb00c6ca74ad72a5464284fe9171f (patch) | |
tree | bcbc0792e914059a763a04182bbe0f2538b3a5b4 /fakelocation/src/main/java/foundation/e/advancedprivacy/fakelocation/services/FakeLocationService.kt | |
parent | cb28d70fb5d220953dec337885601597c654e4fd (diff) |
Added additional fake location parameters
Bearing, Bearing jitter, Speed jitter, Altitude jitter
Diffstat (limited to 'fakelocation/src/main/java/foundation/e/advancedprivacy/fakelocation/services/FakeLocationService.kt')
-rw-r--r-- | fakelocation/src/main/java/foundation/e/advancedprivacy/fakelocation/services/FakeLocationService.kt | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/fakelocation/src/main/java/foundation/e/advancedprivacy/fakelocation/services/FakeLocationService.kt b/fakelocation/src/main/java/foundation/e/advancedprivacy/fakelocation/services/FakeLocationService.kt index f9a3c52..41784a1 100644 --- a/fakelocation/src/main/java/foundation/e/advancedprivacy/fakelocation/services/FakeLocationService.kt +++ b/fakelocation/src/main/java/foundation/e/advancedprivacy/fakelocation/services/FakeLocationService.kt @@ -45,18 +45,26 @@ class FakeLocationService : Service() { private const val PARAM_ALTITUDE = "PARAM_ALTITUDE" private const val PARAM_SPEED = "PARAM_SPEED" + private const val PARAM_BEARING = "PARAM_BEARING" private const val PARAM_JITTER = "PARAM_JITTER" + private const val PARAM_JITTER_ALTITUDE = "PARAM_JITTER_ALTITUDE" + private const val PARAM_JITTER_SPEED = "PARAM_JITTER_SPEED" + private const val PARAM_JITTER_BEARING = "PARAM_JITTER_BEARING" private const val PARAM_LATITUDE = "PARAM_LATITUDE" private const val PARAM_LONGITUDE = "PARAM_LONGITUDE" private const val PARAM_ROUTE = "PARAM_ROUTE" private const val PARAM_ROUTE_LOOP = "PARAM_ROUTE_LOOP" - fun buildFakeLocationIntent(context: Context, altitude: Double, speed: Float, jitter: Float, latitude: Double, longitude: Double): Intent { + fun buildFakeLocationIntent(context: Context, altitude: Double, speed: Float, bearing: Float, jitter: Float, jitterAltitude: Double, jitterSpeed: Float, jitterBearing: Float, latitude: Double, longitude: Double): Intent { return Intent(context, FakeLocationService::class.java).apply { action = Actions.START_FAKE_LOCATION.name putExtra(PARAM_ALTITUDE, altitude) putExtra(PARAM_SPEED, speed) + putExtra(PARAM_BEARING, bearing) putExtra(PARAM_JITTER, jitter) + putExtra(PARAM_JITTER_ALTITUDE, jitterAltitude) + putExtra(PARAM_JITTER_SPEED, jitterSpeed) + putExtra(PARAM_JITTER_BEARING, jitterBearing) putExtra(PARAM_LATITUDE, latitude) putExtra(PARAM_LONGITUDE, longitude) } @@ -81,7 +89,11 @@ class FakeLocationService : Service() { private var altitude: Double? = null private var speed: Float? = null + private var bearing: Float? = null private var jitter: Float? = null + private var jitterAltitude: Double? = null + private var jitterSpeed: Float? = null + private var jitterBearing: Float? = null private var fakeLocation: Pair<Double, Double>? = null @@ -100,7 +112,11 @@ class FakeLocationService : Service() { Actions.START_FAKE_LOCATION -> { altitude = it.getDoubleExtra(PARAM_ALTITUDE, 3.0) speed = it.getFloatExtra(PARAM_SPEED, 1.0f) + bearing = it.getFloatExtra(PARAM_BEARING, 0.0f) jitter = it.getFloatExtra(PARAM_JITTER, 3.0f) + jitterAltitude = it.getDoubleExtra(PARAM_JITTER_ALTITUDE, 3.0) + jitterSpeed = it.getFloatExtra(PARAM_JITTER_SPEED, 0.1f) + jitterBearing = it.getFloatExtra(PARAM_JITTER_BEARING, 10.0f) fakeLocation = Pair( it.getDoubleExtra(PARAM_LATITUDE, 0.0), it.getDoubleExtra(PARAM_LONGITUDE, 0.0) @@ -131,14 +147,22 @@ class FakeLocationService : Service() { override fun onTick(millisUntilFinished: Long) { var altitude_buf: Double = altitude ?: return var speed_buf: Float = speed ?: return + var bearing_buf: Float = bearing ?: return var jitter_buf: Float = jitter ?: return + var jitterAltitude_buf: Double = jitterAltitude ?: return + var jitterSpeed_buf: Float = jitterSpeed ?: return + var jitterBearing_buf: Float = jitterBearing ?: return var fakeLocation_buf: Pair<Double, Double> = fakeLocation ?: return if(fakeLocation != null && altitude != null && speed != null && jitter != null) { try { fakeLocationModule.setTestProviderLocation( - (altitude_buf + ((Random.nextFloat() * jitter_buf) - (jitter_buf * 0.5f))).toDouble(), - speed_buf + ((Random.nextFloat() * jitter_buf) - (jitter_buf * 0.5f)), + (altitude_buf + ((Random.nextFloat() * jitterAltitude_buf) - (jitterAltitude_buf * 0.5f))).toDouble(), + speed_buf + ((Random.nextFloat() * jitterSpeed_buf) - (jitterSpeed_buf * 0.5f)), + bearing_buf + ((Random.nextFloat() * jitterBearing_buf) - (jitterBearing_buf * 0.5f)), jitter_buf, + jitterAltitude_buf.toFloat(), + jitterSpeed_buf, + jitterBearing_buf, (fakeLocation_buf.first + (((Random.nextFloat() * jitter_buf) - (jitter_buf * 0.5f)) / 111139.0f)).toDouble(), (fakeLocation_buf.second + (((Random.nextFloat() * jitter_buf) - (jitter_buf * 0.5f)) / 111139.0f)).toDouble() ) @@ -212,9 +236,13 @@ class FakeLocationService : Service() { } try { fakeLocationModule.setTestProviderLocation( - (coord.first.altitude + ((Random.nextFloat() * coord.first.jitter) - (coord.first.jitter * 0.5f))).toDouble(), - coord.first.speed + ((Random.nextFloat() * coord.first.jitter) - (coord.first.jitter * 0.5f)), + (coord.first.altitude + ((Random.nextFloat() * coord.first.jitterAltitude) - (coord.first.jitterAltitude * 0.5f))).toDouble(), + coord.first.speed + ((Random.nextFloat() * coord.first.jitterSpeed) - (coord.first.jitterSpeed * 0.5f)), + coord.first.bearing + ((Random.nextFloat() * coord.first.jitterBearing) - (coord.first.jitterBearing * 0.5f)), coord.first.jitter, + coord.first.jitterAltitude, + coord.first.jitterSpeed, + coord.first.jitterBearing, (coord.second.first + (((Random.nextFloat() * coord.first.jitter) - (coord.first.jitter * 0.5f)) / 111139.0f)).toDouble(), (coord.second.second + (((Random.nextFloat() * coord.first.jitter) - (coord.first.jitter * 0.5f)) / 111139.0f)).toDouble() ) |