summaryrefslogtreecommitdiff
path: root/altosdroid
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-04-16 14:22:23 -0700
committerKeith Packard <keithp@keithp.com>2013-04-16 14:22:23 -0700
commitc2640c09c76ce32e471dcf6df83095d146bb39a2 (patch)
treed4b010963224db0421264e29b4164af0c8fce105 /altosdroid
parentd5a557004c00d1ae25da04dc63c78b816562a236 (diff)
altosdroid: Check for missing values
When displaying numbers, check for MISSING values and display nothing Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosdroid')
-rw-r--r--altosdroid/res/layout/tab_ascent.xml4
-rw-r--r--altosdroid/res/layout/tab_descent.xml4
-rw-r--r--altosdroid/res/layout/tab_pad.xml12
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java8
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java15
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java23
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java20
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java27
8 files changed, 67 insertions, 46 deletions
diff --git a/altosdroid/res/layout/tab_ascent.xml b/altosdroid/res/layout/tab_ascent.xml
index d2d721e1..b21ec426 100644
--- a/altosdroid/res/layout/tab_ascent.xml
+++ b/altosdroid/res/layout/tab_ascent.xml
@@ -228,7 +228,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/apogee_voltage_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/apogee_greenled"
@@ -267,7 +267,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/main_voltage_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/main_greenled"
diff --git a/altosdroid/res/layout/tab_descent.xml b/altosdroid/res/layout/tab_descent.xml
index 56e8a00a..9e1fc820 100644
--- a/altosdroid/res/layout/tab_descent.xml
+++ b/altosdroid/res/layout/tab_descent.xml
@@ -268,7 +268,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/apogee_voltage_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/apogee_greenled"
@@ -307,7 +307,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/main_voltage_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/main_greenled"
diff --git a/altosdroid/res/layout/tab_pad.xml b/altosdroid/res/layout/tab_pad.xml
index a21f9bbb..00d5ea12 100644
--- a/altosdroid/res/layout/tab_pad.xml
+++ b/altosdroid/res/layout/tab_pad.xml
@@ -30,7 +30,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/battery_voltage_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/battery_greenled"
@@ -68,7 +68,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/apogee_voltage_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/apogee_greenled"
@@ -106,7 +106,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/main_voltage_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/main_greenled"
@@ -144,7 +144,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/logging_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/logging_greenled"
@@ -182,7 +182,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/gps_locked_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/gps_locked_greenled"
@@ -220,7 +220,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/gps_ready_label"
- android:src="@drawable/redled" />
+ android:src="@drawable/grayled" />
<ImageView
android:id="@+id/gps_ready_greenled"
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
index 5ce6f810..917d64d6 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
@@ -265,6 +265,8 @@ public class AltosDroid extends FragmentActivity {
static String pos(double p, String pos, String neg) {
String h = pos;
+ if (p == AltosRecord.MISSING)
+ return "";
if (p < 0) {
h = neg;
p = -p;
@@ -274,6 +276,12 @@ public class AltosDroid extends FragmentActivity {
return String.format("%d°%9.4f\" %s", deg, min, h);
}
+ static String number(String format, double value) {
+ if (value == AltosRecord.MISSING)
+ return "";
+ return String.format(format, value);
+ }
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java b/altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java
index 0f95bc22..8e8d9c03 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java
@@ -23,6 +23,8 @@ import android.widget.ImageView;
public class GoNoGoLights {
private Boolean state;
+ private Boolean missing;
+ private Boolean set;
private ImageView red;
private ImageView green;
@@ -35,16 +37,23 @@ public class GoNoGoLights {
red = in_red;
green = in_green;
state = false;
+ missing = true;
+ set = false;
dRed = r.getDrawable(R.drawable.redled);
dGreen = r.getDrawable(R.drawable.greenled);
dGray = r.getDrawable(R.drawable.grayled);
}
- public void set(Boolean s) {
- if (s == state) return;
+ public void set(Boolean s, Boolean m) {
+ if (set && s == state && m == missing) return;
state = s;
- if (state) {
+ missing = m;
+ set = true;
+ if (missing) {
+ red.setImageDrawable(dGray);
+ green.setImageDrawable(dGray);
+ } else if (state) {
red.setImageDrawable(dGray);
green.setImageDrawable(dGreen);
} else {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java
index 23d2e97c..0e141ae4 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java
@@ -87,23 +87,26 @@ public class TabAscent extends Fragment implements AltosDroidTab {
public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) {
if (state != null) {
- mHeightView.setText(String.format("%6.0f m", state.height));
- mMaxHeightView.setText(String.format("%6.0f m", state.max_height));
- mSpeedView.setText(String.format("%6.0f m/s", state.speed()));
- mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed()));
- mAccelView.setText(String.format("%6.0f m/s²", state.acceleration));
- mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration));
+ mHeightView.setText(AltosDroid.number("%6.0f m", state.height));
+ mMaxHeightView.setText(AltosDroid.number("%6.0f m", state.max_height));
+ mSpeedView.setText(AltosDroid.number("%6.0f m/s", state.speed()));
+ mMaxSpeedView.setText(AltosDroid.number("%6.0f m/s", state.max_speed()));
+ mAccelView.setText(AltosDroid.number("%6.0f m/s²", state.acceleration));
+ mMaxAccelView.setText(AltosDroid.number("%6.0f m/s²", state.max_acceleration));
if (state.gps != null) {
mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S"));
mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
+ } else {
+ mLatitudeView.setText("");
+ mLongitudeView.setText("");
}
- mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense));
- mApogeeLights.set(state.drogue_sense > 3.2);
+ mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense));
+ mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosRecord.MISSING);
- mMainVoltageView.setText(String.format("%4.2f V", state.main_sense));
- mMainLights.set(state.main_sense > 3.2);
+ mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense));
+ mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosRecord.MISSING);
}
}
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java
index 49774a30..09e7169b 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java
@@ -91,14 +91,14 @@ public class TabDescent extends Fragment implements AltosDroidTab {
public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) {
if (state != null) {
- mSpeedView.setText(String.format("%6.0f m/s", state.speed()));
- mHeightView.setText(String.format("%6.0f m", state.height));
+ mSpeedView.setText(AltosDroid.number("%6.0f m/s", state.speed()));
+ mHeightView.setText(AltosDroid.number("%6.0f m", state.height));
if (from_receiver != null) {
- mElevationView.setText(String.format("%3.0f°", from_receiver.elevation));
- mRangeView.setText(String.format("%6.0f m", from_receiver.range));
- mBearingView.setText(String.format("%3.0f°", from_receiver.bearing));
+ mElevationView.setText(AltosDroid.number("%3.0f°", from_receiver.elevation));
+ mRangeView.setText(AltosDroid.number("%6.0f m", from_receiver.range));
+ mBearingView.setText(AltosDroid.number("%3.0f°", from_receiver.bearing));
mCompassView.setText(from_receiver.bearing_words(AltosGreatCircle.BEARING_LONG));
- mDistanceView.setText(String.format("%6.0f m", from_receiver.distance));
+ mDistanceView.setText(AltosDroid.number("%6.0f m", from_receiver.distance));
} else {
mElevationView.setText("<unknown>");
mRangeView.setText("<unknown>");
@@ -111,11 +111,11 @@ public class TabDescent extends Fragment implements AltosDroidTab {
mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
}
- mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense));
- mApogeeLights.set(state.drogue_sense > 3.2);
+ mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense));
+ mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosRecord.MISSING);
- mMainVoltageView.setText(String.format("%4.2f V", state.main_sense));
- mMainLights.set(state.main_sense > 3.2);
+ mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense));
+ mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosRecord.MISSING);
}
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
index 3c168e37..8b3c4012 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
@@ -103,14 +103,14 @@ public class TabPad extends Fragment implements AltosDroidTab {
public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) {
if (state != null) {
- mBatteryVoltageView.setText(String.format("%4.2f V", state.battery));
- mBatteryLights.set(state.battery > 3.7);
+ mBatteryVoltageView.setText(AltosDroid.number("%4.2f V", state.battery));
+ mBatteryLights.set(state.battery > 3.7, state.battery == AltosRecord.MISSING);
- mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense));
- mApogeeLights.set(state.drogue_sense > 3.2);
+ mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense));
+ mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosRecord.MISSING);
- mMainVoltageView.setText(String.format("%4.2f V", state.main_sense));
- mMainLights.set(state.main_sense > 3.2);
+ mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense));
+ mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosRecord.MISSING);
if (state.data.flight != 0) {
if (state.data.state <= AltosLib.ao_flight_pad)
@@ -122,17 +122,18 @@ public class TabPad extends Fragment implements AltosDroidTab {
} else {
mDataLoggingView.setText("Storage full");
}
- mDataLoggingLights.set(state.data.flight != 0);
+ mDataLoggingLights.set(state.data.flight != 0, state.data.flight != AltosRecord.MISSING);
if (state.gps != null) {
- mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat));
- mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4);
+ mGPSLockedView.setText(AltosDroid.number("%4d sats", state.gps.nsat));
+ mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4, false);
if (state.gps_ready)
mGPSReadyView.setText("Ready");
else
- mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting));
- mGPSReadyLights.set(state.gps_ready);
- }
+ mGPSReadyView.setText(AltosDroid.number("Waiting %d", state.gps_waiting));
+ } else
+ mGPSLockedLights.set(false, true);
+ mGPSReadyLights.set(state.gps_ready, state.gps == null);
}
if (receiver != null) {
@@ -141,7 +142,7 @@ public class TabPad extends Fragment implements AltosDroidTab {
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));
+ mPadAltitudeView.setText(AltosDroid.number("%4.0f m", altitude));
}
}