Map: remember map position in central prefs

google-maps-v2
Georg Lukas 2020-08-24 18:05:12 +02:00
rodzic bb9f9f96e6
commit 9638efe532
3 zmienionych plików z 37 dodań i 4 usunięć

Wyświetl plik

@ -37,6 +37,7 @@ class GoogleMapAct extends Activity with MapLoaderBase
override def onMapReady(googleMap: GoogleMap): Unit = {
Log.d(TAG, "Got map!")
map = googleMap
loadMapViewPosition()
setMapMode(MapModes.defaultMapMode(GoogleMapAct.this, prefs))
//not helpful, off at the top:
//map.setMyLocationEnabled(true)
@ -80,6 +81,8 @@ class GoogleMapAct extends Activity with MapLoaderBase
override def onPause(): Unit = {
super.onPause()
mapview.onPause()
val position = map.getCameraPosition()
saveMapViewPosition(position.target.latitude.asInstanceOf[Float], position.target.longitude.asInstanceOf[Float], position.zoom)
}
override def onStop(): Unit = {
@ -92,6 +95,10 @@ class GoogleMapAct extends Activity with MapLoaderBase
mapview.onDestroy()
}
override def loadMapViewPosition(lat : Float, lon : Float, zoom : Float) {
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lon), zoom))
}
override def setMapMode(mm : MapMode) = {
mm match {
case gmm : GoogleMapMode =>

Wyświetl plik

@ -65,11 +65,24 @@ class MapAct extends MapActivity with MapMenuHelper {
setLongTitle(R.string.app_map, targetcall)
}
override def onPause() {
super.onPause()
val pos = mapview.getMapPosition().getMapPosition()
if (pos == null || pos.geoPoint == null)
return
saveMapViewPosition(pos.geoPoint.latitudeE6/1000000.0f, pos.geoPoint.longitudeE6/1000000.0f, pos.zoomLevel)
}
override def onDestroy() {
super.onDestroy()
unregisterReceiver(locReceiver)
}
override def loadMapViewPosition(lat : Float, lon : Float, zoom : Float) {
mapview.getController().setCenter(new GeoPoint(lat, lon))
mapview.getController().setZoom(zoom.asInstanceOf[Int])
}
def startLoading() {
registerReceiver(locReceiver, new IntentFilter(AprsService.UPDATE))
locReceiver.startTask(null)
@ -128,14 +141,11 @@ class MapAct extends MapActivity with MapMenuHelper {
// case map_gen_tile : TileDownloader => map_gen_tile.setUserAgent("APRSdroid")
//}
mapview.setMapGenerator(map_gen)
if (!mapview.getMapPosition.isValid) {
mapview.getController().setCenter(new GeoPoint(52.5075, 13.39027))
mapview.getController().setZoom(11)
}
}
val themefile = new File(prefs.getString("themefile", android.os.Environment.getExternalStorageDirectory() + "/aprsdroid.xml"))
if (themefile.exists())
mapview.setRenderTheme(themefile)
loadMapViewPosition()
}
override def onKeyDown(keyCode : Int, event : KeyEvent) : Boolean = {

Wyświetl plik

@ -106,4 +106,20 @@ trait MapMenuHelper extends UIHelper {
}
def reloadMap()
def saveMapViewPosition(lat : Float, lon : Float, zoom : Float) {
val edit = prefs.prefs.edit()
edit.putFloat("map_lat", lat)
edit.putFloat("map_lon", lon)
edit.putFloat("map_zoom", zoom)
edit.commit()
}
def loadMapViewPosition(lat : Float, lon : Float, zoom : Float)
def loadMapViewPosition() {
val lat = prefs.prefs.getFloat("map_lat", 52.5075f)
val lon = prefs.prefs.getFloat("map_lon", 13.39027f)
val zoom = prefs.prefs.getFloat("map_zoom", 12.0f)
loadMapViewPosition(lat, lon, zoom)
}
}