altosdroid: Change tracker selection dialog
[fw/altos] / altosdroid / app / src / main / java / org / altusmetrum / AltosDroid / AltosDroidPreferences.java
index 8bb78c00dce6fd915551aca270bcbe99e062b648..876abcc49ba00430755be55c40570a221c3fd07b 100644 (file)
@@ -17,9 +17,7 @@
  */
 package org.altusmetrum.AltosDroid;
 
-import java.io.*;
 import java.util.*;
-import java.text.*;
 
 import android.content.Context;
 import org.altusmetrum.altoslib_13.*;
@@ -30,6 +28,15 @@ public class AltosDroidPreferences extends AltosPreferences {
        final static String activeDeviceAddressPreference = "ACTIVE-DEVICE-ADDRESS";
        final static String activeDeviceNamePreference = "ACTIVE-DEVICE-NAME";
 
+       public static final int font_size_small = 0;
+       public static final int font_size_medium = 1;
+       public static final int font_size_large = 2;
+       public static final int font_size_extra = 3;
+
+       final static String fontSizePreference = "FONT-SIZE";
+
+       static int font_size = font_size_medium;
+
        static DeviceAddress    active_device_address;
 
        /* Map source preference name */
@@ -40,12 +47,19 @@ 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;
 
                AltosPreferences.init(new AltosDroidPreferencesBackend(context));
 
+               font_size = backend.getInt(fontSizePreference, font_size_medium);
+
                String address = backend.getString(activeDeviceAddressPreference, null);
                String name = backend.getString(activeDeviceNamePreference, null);
 
@@ -53,6 +67,8 @@ 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) {
@@ -109,4 +125,37 @@ public class AltosDroidPreferences extends AltosPreferences {
                        map_source_listeners.remove(l);
                }
        }
+
+       public static int font_size() {
+               synchronized (backend) {
+                       return font_size;
+               }
+       }
+
+       public static void set_font_size(int new_font_size) {
+               synchronized (backend) {
+                       if (font_size != new_font_size) {
+                               font_size = new_font_size;
+                               backend.putInt(fontSizePreference, font_size);
+                               flush_preferences();
+                       }
+               }
+       }
+
+
+       public static int tracker_sort() {
+               synchronized(backend) {
+                       return tracker_sort;
+               }
+       }
+
+       public static void set_tracker_sort(int new_tracker_sort) {
+               synchronized(backend) {
+                       if (tracker_sort != new_tracker_sort) {
+                               tracker_sort = new_tracker_sort;
+                               backend.putInt(trackerSortPreference, tracker_sort);
+                               flush_preferences();
+                       }
+               }
+       }
 }