]> www.average.org Git - WhereAmI.git/blobdiff - src/org/average/whereami/LastLocation.java
use http transport that does not crash,
[WhereAmI.git] / src / org / average / whereami / LastLocation.java
index 52b909894b0eebae750dd3e86a314160b313b10c..230b8488fcc67b9b172384216c1aa7ec863d9d47 100644 (file)
@@ -1,14 +1,13 @@
 package org.average.whereami;
 
 import org.average.whereami.CredentialStore;
-//import org.average.whereami.WhereAmIAccessResource;
 
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+//import java.lang.Long;
 
+import com.google.api.client.extensions.android2.AndroidHttp;
 import com.google.api.client.auth.oauth2.draft10.AccessTokenResponse;
 import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource;
+import com.google.api.client.http.HttpResponseException;
 import com.google.api.client.http.HttpTransport;
 import com.google.api.client.http.javanet.NetHttpTransport;
 import com.google.api.client.json.JsonFactory;
@@ -27,10 +26,16 @@ public final class LastLocation extends Oracle {
 
        private Latitude latitude;
 
-       public LastLocation(CredentialStore store) {
-               HttpTransport transport = new NetHttpTransport();
+       public LastLocation(final CredentialStore store) {
+               HttpTransport transport = AndroidHttp.newCompatibleTransport();
                JsonFactory jsonFactory = new JacksonFactory();
                AccessTokenResponse token = store.read();
+               Log.v(TAG, "tokens - access: \"" + token.accessToken +
+                       "\", refresh: \"" + token.refreshToken +
+                       "\", client_id: \"" + ClientCredentials.CLIENT_ID +
+                       "\", client_secret: \"" +
+                                       ClientCredentials.CLIENT_SECRET +
+                       "\"");
                GoogleAccessProtectedResource accessProtectedResource =
                        new GoogleAccessProtectedResource(
                                token.accessToken,
@@ -38,12 +43,15 @@ public final class LastLocation extends Oracle {
                                ClientCredentials.CLIENT_ID,
                                ClientCredentials.CLIENT_SECRET,
                                token.refreshToken)
-                               //{
-                               //@Override
-                               //public void onAccessToken(String accessToken) {
-                               //      store.updateAccessToken(accessToken);
-                               //  }
-                               //}
+                               {
+                                       @Override
+                                       public void onAccessToken(
+                                                       String accessToken) {
+                                               Log.v(TAG, "Update access token to \"" + accessToken + "\"");
+                                               store.updateAccessToken(
+                                                       accessToken);
+                                       }
+                               }
                                ;
                Latitude.Builder lbldr = Latitude.builder(transport,
                                                                jsonFactory);
@@ -55,20 +63,28 @@ public final class LastLocation extends Oracle {
        @Override
        public final String getResult() {
                try {
+                       Log.v(TAG, "entering getResult");
                        Latitude.CurrentLocation.Get request =
                                latitude.currentLocation().get();
                        request.setGranularity("best");
-                       Location currentLocation = request.execute();
-                       return locationMessage(currentLocation);
+                       Location cloc = request.execute();
+                       Double lat = Double.parseDouble(
+                                       cloc.getLatitude().toString());
+                       Double lon = Double.parseDouble(
+                                       cloc.getLongitude().toString());
+                       Long tsm = Long.parseLong(
+                                       cloc.getTimestampMs().toString());
+                       return locationMessage(lat, lon, tsm);
                 } catch (Exception ex) {
+                       Log.v(TAG, "exception in getResult: " + ex);
+                       ex.printStackTrace();
                        return ex.getMessage();
                 }
        }
 
-       private String locationMessage(Location currentLocation) {
-               // lat = currentLocation.getLatitude();
-               // lon = currentLocation.getLongitude();
-               // tsm = currentLocation.getTimestampMs();
-               return "Current location: " + currentLocation;
+       private String locationMessage(Double lat, Double lon, Long tsm) {
+               Log.v(TAG, "entering locationMessage(" + lat +
+                               "," + lon + "," + tsm + ")");
+               return "Location: " + lat + "N " + lon + "E at " + tsm/1000;
        }
 }