X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroidPreferencesBackend.java;h=2e6ccb34e2227277910bbf1237392ff404980287;hp=be41ae7cf35b345b157d11127730c73971618bdc;hb=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a;hpb=8c212cd5bfa03f71a31d84bd0051314e77d88461 diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java index be41ae7c..2e6ccb34 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -22,10 +23,11 @@ import java.util.Map; import android.content.Context; import android.content.SharedPreferences; import android.os.Environment; +import android.util.*; -import org.altusmetrum.altoslib_5.*; +import org.altusmetrum.altoslib_11.*; -public class AltosDroidPreferencesBackend implements AltosPreferencesBackend { +public class AltosDroidPreferencesBackend extends AltosPreferencesBackend { public final static String NAME = "org.altusmetrum.AltosDroid"; private Context context = null; private SharedPreferences prefs = null; @@ -43,10 +45,17 @@ public class AltosDroidPreferencesBackend implements AltosPreferencesBackend { public String[] keys() { Map all = prefs.getAll(); - return (String[])all.keySet().toArray(); + Object[] ao = all.keySet().toArray(); + + String[] as = new String[ao.length]; + for (int i = 0; i < ao.length; i++) + as[i] = (String) ao[i]; + return as; } public AltosPreferencesBackend node(String key) { + if (!nodeExists(key)) + putBoolean(key, true); return new AltosDroidPreferencesBackend(context, key); } @@ -71,6 +80,16 @@ public class AltosDroidPreferencesBackend implements AltosPreferencesBackend { return prefs.getString(key, def); } + public byte[] getBytes(String key, byte[] def) { + String save = prefs.getString(key, null); + + if (save == null) + return def; + + byte[] bytes = Base64.decode(save, Base64.DEFAULT); + return bytes; + } + public void putBoolean(String key, boolean value) { editor.putBoolean(key, value); } @@ -87,7 +106,13 @@ public class AltosDroidPreferencesBackend implements AltosPreferencesBackend { editor.putString(key, value); } + public void putBytes(String key, byte[] bytes) { + String save = Base64.encodeToString(bytes, Base64.DEFAULT); + editor.putString(key, save); + } + public void remove(String key) { + AltosDebug.debug("remove preference %s\n", key); editor.remove(key); } @@ -98,4 +123,8 @@ public class AltosDroidPreferencesBackend implements AltosPreferencesBackend { public File homeDirectory() { return Environment.getExternalStorageDirectory(); } + + public void debug(String format, Object ... arguments) { + AltosDebug.debug(format, arguments); + } }