aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-06-11 22:49:51 +0200
committerBananeweizen <bananeweizen@gmx.de>2014-06-11 22:49:51 +0200
commit24e030f2e68796d0d37f2762d70181b2fb12b862 (patch)
tree6b3521b69fbcf6a80eca5174b02412d45c011a07 /main
parent5b016321473536e607a7f2b906435ee9c74ff5bb (diff)
downloadcgeo-24e030f2e68796d0d37f2762d70181b2fb12b862.zip
cgeo-24e030f2e68796d0d37f2762d70181b2fb12b862.tar.gz
cgeo-24e030f2e68796d0d37f2762d70181b2fb12b862.tar.bz2
fix #3961: use radio button menu for compass sensors
Diffstat (limited to 'main')
-rw-r--r--main/res/menu/compass_activity_options.xml16
-rw-r--r--main/res/values/strings.xml1
-rw-r--r--main/src/cgeo/geocaching/CompassActivity.java18
3 files changed, 28 insertions, 7 deletions
diff --git a/main/res/menu/compass_activity_options.xml b/main/res/menu/compass_activity_options.xml
index 628f444..3f7f1ad 100644
--- a/main/res/menu/compass_activity_options.xml
+++ b/main/res/menu/compass_activity_options.xml
@@ -29,10 +29,22 @@
<menu /> <!-- filled dynamically -->
</item>
<item
- android:id="@+id/menu_switch_compass_gps"
+ android:id="@+id/menu_compass_sensor"
android:icon="@drawable/ic_menu_compass"
- android:title="@string/use_gps"
+ android:title="@string/compass_sensors"
cgeo:showAsAction="never|withText"> <!-- will be replaced in code -->
+ <menu>
+ <group android:checkableBehavior="single" >
+ <item
+ android:id="@+id/menu_compass_sensor_gps"
+ android:title="@string/use_gps">
+ </item>
+ <item
+ android:id="@+id/menu_compass_sensor_magnetic"
+ android:title="@string/use_compass">
+ </item>
+ </group>
+ </menu>
</item>
</menu> \ No newline at end of file
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 51b25e2..22afdf0 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -923,6 +923,7 @@
<!-- navigation -->
<string name="navigation">Navigation</string>
<string name="compass_title">Compass</string>
+ <string name="compass_sensors">Active Sensors</string>
<string name="use_gps">Use GPS only</string>
<string name="use_compass">Use GPS and Compass</string>
<string name="destination_select">Select destination</string>
diff --git a/main/src/cgeo/geocaching/CompassActivity.java b/main/src/cgeo/geocaching/CompassActivity.java
index 0f16d77..ef70837 100644
--- a/main/src/cgeo/geocaching/CompassActivity.java
+++ b/main/src/cgeo/geocaching/CompassActivity.java
@@ -150,7 +150,7 @@ public class CompassActivity extends AbstractActionBarActivity {
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.compass_activity_options, menu);
- menu.findItem(R.id.menu_switch_compass_gps).setVisible(hasMagneticFieldSensor);
+ menu.findItem(R.id.menu_compass_sensor).setVisible(hasMagneticFieldSensor);
final SubMenu subMenu = menu.findItem(R.id.menu_select_destination).getSubMenu();
if (coordinates.size() > 1) {
for (int i = 0; i < coordinates.size(); i++) {
@@ -169,7 +169,12 @@ public class CompassActivity extends AbstractActionBarActivity {
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
super.onPrepareOptionsMenu(menu);
- menu.findItem(R.id.menu_switch_compass_gps).setTitle(res.getString(Settings.isUseCompass() ? R.string.use_gps : R.string.use_compass));
+ if (Settings.isUseCompass()) {
+ menu.findItem(R.id.menu_compass_sensor_magnetic).setChecked(true);
+ }
+ else {
+ menu.findItem(R.id.menu_compass_sensor_gps).setChecked(true);
+ }
menu.findItem(R.id.menu_tts_start).setVisible(!SpeechService.isRunning());
menu.findItem(R.id.menu_tts_stop).setVisible(SpeechService.isRunning());
return true;
@@ -182,9 +187,12 @@ public class CompassActivity extends AbstractActionBarActivity {
case R.id.menu_map:
CGeoMap.startActivityCoords(this, dstCoords, null, null);
return true;
- case R.id.menu_switch_compass_gps:
- final boolean oldSetting = Settings.isUseCompass();
- Settings.setUseCompass(!oldSetting);
+ case R.id.menu_compass_sensor_gps:
+ Settings.setUseCompass(false);
+ invalidateOptionsMenuCompatible();
+ return true;
+ case R.id.menu_compass_sensor_magnetic:
+ Settings.setUseCompass(true);
invalidateOptionsMenuCompatible();
return true;
case R.id.menu_tts_start: