implement map overlay logic

precision_debug
Georg Lukas 2011-04-13 01:07:34 +02:00
rodzic a06351df49
commit a78ba86ecd
3 zmienionych plików z 19 dodań i 5 usunięć

Wyświetl plik

@ -36,6 +36,8 @@ class MapAct extends MapActivity {
mapview.setBuiltInZoomControls(true)
locReceiver.startTask(null)
showObjects = prefs.getShowObjects()
mapview.setSatellite(prefs.getShowSatellite())
mapview.getOverlays().add(staoverlay)
// listen for new positions
@ -58,15 +60,16 @@ class MapAct extends MapActivity {
override def onOptionsItemSelected(mi : MenuItem) : Boolean = {
mi.getItemId match {
case R.id.objects =>
mi.setChecked(!mi.isChecked())
showObjects = mi.isChecked()
val newState = prefs.toggleBoolean("show_objects", false)
mi.setChecked(newState)
showObjects = newState
loading.setVisibility(View.VISIBLE)
locReceiver.startTask(null)
mapview.invalidate()
true
case R.id.satellite =>
mi.setChecked(!mi.isChecked())
mapview.setSatellite(mi.isChecked())
val newState = prefs.toggleBoolean("show_satellite", false)
mi.setChecked(newState)
mapview.setSatellite(newState)
true
case _ => uihelper.optionsItemAction(mi)
}

Wyświetl plik

@ -24,6 +24,15 @@ class PrefsWrapper(val context : Context) {
}
def getCallSsid() = AprsPacket.formatCallSsid(getCallsign(), getString("ssid", ""))
def toggleBoolean(name : String, default : Boolean) = {
val new_val = !prefs.getBoolean(name, default)
android.util.Log.d("toggleBoolean", name + "=" + new_val)
prefs.edit().putBoolean(name, new_val).commit()
new_val
}
def getShowObjects() = prefs.getBoolean("show_objects", false)
def getShowSatellite() = prefs.getBoolean("show_satellite", false)
// this is actually a hack!
def getVersion() = context.getString(R.string.build_version).split(" ").take(2).mkString(" ")

Wyświetl plik

@ -128,6 +128,8 @@ class UIHelper(ctx : Activity, menu_id : Int, prefs : PrefsWrapper)
menu.findItem(id).setVisible(id != menu_id)
})
menu.findItem(R.id.overlays).setVisible(R.id.map == menu_id)
menu.findItem(R.id.objects).setChecked(prefs.getShowObjects())
menu.findItem(R.id.satellite).setChecked(prefs.getShowSatellite())
true
}