X-Git-Url: http://www.average.org/gitweb/?p=WhereAmI.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fwhereami%2FLastLocation.java;h=c5791160298ab42ece4bf5f4950b100561938a6c;hp=76e8ef28c73e02c82288f2a71eaefd0398592e69;hb=6a4744c5765e743aa4057f5fcf5571e6ed8abafe;hpb=9cc761c03fc2da437a596df5c6cbec3cd01fcf2a diff --git a/src/org/average/whereami/LastLocation.java b/src/org/average/whereami/LastLocation.java index 76e8ef2..c579116 100644 --- a/src/org/average/whereami/LastLocation.java +++ b/src/org/average/whereami/LastLocation.java @@ -1,5 +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; @@ -21,8 +24,6 @@ public final class LastLocation extends Oracle { final String TAG = getClass().getName(); - private Latitude latitude; - private String[] loc_names; private String[] loc_lats; private String[] loc_lons; @@ -30,24 +31,26 @@ public final class LastLocation extends Oracle { private String myname; private String registered; private SayWhen sayWhen; + private Latitude latitude; - public LastLocation(final Resources res, final PersistentStore store) { - super(res, store); - loc_names = res.getStringArray(R.array.loc_names); - loc_lats = res.getStringArray(R.array.loc_lats); - loc_lons = res.getStringArray(R.array.loc_lons); - loc_dists = res.getStringArray(R.array.loc_dists); - myname = res.getString(R.string.myname); - registered = res.getString(R.string.registered); - sayWhen = new SayWhen(res); - - latitude = Latitude.builder(httpTransport, jsonFactory) - .setHttpRequestInitializer(accessProtectedResource) + public LastLocation(APIBase base) { + super(base); + loc_names = base.res.getStringArray(R.array.loc_names); + loc_lats = base.res.getStringArray(R.array.loc_lats); + loc_lons = base.res.getStringArray(R.array.loc_lons); + loc_dists = base.res.getStringArray(R.array.loc_dists); + myname = base.res.getString(R.string.myname); + registered = base.res.getString(R.string.registered); + sayWhen = new SayWhen(base.res); + latitude = Latitude.builder(base.httpTransport, + base.jsonFactory) + .setHttpRequestInitializer( + base.accessProtectedResource) .setApplicationName("WhereAmI/1.0").build(); } @Override - public final String getResult() { + public final Utterance getResult() { try { Log.v(TAG, "entering getResult"); Latitude.CurrentLocation.Get request = @@ -60,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 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()); } }