aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-01-16 00:00:20 -0600
committerIván Ávalos <avalos@disroot.org>2022-01-16 00:00:20 -0600
commit972b0cf5ff61fd7eabfb8960fa474cb80dcde80a (patch)
tree22bf05bb94f0809811fe1fcec57aba53f91f315b /androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt
parent9dd1ca6b987af2fb6838311a65cfdd69b07d117d (diff)
downloadetbsa-trackermap-mobile-972b0cf5ff61fd7eabfb8960fa474cb80dcde80a.tar.gz
etbsa-trackermap-mobile-972b0cf5ff61fd7eabfb8960fa474cb80dcde80a.tar.bz2
etbsa-trackermap-mobile-972b0cf5ff61fd7eabfb8960fa474cb80dcde80a.zip
Default map changed to OpenStreetMap.fr (because .org one doesn't work), and now each map URL has its own cache dir
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt36
1 files changed, 23 insertions, 13 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt
index 60c8a47..e4fb8ea 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt
@@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import androidx.core.graphics.drawable.toBitmap
import com.mousebird.maply.*
+import com.soywiz.krypto.md5
import mil.nga.sf.Polygon
import mil.nga.sf.util.SFException
import mil.nga.sf.wkt.GeometryReader
@@ -56,17 +57,10 @@ class MapFragment : GlobeMapFragment() {
override fun controlHasStarted() {
Log.d("MapFragment", "controlHasStarted")
- val cacheDirName = "stamen_watercolor6"
- val cacheDir = File(activity!!.cacheDir, cacheDirName)
- cacheDir.mkdir()
-
if (tileInfo == null) {
- tileInfo = RemoteTileInfoNew(
- getString(R.string.maps_streets_tile_url),
- 0,
- 21
- )
- (tileInfo as RemoteTileInfoNew).cacheDir = cacheDir
+ val mapUrl = getString(R.string.maps_streets_tile_url)
+ val tmpInfo = RemoteTileInfoNew(mapUrl, 0, 21)
+ tileInfo = makeTileInfo(getString(R.string.maps_streets_tile_url), tmpInfo)
}
val params = SamplingParams()
@@ -318,9 +312,25 @@ class MapFragment : GlobeMapFragment() {
}
}
- fun updateTileInfo(tileInfo: TileInfoNew) {
- this.tileInfo = tileInfo
- loader?.changeTileInfo(tileInfo)
+ private fun makeTileInfo(url: String, tileInfo: TileInfoNew): TileInfoNew? {
+ return context?.let {
+ val cacheDirName = url.toByteArray(Charsets.UTF_8).md5().hex
+ val cacheDirMap = File(it.cacheDir, cacheDirName)
+ cacheDirMap.mkdir()
+ Log.d("MapFragment", "Cache dir for $url = ${cacheDirMap.absolutePath}")
+
+ (tileInfo as? RemoteTileInfoNew)?.cacheDir = cacheDirMap
+ tileInfo
+ }
+ }
+
+ fun updateTileInfo(url: String, tileInfo: TileInfoNew) {
+ context?.let {
+ this.tileInfo = makeTileInfo(url, tileInfo)
+ this.tileInfo?.let {
+ loader?.changeTileInfo(it)
+ }
+ }
}
private fun getIcon(markerType: MarkerType): Bitmap {