From 45bcf595d0a6a6001459f7f2055cd15e4839550b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 19 Apr 2016 23:17:01 -0400 Subject: [PATCH] altoslib: Add debugging to AltosPreferences.state() etc This let me find why AltosDroid was losing the last state information for each target. Signed-off-by: Keith Packard --- .../AltosDroidPreferencesBackend.java | 4 ++++ altoslib/AltosPreferences.java | 19 ++++++++++++++++++- altoslib/AltosPreferencesBackend.java | 2 ++ altosuilib/AltosUIPreferencesBackend.java | 4 ++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java index 14e6ce73..eeccd090 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java @@ -120,4 +120,8 @@ public class AltosDroidPreferencesBackend implements AltosPreferencesBackend { public File homeDirectory() { return Environment.getExternalStorageDirectory(); } + + public void debug(String format, Object ... arguments) { + AltosDebug.debug(format, arguments); + } } diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 91cfc6b6..4de7e87f 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -351,6 +351,11 @@ public class AltosPreferences { public static void set_state(int serial, AltosState state, AltosListenerState listener_state) { + backend.debug("set_state for %d pos %g,%g\n", + serial, + state.gps != null ? state.gps.lat : 0.0, + state.gps != null ? state.gps.lon : 0.0); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { @@ -367,6 +372,7 @@ public class AltosPreferences { flush_preferences(); } } catch (IOException ie) { + backend.debug("set_state failed %s\n", ie.toString()); } } @@ -376,6 +382,7 @@ public class AltosPreferences { for (String key : keys) { if (key.startsWith(statePreferenceHead)) { + backend.debug("list_states %s\n", key); try { int serial = AltosParse.parse_int(key.substring(statePreferenceHead.length())); states.add(serial); @@ -403,21 +410,31 @@ public class AltosPreferences { public static AltosSavedState state(int serial) { byte[] bytes = null; + backend.debug("get state %d\n", serial); + synchronized(backend) { bytes = backend.getBytes(String.format(statePreferenceFormat, serial), null); } - if (bytes == null) + if (bytes == null) { + backend.debug("no state for %d\n", serial); return null; + } ByteArrayInputStream bais = new ByteArrayInputStream(bytes); try { ObjectInputStream ois = new ObjectInputStream(bais); AltosSavedState saved_state = (AltosSavedState) ois.readObject(); + backend.debug("got saved state for %d: %g,%g\n", + serial, + saved_state.state.gps != null ? saved_state.state.gps.lat : 0.0, + saved_state.state.gps != null ? saved_state.state.gps.lon : 0.0); return saved_state; } catch (IOException ie) { + backend.debug("IO exception %s\n", ie.toString()); } catch (ClassNotFoundException ce) { + backend.debug("ClassNotFoundException %s\n", ce.toString()); } return null; } diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index f43c2ec9..5337527f 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -45,4 +45,6 @@ public interface AltosPreferencesBackend { public void flush(); public File homeDirectory(); + + public void debug(String format, Object ... arguments); } diff --git a/altosuilib/AltosUIPreferencesBackend.java b/altosuilib/AltosUIPreferencesBackend.java index 6d7aa88b..0b01dea6 100644 --- a/altosuilib/AltosUIPreferencesBackend.java +++ b/altosuilib/AltosUIPreferencesBackend.java @@ -106,4 +106,8 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { /* Use the file system view default directory */ return FileSystemView.getFileSystemView().getDefaultDirectory(); } + + public void debug(String format, Object ... arguments) { + System.out.printf(format, arguments); + } } -- 2.30.2