X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroidPreferences.java;h=dd86c818b06b5822af48335ca465e23ec69c7fdf;hb=9734f1198429dc8939eebf48b6e6acc1cef96485;hp=cda35f1ddd0e6ae6f17238c61669ddbab8c36602;hpb=cb23b992be8ba40c97d8988c134a814a13ccd58c;p=fw%2Faltos diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java index cda35f1d..dd86c818 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -16,8 +16,12 @@ */ package org.altusmetrum.AltosDroid; +import java.io.*; +import java.util.*; +import java.text.*; + import android.content.Context; -import org.altusmetrum.altoslib_7.*; +import org.altusmetrum.altoslib_10.*; public class AltosDroidPreferences extends AltosPreferences { @@ -27,6 +31,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 +50,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 +68,39 @@ public class AltosDroidPreferences extends AltosPreferences { return active_device_address; } } + + static LinkedList map_source_listeners; + + public static void set_map_source(int map_source) { + synchronized(backend) { + AltosDroidPreferences.map_source = map_source; + backend.putInt(mapSourcePreference, map_source); + flush_preferences(); + } + if (map_source_listeners != null) { + for (AltosDroidMapSourceListener l : map_source_listeners) { + l.map_source_changed(map_source); + } + } + } + + public static int map_source() { + synchronized(backend) { + return map_source; + } + } + + public static void register_map_source_listener(AltosDroidMapSourceListener l) { + synchronized(backend) { + if (map_source_listeners == null) + map_source_listeners = new LinkedList(); + map_source_listeners.add(l); + } + } + + public static void unregister_map_source_listener(AltosDroidMapSourceListener l) { + synchronized(backend) { + map_source_listeners.remove(l); + } + } }