import android.graphics.*;
import android.graphics.drawable.*;
-import org.altusmetrum.altoslib_7.*;
+import org.altusmetrum.altoslib_10.*;
public class AltosDroid extends FragmentActivity implements AltosUnitsListener {
switch (msg.what) {
case MSG_STATE:
- AltosDebug.debug("MSG_STATE");
if (msg.obj == null) {
AltosDebug.debug("telemetry_state null!");
return;
ad.update_state((TelemetryState) msg.obj);
break;
case MSG_UPDATE_AGE:
- AltosDebug.debug("MSG_UPDATE_AGE");
ad.update_age();
break;
}
AltosGreatCircle from_receiver = null;
if (saved_state != null)
- prev_state = saved_state.state;
+ prev_state = saved_state.state();
if (state != null) {
set_screen_on(state_age(state));
- if (state.state == AltosLib.ao_flight_stateless) {
+ if (state.state() == AltosLib.ao_flight_stateless) {
boolean prev_locked = false;
boolean locked = false;
}
}
} else {
- if (prev_state != state.state) {
+ if (prev_state != state.state()) {
String currentTab = mTabHost.getCurrentTabTag();
- switch (state.state) {
+ switch (state.state()) {
case AltosLib.ao_flight_boost:
if (currentTab.equals(tab_pad_name)) mTabHost.setCurrentTabByTag(tab_flight_name);
break;
else
mFlightView.setText(String.format("%d", state.flight));
}
- if (saved_state == null || state.state != saved_state.state) {
- if (state.state == AltosLib.ao_flight_stateless) {
+ if (saved_state == null || state.state() != saved_state.state()) {
+ if (state.state() == AltosLib.ao_flight_stateless) {
mStateLayout.setVisibility(View.GONE);
} else {
mStateView.setText(state.state_name());
super.onStart();
AltosDebug.debug("++ ON START ++");
+ set_switch_time();
+
noticeIntent(getIntent());
// Start Telemetry Service
public void onStop() {
super.onStop();
AltosDebug.debug("-- ON STOP --");
-
- doUnbindService();
- if (mAltosVoice != null) {
- mAltosVoice.stop();
- mAltosVoice = null;
- }
}
@Override
super.onDestroy();
AltosDebug.debug("--- ON DESTROY ---");
- if (mAltosVoice != null) mAltosVoice.stop();
+ doUnbindService();
+ if (mAltosVoice != null) {
+ mAltosVoice.stop();
+ mAltosVoice = null;
+ }
stop_timer();
}
update_state(null);
}
+ void touch_trackers(Integer[] serials) {
+ AlertDialog.Builder builder_tracker = new AlertDialog.Builder(this);
+ builder_tracker.setTitle("Select Tracker");
+ final String[] trackers = new String[serials.length + 1];
+ trackers[0] = "Auto";
+ for (int i = 0; i < serials.length; i++)
+ trackers[i+1] = String.format("%d", serials[i]);
+ builder_tracker.setItems(trackers,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int item) {
+ if (item == 0)
+ select_tracker(0);
+ else
+ select_tracker(Integer.parseInt(trackers[item]));
+ }
+ });
+ AlertDialog alert_tracker = builder_tracker.create();
+ alert_tracker.show();
+ }
+
void delete_track(int serial) {
try {
mService.send(Message.obtain(null, TelemetryService.MSG_DELETE_SERIAL, (Integer) serial));
static String direction(AltosGreatCircle from_receiver,
Location receiver) {
+ if (from_receiver == null)
+ return null;
+
+ if (receiver == null)
+ return null;
+
if (!receiver.hasBearing())
return null;
else if (iheading < -179 || 179 < iheading)
return "backwards";
else if (iheading < 0)
- return String.format("left %d", -iheading);
+ return String.format("left %d°", -iheading);
else
- return String.format("right %d", iheading);
+ return String.format("right %d°", iheading);
}
}