altosdroid: Update UI even if no telem has been received. Center map.
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / TabLanded.java
index c346dc991763cdfec4e69a45ea1f0e9146ead798..f42b46b55520d7fbf8551e676ddda47dfebafe41 100644 (file)
@@ -33,8 +33,10 @@ public class TabLanded extends Fragment implements AltosDroidTab {
 
        private TextView mBearingView;
        private TextView mDistanceView;
-       private TextView mLatitudeView;
-       private TextView mLongitudeView;
+       private TextView mTargetLatitudeView;
+       private TextView mTargetLongitudeView;
+       private TextView mReceiverLatitudeView;
+       private TextView mReceiverLongitudeView;
        private TextView mMaxHeightView;
        private TextView mMaxSpeedView;
        private TextView mMaxAccelView;
@@ -53,8 +55,10 @@ public class TabLanded extends Fragment implements AltosDroidTab {
 
                mBearingView   = (TextView) v.findViewById(R.id.bearing_value);
                mDistanceView  = (TextView) v.findViewById(R.id.distance_value);
-               mLatitudeView  = (TextView) v.findViewById(R.id.lat_value);
-               mLongitudeView = (TextView) v.findViewById(R.id.lon_value);
+               mTargetLatitudeView  = (TextView) v.findViewById(R.id.target_lat_value);
+               mTargetLongitudeView = (TextView) v.findViewById(R.id.target_lon_value);
+               mReceiverLatitudeView  = (TextView) v.findViewById(R.id.receiver_lat_value);
+               mReceiverLongitudeView = (TextView) v.findViewById(R.id.receiver_lon_value);
                mMaxHeightView = (TextView) v.findViewById(R.id.max_height_value);
                mMaxSpeedView  = (TextView) v.findViewById(R.id.max_speed_value);
                mMaxAccelView  = (TextView) v.findViewById(R.id.max_accel_value);
@@ -74,13 +78,21 @@ public class TabLanded extends Fragment implements AltosDroidTab {
                        mBearingView.setText(String.format("%3.0f°", from_receiver.bearing));
                        mDistanceView.setText(String.format("%6.0f m", from_receiver.distance));
                }
-               if (state.gps != null) {
-                       mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S"));
-                       mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
+               if (state != null && state.gps != null) {
+                       mTargetLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S"));
+                       mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
+               }
+
+               if (receiver != null) {
+                       mReceiverLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S"));
+                       mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E"));
+               }
+              
+               if (state != null) {
+                       mMaxHeightView.setText(String.format("%6.0f m", state.max_height));
+                       mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration));
+                       mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed()));
                }
-               mMaxHeightView.setText(String.format("%6.0f m", state.max_height));
-               mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration));
-               mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed()));
        }
 
 }