From 5e67bd977c076eeb9fc94f903801616cd3d56adb Mon Sep 17 00:00:00 2001 From: koem Date: Mon, 15 Jul 2013 09:55:08 +0200 Subject: Fixes #2717 - Compass Speech stops on Rotation --- main/AndroidManifest.xml | 1 + main/res/layout-land/compass_activity.xml | 2 +- main/res/layout/compass_activity.xml | 199 +++++++++++----------- main/src/cgeo/geocaching/CompassActivity.java | 15 ++ main/src/cgeo/geocaching/cgeoapplication.java | 4 + main/src/cgeo/geocaching/utils/GeoDirHandler.java | 7 +- 6 files changed, 131 insertions(+), 97 deletions(-) (limited to 'main') 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 @@ - \ No newline at end of file + 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 @@ - - + + - - - - - - - + android:layout_height="wrap_content" + android:orientation="vertical" > + - + android:textSize="14sp" /> + - - - - - - - - + + + + + + + + + + - - - - - + android:layout_height="wrap_content" + android:layout_alignParentBottom="true" + android:layout_marginLeft="6dip" + android:layout_marginRight="6dip" + android:orientation="vertical" > + - - - - + android:id="@+id/nav_location" + style="@style/location_current" + android:text="@string/loc_trying" /> + + + + + + + + + + + + + + - \ No newline at end of file + 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 obtainMessage(OBSERVABLE, o).sendToTarget(); } + public void updateAll() { + update(app.currentGeo()); + update(app.currentDirection()); + } + /** * Update method called when new IGeoData is available. * -- cgit v1.1