import java.lang.ref.WeakReference;
import java.util.concurrent.TimeoutException;
+import java.io.*;
import java.util.*;
import android.app.*;
import android.widget.Toast;
import androidx.core.app.NotificationCompat;
-import org.altusmetrum.altoslib_13.*;
+import org.altusmetrum.altoslib_14.*;
public class TelemetryService extends Service implements AltosIdleMonitorListener {
case MSG_SETFREQUENCY:
AltosDebug.debug("MSG_SETFREQUENCY");
s.telemetry_state.frequency = (Double) msg.obj;
- if (s.telemetry_state.connect == TelemetryState.CONNECT_CONNECTED) {
+ if (s.idle_monitor != null) {
+ s.idle_monitor.set_frequency(s.telemetry_state.frequency);
+ } else if (s.telemetry_state.connect == TelemetryState.CONNECT_CONNECTED) {
try {
s.altos_link.set_radio_frequency(s.telemetry_state.frequency);
s.altos_link.save_frequency();
send_idle_mode_to_client(client);
}
+ private void send_file_failed_to_client(Messenger client, File f) {
+ Message m = Message.obtain(null, AltosDroid.MSG_FILE_FAILED, f);
+ try {
+ client.send(m);
+ } catch (RemoteException e) {
+ AltosDebug.error("Client %s disappeared", client.toString());
+ remove_client(client);
+ }
+ }
+
+ public void send_file_failed_to_clients(File f) {
+ for (Messenger client : clients)
+ send_file_failed_to_client(client, f);
+ }
+
private void telemetry_start() {
if (telemetry_reader == null && idle_monitor == null && !ignite_running) {
telemetry_reader = new TelemetryReader(altos_link, handler);
}
private void start_altos_bluetooth(DeviceAddress address, boolean pause) {
- if (bluetooth_adapter == null || !bluetooth_adapter.isEnabled())
+ if (bluetooth_adapter == null || !bluetooth_adapter.isEnabled() || address.address == null)
return;
disconnect(false);