summaryrefslogtreecommitdiff
path: root/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-04-12 01:00:36 -0700
committerKeith Packard <keithp@keithp.com>2013-04-12 01:00:36 -0700
commit1ec6fb3b9cec0f864d6e65d0cc6b4dd42edd3e16 (patch)
tree4457c5b08569b74e15e131d365af7941ed010582 /altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
parent02243463adbdfb860f69580f544da9026dc7cbd4 (diff)
altosdroid: Check state.gps != null before using it
Avoid crashing. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java')
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java31
1 files changed, 19 insertions, 12 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
index 6906324d..5070ec0b 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
@@ -27,6 +27,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
+import android.location.Location;
public class TabPad extends Fragment implements AltosDroidTab {
AltosDroid mAltosDroid;
@@ -100,7 +101,7 @@ public class TabPad extends Fragment implements AltosDroidTab {
mAltosDroid = null;
}
- public void update_ui(AltosState state, AltosGreatCircle from_receiver) {
+ public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) {
mBatteryVoltageView.setText(String.format("%4.2f V", state.battery));
mBatteryLights.set(state.battery > 3.7);
@@ -122,18 +123,24 @@ public class TabPad extends Fragment implements AltosDroidTab {
}
mDataLoggingLights.set(state.data.flight != 0);
- mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat));
- mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4);
-
- if (state.gps_ready)
- mGPSReadyView.setText("Ready");
- else
- mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting));
- mGPSReadyLights.set(state.gps_ready);
+ if (state.gps != null) {
+ mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat));
+ mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4);
+ if (state.gps_ready)
+ mGPSReadyView.setText("Ready");
+ else
+ mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting));
+ mGPSReadyLights.set(state.gps_ready);
+ }
- mPadLatitudeView.setText(AltosDroid.pos(state.pad_lat, "N", "S"));
- mPadLongitudeView.setText(AltosDroid.pos(state.pad_lon, "W", "E"));
- mPadAltitudeView.setText(String.format("%4.0f m", state.pad_alt));
+ if (receiver != null) {
+ double altitude = 0;
+ if (receiver.hasAltitude())
+ altitude = receiver.getAltitude();
+ mPadLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S"));
+ mPadLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E"));
+ mPadAltitudeView.setText(String.format("%4.0f m", altitude));
+ }
}
}