altosdroid: whitespace and import tidyup
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / AltosDroid.java
index b1d080dbb9d67aee5eb986d1e3e4b4d894dab943..3247c91e081b18d0e89c1e693701ee4f36602630 100644 (file)
@@ -37,7 +37,6 @@ import android.os.Message;
 import android.os.Messenger;
 import android.os.RemoteException;
 import android.support.v4.app.FragmentActivity;
-import android.support.v4.view.ViewPager;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -82,9 +81,9 @@ public class AltosDroid extends FragmentActivity {
        private TextView mVersion;
 
        // Tabs
-       TabHost     mTabHost;
-       AltosViewPager   mViewPager;
-       TabsAdapter mTabsAdapter;
+       TabHost         mTabHost;
+       AltosViewPager  mViewPager;
+       TabsAdapter     mTabsAdapter;
        ArrayList<AltosDroidTab> mTabs = new ArrayList<AltosDroidTab>();
 
        // Timer and Saved flight state for Age calculation
@@ -126,7 +125,6 @@ public class AltosDroid extends FragmentActivity {
                                        ad.mTitle.setText(R.string.title_connected_to);
                                        ad.mTitle.append(str);
                                        Toast.makeText(ad.getApplicationContext(), "Connected to " + str, Toast.LENGTH_SHORT).show();
-                                       ad.mAltosVoice.speak("Connected");
                                        break;
                                case TelemetryService.STATE_CONNECTING:
                                        ad.mTitle.setText(R.string.title_connecting);
@@ -206,13 +204,11 @@ public class AltosDroid extends FragmentActivity {
 
        void set_location(Location location) {
                saved_location = location;
-               if (saved_state != null) {
-                       update_ui(saved_state);
-               }
+               update_ui(saved_state);
        }
 
        void update_ui(AltosState state) {
-               if (saved_state != null) {
+               if (state != null && saved_state != null) {
                        if (saved_state.state != state.state) {
                                String currentTab = mTabHost.getCurrentTabTag();
                                switch (state.state) {
@@ -232,25 +228,31 @@ public class AltosDroid extends FragmentActivity {
 
                AltosGreatCircle from_receiver = null;
 
-               if (saved_location != null && state.gps != null && state.gps.locked) {
+               if (state != null && saved_location != null && state.gps != null && state.gps.locked) {
+                       double altitude = 0;
+                       if (saved_location.hasAltitude())
+                               altitude = saved_location.getAltitude();
                        from_receiver = new AltosGreatCircle(saved_location.getLatitude(),
                                                             saved_location.getLongitude(),
-                                                            saved_location.getAltitude(),
+                                                            altitude,
                                                             state.gps.lat,
                                                             state.gps.lon,
                                                             state.gps.alt);
                }
 
-               mCallsignView.setText(state.data.callsign);
-               mSerialView.setText(String.format("%d", state.data.serial));
-               mFlightView.setText(String.format("%d", state.data.flight));
-               mStateView.setText(state.data.state());
-               mRSSIView.setText(String.format("%d", state.data.rssi));
+               if (state != null) {
+                       mCallsignView.setText(state.data.callsign);
+                       mSerialView.setText(String.format("%d", state.data.serial));
+                       mFlightView.setText(String.format("%d", state.data.flight));
+                       mStateView.setText(state.data.state());
+                       mRSSIView.setText(String.format("%d", state.data.rssi));
+               }
 
                for (AltosDroidTab mTab : mTabs)
-                       mTab.update_ui(state, from_receiver);
+                       mTab.update_ui(state, from_receiver, saved_location);
 
-               mAltosVoice.tell(state);
+               if (state != null)
+                       mAltosVoice.tell(state);
        }
 
        private void onTimerTick() {
@@ -262,13 +264,27 @@ 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;
                }
                int deg = (int) Math.floor(p);
                double min = (p - Math.floor(p)) * 60.0;
-               return String.format("%d° %9.6f\" %s", deg, min, h);
+               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);
+       }
+
+       static String integer(String format, int value) {
+               if (value == AltosRecord.MISSING)
+                       return "";
+               return String.format(format, value);
        }
 
        @Override
@@ -309,6 +325,8 @@ public class AltosDroid extends FragmentActivity {
                mTabsAdapter.addTab(mTabHost.newTabSpec("landed").setIndicator("Landed"), TabLanded.class, null);
                mTabsAdapter.addTab(mTabHost.newTabSpec("map").setIndicator("Map"), TabMap.class, null);
 
+               for (int i = 0; i < 5; i++)
+                       mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = 45;
 
                // Set up the custom title
                mTitle = (TextView) findViewById(R.id.title_left_text);