X-Git-Url: http://www.average.org/gitweb/?p=WhereAmI.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fwhereami%2FLastLocation.java;fp=src%2Forg%2Faverage%2Fwhereami%2FLastLocation.java;h=52b909894b0eebae750dd3e86a314160b313b10c;hp=0000000000000000000000000000000000000000;hb=bfc8f9db47cf00565026d44bc27d84def51f4a94;hpb=62e7e03b8b4efdaee9f5b718b1ae656f4821aa45 diff --git a/src/org/average/whereami/LastLocation.java b/src/org/average/whereami/LastLocation.java new file mode 100644 index 0000000..52b9098 --- /dev/null +++ b/src/org/average/whereami/LastLocation.java @@ -0,0 +1,74 @@ +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 com.google.api.client.auth.oauth2.draft10.AccessTokenResponse; +import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.http.javanet.NetHttpTransport; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson.JacksonFactory; +import com.google.api.services.latitude.Latitude; +import com.google.api.services.latitude.LatitudeRequest; +import com.google.api.services.latitude.model.Location; + +import android.content.Context; +import android.content.SharedPreferences; +import android.util.Log; + +public final class LastLocation extends Oracle { + + final String TAG = getClass().getName(); + + private Latitude latitude; + + public LastLocation(CredentialStore store) { + HttpTransport transport = new NetHttpTransport(); + JsonFactory jsonFactory = new JacksonFactory(); + AccessTokenResponse token = store.read(); + GoogleAccessProtectedResource accessProtectedResource = + new GoogleAccessProtectedResource( + token.accessToken, + transport, jsonFactory, + ClientCredentials.CLIENT_ID, + ClientCredentials.CLIENT_SECRET, + token.refreshToken) + //{ + //@Override + //public void onAccessToken(String accessToken) { + // store.updateAccessToken(accessToken); + // } + //} + ; + Latitude.Builder lbldr = Latitude.builder(transport, + jsonFactory); + lbldr.setHttpRequestInitializer(accessProtectedResource); + lbldr.setApplicationName("WhereAmI/1.0"); + latitude = lbldr.build(); + } + + @Override + public final String getResult() { + try { + Latitude.CurrentLocation.Get request = + latitude.currentLocation().get(); + request.setGranularity("best"); + Location currentLocation = request.execute(); + return locationMessage(currentLocation); + } catch (Exception ex) { + return ex.getMessage(); + } + } + + private String locationMessage(Location currentLocation) { + // lat = currentLocation.getLatitude(); + // lon = currentLocation.getLongitude(); + // tsm = currentLocation.getTimestampMs(); + return "Current location: " + currentLocation; + } +}