kopia lustrzana https://github.com/ge0rg/aprsdroid
Map: remember map position in central prefs
rodzic
bb9f9f96e6
commit
9638efe532
|
@ -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 =>
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue