diff options
author | Keith Packard <keithp@keithp.com> | 2014-11-15 22:48:15 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-11-15 22:48:15 -0800 |
commit | deda23963586eb07a32f9a3c83a0355178e19340 (patch) | |
tree | 1d5729ea2fe1ea31919eae81a8711ab5322e1b90 | |
parent | e5dd00ef0014364fc059970cc020f209b3b16cf8 (diff) |
altoslib: Add getBytes/putBytes interface to AltosPreferencesBackend
This lets us store arbitrary binary data in the preferences database
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java | 16 | ||||
-rw-r--r-- | altoslib/AltosPreferencesBackend.java | 3 | ||||
-rw-r--r-- | altosuilib/AltosUIPreferencesBackend.java | 8 |
3 files changed, 27 insertions, 0 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java index be41ae7c..09a2a7a2 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java @@ -22,6 +22,7 @@ import java.util.Map; import android.content.Context; import android.content.SharedPreferences; import android.os.Environment; +import android.util.*; import org.altusmetrum.altoslib_5.*; @@ -71,6 +72,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,6 +98,11 @@ 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) { editor.remove(key); } diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index 76a99acb..9bb4c99b 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -33,6 +33,9 @@ public interface AltosPreferencesBackend { public boolean getBoolean(String key, boolean def); public void putBoolean(String key, boolean value); + public byte[] getBytes(String key, byte[] def); + public void putBytes(String key, byte[] value); + public boolean nodeExists(String key); public AltosPreferencesBackend node(String key); diff --git a/altosuilib/AltosUIPreferencesBackend.java b/altosuilib/AltosUIPreferencesBackend.java index 4048fd83..8d4431f1 100644 --- a/altosuilib/AltosUIPreferencesBackend.java +++ b/altosuilib/AltosUIPreferencesBackend.java @@ -62,6 +62,14 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { _preferences.putBoolean(key, value); } + public byte[] getBytes(String key, byte[] def) { + return _preferences.getByteArray(key, def); + } + + public void putBytes(String key, byte[] value) { + _preferences.putByteArray(key, value); + } + public boolean nodeExists(String key) { try { return _preferences.nodeExists(key); |