Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / altosdroid / app / src / main / java / org / altusmetrum / AltosDroid / AltosDroidPreferences.java
index f23955685389d43ed93bf4e12adf626676a375e2..4d9204d9ac79c71b210e3a53d54467d999a6aa0f 100644 (file)
@@ -20,7 +20,7 @@ package org.altusmetrum.AltosDroid;
 import java.util.*;
 
 import android.content.Context;
-import org.altusmetrum.altoslib_13.*;
+import org.altusmetrum.altoslib_14.*;
 
 public class AltosDroidPreferences extends AltosPreferences {
 
@@ -47,6 +47,11 @@ public class AltosDroidPreferences extends AltosPreferences {
 
        static int      map_source;
 
+       /* Tracker sort selection */
+       final static String trackerSortPreference = "TRACKER-SORT";
+
+       static int      tracker_sort;
+
        public static void init(Context context) {
                if (backend != null)
                        return;
@@ -62,9 +67,13 @@ public class AltosDroidPreferences extends AltosPreferences {
                        active_device_address = new DeviceAddress (address, name);
 
                map_source = backend.getInt(mapSourcePreference, MAP_SOURCE_ONLINE);
+
+               tracker_sort = backend.getInt(trackerSortPreference, 0);
        }
 
        public static void set_active_device(DeviceAddress address) {
+               if (backend == null)
+                       return;
                synchronized(backend) {
                        active_device_address = address;
                        if (active_device_address != null) {
@@ -79,6 +88,9 @@ public class AltosDroidPreferences extends AltosPreferences {
        }
 
        public static DeviceAddress active_device() {
+               if (backend == null)
+                       return null;
+
                synchronized(backend) {
                        return active_device_address;
                }
@@ -87,6 +99,8 @@ public class AltosDroidPreferences extends AltosPreferences {
        static LinkedList<AltosDroidMapSourceListener> map_source_listeners;
 
        public static void set_map_source(int map_source) {
+               if (backend == null)
+                       return;
                synchronized(backend) {
                        AltosDroidPreferences.map_source = map_source;
                        backend.putInt(mapSourcePreference, map_source);
@@ -100,12 +114,17 @@ public class AltosDroidPreferences extends AltosPreferences {
        }
 
        public static int map_source() {
+               if (backend == null)
+                       return MAP_SOURCE_ONLINE;
                synchronized(backend) {
                        return map_source;
                }
        }
 
        public static void register_map_source_listener(AltosDroidMapSourceListener l) {
+               if (backend == null)
+                       return;
+
                synchronized(backend) {
                        if (map_source_listeners == null)
                                map_source_listeners = new LinkedList<AltosDroidMapSourceListener>();
@@ -114,18 +133,25 @@ public class AltosDroidPreferences extends AltosPreferences {
        }
 
        public static void unregister_map_source_listener(AltosDroidMapSourceListener l) {
+               if (backend == null)
+                       return;
                synchronized(backend) {
                        map_source_listeners.remove(l);
                }
        }
 
        public static int font_size() {
+               if (backend == null)
+                       return font_size_medium;
+
                synchronized (backend) {
                        return font_size;
                }
        }
 
        public static void set_font_size(int new_font_size) {
+               if (backend == null)
+                       return;
                synchronized (backend) {
                        if (font_size != new_font_size) {
                                font_size = new_font_size;
@@ -134,4 +160,27 @@ public class AltosDroidPreferences extends AltosPreferences {
                        }
                }
        }
+
+
+       public static int tracker_sort() {
+               if (backend == null)
+                       return 0;
+
+               synchronized(backend) {
+                       return tracker_sort;
+               }
+       }
+
+       public static void set_tracker_sort(int new_tracker_sort) {
+               if (backend == null)
+                       return;
+
+               synchronized(backend) {
+                       if (tracker_sort != new_tracker_sort) {
+                               tracker_sort = new_tracker_sort;
+                               backend.putInt(trackerSortPreference, tracker_sort);
+                               flush_preferences();
+                       }
+               }
+       }
 }