]> www.average.org Git - WhereAmI.git/blobdiff - src/org/average/whereami/LastLocation.java
make one retry on failure
[WhereAmI.git] / src / org / average / whereami / LastLocation.java
index 99911c37afa8398714483de88b1dc4393287bc0c..c5791160298ab42ece4bf5f4950b100561938a6c 100644 (file)
@@ -1,6 +1,8 @@
 package org.average.whereami;
 
 import org.average.whereami.APIBase;
+import org.average.whereami.Oracle;
+import org.average.whereami.Utterance;
 import org.average.whereami.PersistentStore;
 import org.average.whereami.SayWhen;
 
@@ -48,7 +50,7 @@ public final class LastLocation extends Oracle {
        }
 
        @Override
-       public final String getResult() {
+       public final Utterance getResult() {
                try {
                        Log.v(TAG, "entering getResult");
                        Latitude.CurrentLocation.Get request =
@@ -61,20 +63,23 @@ public final class LastLocation extends Oracle {
                                        cloc.getLongitude().toString());
                        Long tsm = Long.parseLong(
                                        cloc.getTimestampMs().toString());
-                       return locationMessage(lat, lon, tsm);
+                       return new Utterance(true,
+                                       locationMessage(lat, lon, tsm));
                } catch (GoogleJsonResponseException e) {
                        Log.e(TAG, "GoogleJsonResponseException: " + e);
                        if (e.getResponse().getStatusCode() == 401) {
-                               return base.authErrorMessage;
+                               return new Utterance(false,
+                                       base.authErrorMessage + "\n" +
+                                       e.getMessage());
                        } else {
-                               return e.getMessage();
+                               return new Utterance(false, e.getMessage());
                        }
                 } catch (HttpResponseException e) {
                        Log.e(TAG, "HttpResponseException: " + e);
-                       return e.getMessage();
+                       return new Utterance(false, e.getMessage());
                } catch (IOException e) {
-                       e.printStackTrace();
-                       return e.getMessage();
+                       Log.e(TAG, "IOException: " + e);
+                       return new Utterance(false, e.getMessage());
                 }
        }