diff options
| -rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 10 | ||||
| -rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java | 15 | 
2 files changed, 22 insertions, 3 deletions
| diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index db7815f3..b87b51b5 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -998,6 +998,12 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener {  	static String direction(AltosGreatCircle from_receiver,  			     Location receiver) { +		if (from_receiver == null) +			return null; + +		if (receiver == null) +			return null; +  		if (!receiver.hasBearing())  			return null; @@ -1016,8 +1022,8 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener {  		else if (iheading < -179 || 179 < iheading)  			return "backwards";  		else if (iheading < 0) -			return String.format("left %d", -iheading); +			return String.format("left %d°", -iheading);  		else -			return String.format("right %d", iheading); +			return String.format("right %d°", iheading);  	}  } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 0ee202a4..81b6fe54 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -37,6 +37,7 @@ public class TabMap extends AltosDroidTab {  	AltosLatLon	here;  	private TextView mDistanceView; +	private TextView mBearingLabel;  	private TextView mBearingView;  	private TextView mTargetLatitudeView;  	private TextView mTargetLongitudeView; @@ -63,6 +64,7 @@ public class TabMap extends AltosDroidTab {  		int map_source = AltosDroidPreferences.map_source();  		mDistanceView  = (TextView)view.findViewById(R.id.distance_value); +		mBearingLabel  = (TextView)view.findViewById(R.id.bearing_label);  		mBearingView   = (TextView)view.findViewById(R.id.bearing_value);  		mTargetLatitudeView  = (TextView)view.findViewById(R.id.target_lat_value);  		mTargetLongitudeView = (TextView)view.findViewById(R.id.target_lon_value); @@ -99,8 +101,19 @@ public class TabMap extends AltosDroidTab {  	public void show(TelemetryState telem_state, AltosState state, AltosGreatCircle from_receiver, Location receiver) {  		if (from_receiver != null) { -			mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); +			String	direction = AltosDroid.direction(from_receiver, receiver); +			if (direction != null) { +				mBearingLabel.setText("Direction"); +				mBearingView.setText(direction); +			} else { +				mBearingLabel.setText("Bearing"); +				mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); +			}  			set_value(mDistanceView, AltosConvert.distance, 6, from_receiver.distance); +		} else { +			mBearingLabel.setText("Bearing"); +			mBearingView.setText(""); +			set_value(mDistanceView, AltosConvert.distance, 6, AltosLib.MISSING);  		}  		if (state != null) { | 
