diff options
author | Leonard Kugis <leonard@kug.is> | 2024-01-03 22:51:08 +0100 |
---|---|---|
committer | Leonard Kugis <leonard@kug.is> | 2024-01-03 22:51:08 +0100 |
commit | 992fa2d9a9bc519215c0b352688691ba012ca04a (patch) | |
tree | b84ed8965cb828e7f53acf5c9a7e30edd3b7675d /app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt | |
parent | 5db0bdfdf62ae0915b587399a0ff4ce53bca813b (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.kt | 33 |
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)) |