X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroid.java;h=e883322c57c23fff1580b21d51cd098a31b8f81e;hb=5aae1446026a08bf8f09c56b960545eff30a8bd1;hp=d276798eb929e0665e3ea416d4b3abfda0380a31;hpb=3842735e303f0bf6f46ed8cb659c92d8bb9bd137;p=fw%2Faltos diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index d276798e..e883322c 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -54,7 +54,7 @@ import android.location.Location; import org.altusmetrum.altoslib_5.*; -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; }