diff options
5 files changed, 40 insertions, 3 deletions
| diff --git a/altosdroid/res/menu/option_menu.xml b/altosdroid/res/menu/option_menu.xml index 9cb57dfc..7e08c803 100644 --- a/altosdroid/res/menu/option_menu.xml +++ b/altosdroid/res/menu/option_menu.xml @@ -37,6 +37,9 @@      <item android:id="@+id/map_type"  	  android:icon="@android:drawable/ic_menu_mapmode"  	  android:title="@string/map_type" /> +    <item android:id="@+id/map_source" +	  android:icon="@android:drawable/ic_menu_mapmode" +	  android:title="@string/map_source" />      <item android:id="@+id/select_tracker"  	  android:icon="@android:drawable/ic_menu_view"  	  android:title="@string/select_tracker"/> diff --git a/altosdroid/res/values/strings.xml b/altosdroid/res/values/strings.xml index 0c012819..5a9d9629 100644 --- a/altosdroid/res/values/strings.xml +++ b/altosdroid/res/values/strings.xml @@ -36,6 +36,7 @@  	<string name="select_tracker">Select Tracker</string>  	<string name="delete_track">Delete Track</string>  	<string name="map_type">Map Type</string> +	<string name="map_source">Toggle Online/Offline maps</string>  	<!-- MapTypeActivity -->  	<string name="map_type">Map Type</string> diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 8fe97187..fb669c5d 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -503,12 +503,18 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener {  		return tab_view;  	} +	public void set_map_source() { +	} +  	@Override  	public void onCreate(Bundle savedInstanceState) {  		super.onCreate(savedInstanceState);  		AltosDebug.init(this);  		AltosDebug.debug("+++ ON CREATE +++"); +		// Initialise preferences +		AltosDroidPreferences.init(this); +  		fm = getSupportFragmentManager();  		// Set up the window layout @@ -918,6 +924,12 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener {  			serverIntent = new Intent(this, MapTypeActivity.class);  			startActivityForResult(serverIntent, REQUEST_MAP_TYPE);  			return true; +		case R.id.map_source: +			int source = AltosDroidPreferences.map_source(); +			int new_source = source == AltosDroidPreferences.MAP_SOURCE_ONLINE ? AltosDroidPreferences.MAP_SOURCE_OFFLINE : AltosDroidPreferences.MAP_SOURCE_ONLINE; +			AltosDroidPreferences.set_map_source(new_source); +			set_map_source(); +			return true;  		case R.id.select_tracker:  			if (serials != null) {  				String[] trackers = new String[serials.length]; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java index cda35f1d..6f74014a 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -27,6 +27,14 @@ public class AltosDroidPreferences extends AltosPreferences {  	static DeviceAddress	active_device_address; +	/* Map source preference name */ +	final static String mapSourcePreference = "MAP-SOURCE"; + +	static final int	MAP_SOURCE_OFFLINE = 0; +	static final int	MAP_SOURCE_ONLINE = 1; + +	static int	map_source; +  	public static void init(Context context) {  		if (backend != null)  			return; @@ -38,6 +46,8 @@ public class AltosDroidPreferences extends AltosPreferences {  		if (address != null && name != null)  			active_device_address = new DeviceAddress (address, name); + +		map_source = backend.getInt(mapSourcePreference, MAP_SOURCE_ONLINE);  	}  	public static void set_active_device(DeviceAddress address) { @@ -54,4 +64,18 @@ public class AltosDroidPreferences extends AltosPreferences {  			return active_device_address;  		}  	} + +	public static void set_map_source(int map_source) { +		synchronized(backend) { +			AltosDroidPreferences.map_source = map_source; +			backend.putInt(mapSourcePreference, map_source); +			flush_preferences(); +		} +	} + +	public static int map_source() { +		synchronized(backend) { +			return map_source; +		} +	}  } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 52363430..2d0ae65d 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -449,9 +449,6 @@ public class TelemetryService extends Service implements LocationListener {  			Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show();  		} -		// Initialise preferences -		AltosDroidPreferences.init(this); -  		telemetry_state = new TelemetryState();  		// Create a reference to the NotificationManager so that we can update our notifcation text later | 
