]> www.average.org Git - WhereAmI.git/blobdiff - src/org/average/whereami/Oracle.java
make configurable calendar selection
[WhereAmI.git] / src / org / average / whereami / Oracle.java
index 4043451bce61cc35d10764bd7f3bfa501efae3e9..28effd937f81521374ccc0e3302e97f5104fd781 100644 (file)
@@ -1,5 +1,60 @@
 package org.average.whereami;
 
-abstract public class Oracle {
-       abstract String getResult();
+import org.average.whereami.PersistentStore;
+
+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;
+import com.google.api.client.json.jackson.JacksonFactory;
+
+import android.content.res.Resources;
+import android.util.Log;
+
+public class Oracle {
+
+       final String TAG = getClass().getName();
+
+       public HttpTransport httpTransport;
+       public JsonFactory jsonFactory;
+
+       public GoogleAccessProtectedResource accessProtectedResource;
+
+       public String authErrorMessage;
+
+       public Oracle(final Resources res, final PersistentStore store) {
+               authErrorMessage = res.getString(R.string.autherror);
+
+               httpTransport = AndroidHttp.newCompatibleTransport();
+               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 +
+                       "\"");
+               accessProtectedResource = new GoogleAccessProtectedResource(
+                       token.accessToken, httpTransport, 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);
+                               }
+                       };
+       }
+
+       public String getResult() {
+               return "<need to be overriden>";
+       }
 }