diff options
Diffstat (limited to 'altosdroid/src')
| -rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 8 | ||||
| -rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java | 6 | 
2 files changed, 9 insertions, 5 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 385348ea..a62bf7fe 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -825,9 +825,9 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,  		}  	} -	private void disconnectDevice() { +	private void disconnectDevice(boolean remember) {  		try { -			mService.send(Message.obtain(null, TelemetryService.MSG_DISCONNECT, null)); +			mService.send(Message.obtain(null, TelemetryService.MSG_DISCONNECT, (Boolean) remember));  		} catch (RemoteException e) {  		}  	} @@ -978,11 +978,11 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,  		case R.id.disconnect:  			/* Disconnect the device  			 */ -			disconnectDevice(); +			disconnectDevice(false);  			return true;  		case R.id.quit:  			AltosDebug.debug("R.id.quit"); -			disconnectDevice(); +			disconnectDevice(true);  			finish();  			return true;  		case R.id.setup: diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 6519a114..dc39c899 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -129,7 +129,8 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene  			case MSG_DISCONNECT:  				AltosDebug.debug("Disconnect command received");  				s.address = null; -				AltosDroidPreferences.set_active_device(null); +				if (!(Boolean) msg.obj) +					AltosDroidPreferences.set_active_device(null);  				s.disconnect(true);  				break;  			case MSG_DELETE_SERIAL: @@ -613,6 +614,8 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene  		telemetry_state.latest_serial = AltosPreferences.latest_state(); +		AltosDebug.debug("latest serial %d\n", telemetry_state.latest_serial); +  		for (int serial : serials) {  			AltosState saved_state = AltosPreferences.state(serial);  			if (saved_state != null) { @@ -629,6 +632,7 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene  				telemetry_state.states.put(serial, saved_state);  			} else {  				AltosDebug.debug("Failed to recover state for %d", serial); +				AltosPreferences.remove_state(serial);  			}  		}  	}  | 
