diff options
| author | koem <koem@petoria.de> | 2013-07-15 09:55:08 +0200 |
|---|---|---|
| committer | koem <koem@petoria.de> | 2013-07-16 20:09:31 +0200 |
| commit | 5e67bd977c076eeb9fc94f903801616cd3d56adb (patch) | |
| tree | 06b7ceaf1187abecd3ca416b1055f139514c9400 /main | |
| parent | 141c5696becd8a63d25132f1b5b139fbc6a3c179 (diff) | |
| download | cgeo-5e67bd977c076eeb9fc94f903801616cd3d56adb.zip cgeo-5e67bd977c076eeb9fc94f903801616cd3d56adb.tar.gz cgeo-5e67bd977c076eeb9fc94f903801616cd3d56adb.tar.bz2 | |
Fixes #2717 - Compass Speech stops on Rotation
Diffstat (limited to 'main')
| -rw-r--r-- | main/AndroidManifest.xml | 1 | ||||
| -rw-r--r-- | main/res/layout-land/compass_activity.xml | 2 | ||||
| -rw-r--r-- | main/res/layout/compass_activity.xml | 199 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/CompassActivity.java | 15 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeoapplication.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/GeoDirHandler.java | 7 |
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. * |
