aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2013-07-16 13:42:14 -0700
committerrsudev <rasch@munin-soft.de>2013-07-16 13:42:14 -0700
commitbd6ab9b867fd4427d9f4f08b222133cb0e1226fc (patch)
tree06b7ceaf1187abecd3ca416b1055f139514c9400
parent141c5696becd8a63d25132f1b5b139fbc6a3c179 (diff)
parent5e67bd977c076eeb9fc94f903801616cd3d56adb (diff)
downloadcgeo-bd6ab9b867fd4427d9f4f08b222133cb0e1226fc.zip
cgeo-bd6ab9b867fd4427d9f4f08b222133cb0e1226fc.tar.gz
cgeo-bd6ab9b867fd4427d9f4f08b222133cb0e1226fc.tar.bz2
Merge pull request #3008 from koem/issue2717speechrotate-squashed
Fixes #2717 - Compass Speech stops on Rotation
-rw-r--r--main/AndroidManifest.xml1
-rw-r--r--main/res/layout-land/compass_activity.xml2
-rw-r--r--main/res/layout/compass_activity.xml199
-rw-r--r--main/src/cgeo/geocaching/CompassActivity.java15
-rw-r--r--main/src/cgeo/geocaching/cgeoapplication.java4
-rw-r--r--main/src/cgeo/geocaching/utils/GeoDirHandler.java7
6 files changed, 131 insertions, 97 deletions
diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml
index c5781f2..ff18da5 100644
--- a/main/AndroidManifest.xml
+++ b/main/AndroidManifest.xml
@@ -321,6 +321,7 @@
</activity>
<activity
android:name=".CompassActivity"
+ android:configChanges="orientation"
android:label="@string/compass_title" >
</activity>
<activity
diff --git a/main/res/layout-land/compass_activity.xml b/main/res/layout-land/compass_activity.xml
index e433814..00e12bf 100644
--- a/main/res/layout-land/compass_activity.xml
+++ b/main/res/layout-land/compass_activity.xml
@@ -120,4 +120,4 @@
android:padding="4dip" />
</LinearLayout>
-</LinearLayout> \ No newline at end of file
+</LinearLayout>
diff --git a/main/res/layout/compass_activity.xml b/main/res/layout/compass_activity.xml
index b994b70..49990fd 100644
--- a/main/res/layout/compass_activity.xml
+++ b/main/res/layout/compass_activity.xml
@@ -1,115 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="?background_color"
android:orientation="vertical" >
- <LinearLayout
- android:id="@+id/info1"
+ <include layout="@layout/actionbar" />
+
+ <RelativeLayout
android:layout_width="fill_parent"
- android:layout_height="wrap_content"
+ android:layout_height="fill_parent"
android:orientation="vertical" >
-
- <TextView
- android:id="@+id/destination"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:textColor="?text_color"
- android:textSize="14sp" />
-
- <TextView
- android:id="@+id/cacheinfo"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:textColor="?text_color"
- android:textSize="14sp" />
-
- <RelativeLayout
+
+ <LinearLayout
+ android:id="@+id/info1"
android:layout_width="fill_parent"
- android:layout_height="30dip" >
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
<TextView
- android:id="@+id/heading"
+ android:id="@+id/destination"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_gravity="left"
- android:layout_marginLeft="3dip"
- android:text="@null"
+ android:layout_gravity="center"
android:textColor="?text_color"
- android:textSize="26sp" />
-
+ android:textSize="14sp" />
+
<TextView
- android:id="@+id/distance"
+ android:id="@+id/cacheinfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:layout_gravity="right"
- android:layout_marginRight="3dip"
- android:text="@null"
+ android:layout_gravity="center"
android:textColor="?text_color"
- android:textSize="26sp" />
- </RelativeLayout>
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/info2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_marginLeft="6dip"
- android:layout_marginRight="6dip"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/nav_location"
- style="@style/location_current"
- android:text="@string/loc_trying" />
-
- <RelativeLayout
+ android:textSize="14sp" />
+
+ <RelativeLayout
+ android:layout_width="fill_parent"
+ android:layout_height="30dip" >
+
+ <TextView
+ android:id="@+id/heading"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_gravity="left"
+ android:layout_marginLeft="3dip"
+ android:text="@null"
+ android:textColor="?text_color"
+ android:textSize="26sp" />
+
+ <TextView
+ android:id="@+id/distance"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_gravity="right"
+ android:layout_marginRight="3dip"
+ android:text="@null"
+ android:textColor="?text_color"
+ android:textSize="26sp" />
+ </RelativeLayout>
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/info2"
android:layout_width="fill_parent"
- android:layout_height="16dip" >
-
- <TextView
- android:id="@+id/nav_type"
- style="@style/location_current_type"
- android:textColor="?text_color_grey"
- android:textIsSelectable="false" />
-
- <TextView
- android:id="@+id/nav_accuracy"
- style="@style/location_current_accuracy"
- android:textColor="?text_color_grey"
- android:textIsSelectable="false" />
-
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginLeft="6dip"
+ android:layout_marginRight="6dip"
+ android:orientation="vertical" >
+
<TextView
- android:id="@+id/nav_satellites"
- style="@style/location_current_satellites"
- android:textColor="?text_color_grey"
- android:textIsSelectable="false" />
- </RelativeLayout>
- </LinearLayout>
-
- <view
- android:id="@+id/rose"
- android:layout_width="fill_parent"
- android:layout_height="295dip"
- android:layout_above="@id/info2"
- android:layout_below="@id/info1"
- android:layout_centerInParent="true"
- android:layout_gravity="center_horizontal"
- android:layout_marginBottom="1dip"
- android:layout_marginLeft="1dip"
- android:layout_marginRight="1dip"
- android:layout_marginTop="6dip"
- class="cgeo.geocaching.ui.CompassView"
- android:gravity="center"
- android:keepScreenOn="true"
- android:minHeight="289dip"
- android:minWidth="289dip"
- android:padding="4dip" />
+ android:id="@+id/nav_location"
+ style="@style/location_current"
+ android:text="@string/loc_trying" />
+
+ <RelativeLayout
+ android:layout_width="fill_parent"
+ android:layout_height="16dip" >
+
+ <TextView
+ android:id="@+id/nav_type"
+ style="@style/location_current_type"
+ android:textColor="?text_color_grey"
+ android:textIsSelectable="false" />
+
+ <TextView
+ android:id="@+id/nav_accuracy"
+ style="@style/location_current_accuracy"
+ android:textColor="?text_color_grey"
+ android:textIsSelectable="false" />
+
+ <TextView
+ android:id="@+id/nav_satellites"
+ style="@style/location_current_satellites"
+ android:textColor="?text_color_grey"
+ android:textIsSelectable="false" />
+ </RelativeLayout>
+ </LinearLayout>
+
+ <view
+ android:id="@+id/rose"
+ android:layout_width="fill_parent"
+ android:layout_height="295dip"
+ android:layout_above="@id/info2"
+ android:layout_below="@id/info1"
+ android:layout_centerInParent="true"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginBottom="1dip"
+ android:layout_marginLeft="1dip"
+ android:layout_marginRight="1dip"
+ android:layout_marginTop="6dip"
+ class="cgeo.geocaching.ui.CompassView"
+ android:gravity="center"
+ android:keepScreenOn="true"
+ android:minHeight="289dip"
+ android:minWidth="289dip"
+ android:padding="4dip" />
+
+ </RelativeLayout>
-</RelativeLayout> \ No newline at end of file
+</LinearLayout>
diff --git a/main/src/cgeo/geocaching/CompassActivity.java b/main/src/cgeo/geocaching/CompassActivity.java
index a7e0f03..64be52d 100644
--- a/main/src/cgeo/geocaching/CompassActivity.java
+++ b/main/src/cgeo/geocaching/CompassActivity.java
@@ -17,6 +17,7 @@ import org.apache.commons.lang3.StringUtils;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.media.AudioManager;
@@ -123,6 +124,20 @@ public class CompassActivity extends AbstractActivity {
}
@Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+
+ setContentView(R.layout.compass_activity);
+ Views.inject(this);
+
+ setTitle();
+ setDestCoords();
+ setCacheInfo();
+
+ geoDirHandler.updateAll();
+ }
+
+ @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);
diff --git a/main/src/cgeo/geocaching/cgeoapplication.java b/main/src/cgeo/geocaching/cgeoapplication.java
index b8f63ee..b227939 100644
--- a/main/src/cgeo/geocaching/cgeoapplication.java
+++ b/main/src/cgeo/geocaching/cgeoapplication.java
@@ -170,6 +170,10 @@ public class cgeoapplication extends Application {
return dir;
}
+ public Float currentDirection() {
+ return currentDirObject().getMemory();
+ }
+
public StatusUpdater getStatusUpdater() {
return statusUpdater;
}
diff --git a/main/src/cgeo/geocaching/utils/GeoDirHandler.java b/main/src/cgeo/geocaching/utils/GeoDirHandler.java
index 98a2287..14e6426 100644
--- a/main/src/cgeo/geocaching/utils/GeoDirHandler.java
+++ b/main/src/cgeo/geocaching/utils/GeoDirHandler.java
@@ -1,8 +1,8 @@
package cgeo.geocaching.utils;
import cgeo.geocaching.IGeoData;
-import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.settings.Settings;
import android.os.Handler;
import android.os.Message;
@@ -63,6 +63,11 @@ public abstract class GeoDirHandler extends Handler implements IObserver<Object>
obtainMessage(OBSERVABLE, o).sendToTarget();
}
+ public void updateAll() {
+ update(app.currentGeo());
+ update(app.currentDirection());
+ }
+
/**
* Update method called when new IGeoData is available.
*