Bump java library versions
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / AltosDroid.java
index d276798eb929e0665e3ea416d4b3abfda0380a31..53963f25a2c5ac27a5599c12ded0ad7e71d5cdb9 100644 (file)
@@ -52,9 +52,9 @@ import android.widget.Toast;
 import android.app.AlertDialog;
 import android.location.Location;
 
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
 
-public class AltosDroid extends FragmentActivity {
+public class AltosDroid extends FragmentActivity implements AltosUnitsListener {
        // Debugging
        static final String TAG = "AltosDroid";
        static final boolean D = true;
@@ -187,6 +187,11 @@ public class AltosDroid extends FragmentActivity {
                mTabs.remove(mTab);
        }
 
+       public void units_changed(boolean imperial_units) {
+               for (AltosDroidTab mTab : mTabs)
+                       mTab.units_changed(imperial_units);
+       }
+
        void update_title(TelemetryState telemetry_state) {
                switch (telemetry_state.connect) {
                case TelemetryState.CONNECT_CONNECTED:
@@ -226,7 +231,15 @@ public class AltosDroid extends FragmentActivity {
                }
        }
 
+       boolean registered_units_listener;
+
        void update_state(TelemetryState telemetry_state) {
+
+               if (!registered_units_listener) {
+                       registered_units_listener = true;
+                       AltosPreferences.register_units_listener(this);
+               }
+
                update_title(telemetry_state);
                update_ui(telemetry_state.state, telemetry_state.location);
                if (telemetry_state.connect == TelemetryState.CONNECT_CONNECTED)
@@ -324,7 +337,10 @@ public class AltosDroid extends FragmentActivity {
                        }
                        if (saved_state == null || state.flight != saved_state.flight) {
                                Log.d(TAG, "update flight");
-                               mFlightView.setText(String.format("%d", state.flight));
+                               if (state.flight == AltosLib.MISSING)
+                                       mFlightView.setText("");
+                               else
+                                       mFlightView.setText(String.format("%d", state.flight));
                        }
                        if (saved_state == null || state.state != saved_state.state) {
                                Log.d(TAG, "update state");
@@ -656,6 +672,10 @@ public class AltosDroid extends FragmentActivity {
                        AlertDialog alert_rate = builder_rate.create();
                        alert_rate.show();
                        return true;
+               case R.id.change_units:
+                       boolean imperial = AltosPreferences.imperial_units();
+                       AltosPreferences.set_imperial_units(!imperial);
+                       return true;
                }
                return false;
        }