package org.average.whereami;
-import org.average.whereami.PersistentStore;
-
-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.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;
+import org.average.whereami.APIBase;
+import org.average.whereami.Utterance;
abstract public class Oracle {
- final String TAG = getClass().getName();
-
- static public PersistentStore store;
- static public HttpTransport httpTransport =
- AndroidHttp.newCompatibleTransport();
- static public JsonFactory jsonFactory = new JacksonFactory();
- static public String authErrorMessage;
-
- public Oracle(final Resources res, final PersistentStore store) {
- authErrorMessage = res.getString(R.string.autherror);
- this.store = store;
- }
-
- private class MyAccessProtectedResource
- extends GoogleAccessProtectedResource {
-
- public MyAccessProtectedResource(
- String accessToken,
- HttpTransport transport,
- JsonFactory jsonFactory,
- String clientId,
- String clientSecret,
- String refreshToken) {
- super(accessToken, transport, jsonFactory,
- clientId, clientSecret, refreshToken);
- }
-
- @Override
- public void onAccessToken(String accessToken) {
- Log.v(TAG, "Update access token to \""
- + accessToken + "\"");
- store.updateAccessToken( accessToken);
- }
-
- @Override
- protected boolean executeRefreshToken() throws IOException {
- Log.v(TAG, "executeRefreshToken was called");
- return super.executeRefreshToken();
- }
- }
+ public APIBase base;
- public MyAccessProtectedResource
- newMyAccessProtectedResource() {
- AccessTokenResponse token = store.readTokens();
- Log.v(TAG, "tokens - access: \"" + token.accessToken +
- "\", refresh: \"" + token.refreshToken +
- "\", client_id: \"" + ClientCredentials.CLIENT_ID +
- "\", client_secret: \"" +
- ClientCredentials.CLIENT_SECRET +
- "\"");
- return new MyAccessProtectedResource(
- token.accessToken, httpTransport, jsonFactory,
- ClientCredentials.CLIENT_ID,
- ClientCredentials.CLIENT_SECRET,
- token.refreshToken);
+ public Oracle(APIBase apibase) {
+ this.base = apibase;
}
- abstract public String getResult();
+ abstract public Utterance getResult();
}