1 package org.average.whereami;
3 import org.average.whereami.CredentialStore;
4 //import org.average.whereami.WhereAmIAccessResource;
6 import java.text.DateFormat;
7 import java.text.SimpleDateFormat;
10 import com.google.api.client.auth.oauth2.draft10.AccessTokenResponse;
11 import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource;
12 import com.google.api.client.http.HttpTransport;
13 import com.google.api.client.http.javanet.NetHttpTransport;
14 import com.google.api.client.json.JsonFactory;
15 import com.google.api.client.json.jackson.JacksonFactory;
16 import com.google.api.services.latitude.Latitude;
17 import com.google.api.services.latitude.LatitudeRequest;
18 import com.google.api.services.latitude.model.Location;
20 import android.content.Context;
21 import android.content.SharedPreferences;
22 import android.util.Log;
24 public final class LastLocation extends Oracle {
26 final String TAG = getClass().getName();
28 private Latitude latitude;
30 public LastLocation(CredentialStore store) {
31 HttpTransport transport = new NetHttpTransport();
32 JsonFactory jsonFactory = new JacksonFactory();
33 AccessTokenResponse token = store.read();
34 GoogleAccessProtectedResource accessProtectedResource =
35 new GoogleAccessProtectedResource(
37 transport, jsonFactory,
38 ClientCredentials.CLIENT_ID,
39 ClientCredentials.CLIENT_SECRET,
43 //public void onAccessToken(String accessToken) {
44 // store.updateAccessToken(accessToken);
48 Latitude.Builder lbldr = Latitude.builder(transport,
50 lbldr.setHttpRequestInitializer(accessProtectedResource);
51 lbldr.setApplicationName("WhereAmI/1.0");
52 latitude = lbldr.build();
56 public final String getResult() {
58 Latitude.CurrentLocation.Get request =
59 latitude.currentLocation().get();
60 request.setGranularity("best");
61 Location currentLocation = request.execute();
62 return locationMessage(currentLocation);
63 } catch (Exception ex) {
64 return ex.getMessage();
68 private String locationMessage(Location currentLocation) {
69 // lat = currentLocation.getLatitude();
70 // lon = currentLocation.getLongitude();
71 // tsm = currentLocation.getTimestampMs();
72 return "Current location: " + currentLocation;