X-Git-Url: http://www.average.org/gitweb/?p=WhereAmI.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fwhereami%2FLastLocation.java;h=f911b6bd3e6412dc72281d3b74141204ae6b21fa;hp=98b7cf09fd84a9d22e75d2c458fd14471e3b695e;hb=fc90003666d07349f68ef0382b1e318a3ff2a3d3;hpb=ff11b2008ca666c719643b54a3825653168ca6da diff --git a/src/org/average/whereami/LastLocation.java b/src/org/average/whereami/LastLocation.java index 98b7cf0..f911b6b 100644 --- a/src/org/average/whereami/LastLocation.java +++ b/src/org/average/whereami/LastLocation.java @@ -3,21 +3,15 @@ package org.average.whereami; import org.average.whereami.CredentialStore; import java.lang.Math; +import java.io.IOException; -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.googleapis.json.GoogleJsonResponseException; 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; -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.content.res.Resources; import android.text.format.Time; import android.util.Log; @@ -41,6 +35,7 @@ public final class LastLocation extends Oracle { private String hours5up; public LastLocation(final Resources res, final CredentialStore 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); @@ -53,37 +48,9 @@ public final class LastLocation extends Oracle { hours2to4 = res.getString(R.string.hours2to4); hours5up = res.getString(R.string.hours5up); - 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, - transport, jsonFactory, - ClientCredentials.CLIENT_ID, - ClientCredentials.CLIENT_SECRET, - token.refreshToken) - { - @Override - public void onAccessToken( - String accessToken) { - Log.v(TAG, "Update access token to \"" + accessToken + "\""); - store.updateAccessToken( - accessToken); - } - } - ; - Latitude.Builder lbldr = Latitude.builder(transport, - jsonFactory); - lbldr.setHttpRequestInitializer(accessProtectedResource); - lbldr.setApplicationName("WhereAmI/1.0"); - latitude = lbldr.build(); + latitude = Latitude.builder(httpTransport, jsonFactory) + .setHttpRequestInitializer(accessProtectedResource) + .setApplicationName("WhereAmI/1.0").build(); } @Override @@ -101,10 +68,19 @@ public final class LastLocation extends Oracle { 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(); + } catch (GoogleJsonResponseException e) { + Log.v(TAG, "GoogleJsonResponseException: " + e); + if (e.getResponse().getStatusCode() == 401) { + return authErrorMessage; + } else { + return e.getMessage(); + } + } catch (HttpResponseException e) { + Log.v(TAG, "HttpResponseException: " + e); + return e.getMessage(); + } catch (IOException e) { + e.printStackTrace(); + return e.getMessage(); } }