summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt
diff options
context:
space:
mode:
authorLeonard Kugis <leonard@kug.is>2024-01-03 22:51:08 +0100
committerLeonard Kugis <leonard@kug.is>2024-01-03 22:51:08 +0100
commit992fa2d9a9bc519215c0b352688691ba012ca04a (patch)
treeb84ed8965cb828e7f53acf5c9a7e30edd3b7675d /app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt
parent5db0bdfdf62ae0915b587399a0ff4ce53bca813b (diff)
Fixed route interpolation
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt33
1 files changed, 27 insertions, 6 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt
index b70ae36..a155216 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt
@@ -67,7 +67,13 @@ import timber.log.Timber
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import foundation.e.advancedprivacy.domain.entities.FakeLocationCoordinate
-import java.io.File
+import java.io.BufferedReader
+import java.io.IOException
+import java.io.InputStream
+import java.io.InputStreamReader
+import android.util.Log
+import kotlin.math.sqrt
+import kotlin.math.pow
class FakeLocationFragment : NavToolbarFragment(R.layout.fragment_fake_location) {
@@ -341,11 +347,26 @@ class FakeLocationFragment : NavToolbarFragment(R.layout.fragment_fake_location)
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
result.data?.data?.let { uri ->
- if(uri.path != null) {
- var routeFile = File(uri.path ?: ".")
- //val filePath = selectedFile?.uri?.path ?: "Path not found"
- //binding.locationRoutePath.text = "Path: $filePath"
- route = Gson().fromJson(routeFile.readText(Charsets.UTF_8), object : TypeToken<List<FakeLocationCoordinate>>() {}.type)
+ var activity = getActivity()
+ if(uri.path != null && activity != null) {
+ var inputStream: InputStream? = null
+ var reader: BufferedReader? = null
+ var route_str: String? = null
+ try {
+ inputStream = activity.contentResolver.openInputStream(uri)
+ reader = BufferedReader(InputStreamReader(inputStream))
+ route_str = reader.readLines().joinToString("")
+ } catch(e: IOException) {
+ Log.e("FakeLocationFragment", "Error reading JSON file", e)
+ } finally {
+ try {
+ reader?.close()
+ inputStream?.close()
+ } catch (e: IOException) {
+ Log.e("FakeLocationFragment", "Error closing streams", e)
+ }
+ }
+ route = Gson().fromJson(route_str, object : TypeToken<List<FakeLocationCoordinate>>() {}.type)
var route_buf = route
route_buf?.let {
viewModel.submitAction(Action.SetRoute(route_buf))