From ee656c9d41238ab2c56859a03fe6b8ce8ff2df4e Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 21 Jun 2015 10:34:00 -0700 Subject: [PATCH] altosdroid: Add map source preference Not hooked up yet. Signed-off-by: Keith Packard --- altosdroid/res/menu/option_menu.xml | 3 +++ altosdroid/res/values/strings.xml | 1 + .../altusmetrum/AltosDroid/AltosDroid.java | 12 ++++++++++ .../AltosDroid/AltosDroidPreferences.java | 24 +++++++++++++++++++ .../AltosDroid/TelemetryService.java | 3 --- 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 @@ + 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 @@ Select Tracker Delete Track Map Type + Toggle Online/Offline maps Map Type 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 -- 2.30.2