altosdroid: Check for missing values
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / GoNoGoLights.java
index 0f95bc220a78dcf51a62ed870bec1dfd88acd5f1..8e8d9c03a32c9105f0d6553b461a107d773a785e 100644 (file)
@@ -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 {