diff --git a/src/MapAct.scala b/src/MapAct.scala index 4252c49..ec19952 100644 --- a/src/MapAct.scala +++ b/src/MapAct.scala @@ -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) } diff --git a/src/PrefsWrapper.scala b/src/PrefsWrapper.scala index f2d3505..ae2d366 100644 --- a/src/PrefsWrapper.scala +++ b/src/PrefsWrapper.scala @@ -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(" ") diff --git a/src/UIHelper.scala b/src/UIHelper.scala index e9b87dc..53b71db 100644 --- a/src/UIHelper.scala +++ b/src/UIHelper.scala @@ -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 }