+package org.average.whereami;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+
+import com.google.api.client.auth.oauth2.draft10.AccessTokenResponse;
+
+public class PersistentStore {
+
+ private static final String ACCESS_TOKEN = "access_token";
+ private static final String EXPIRES_IN = "expires_in";
+ private static final String REFRESH_TOKEN = "refresh_token";
+ private static final String SCOPE = "scope";
+
+ private SharedPreferences prefs;
+
+ public PersistentStore(SharedPreferences prefs) {
+ this.prefs = prefs;
+ }
+
+ public AccessTokenResponse read() {
+ AccessTokenResponse accessTokenResponse = new AccessTokenResponse();
+ accessTokenResponse.accessToken = prefs.getString(ACCESS_TOKEN, "");
+ accessTokenResponse.expiresIn = prefs.getLong(EXPIRES_IN, 0);
+ accessTokenResponse.refreshToken = prefs.getString(REFRESH_TOKEN, "");
+ accessTokenResponse.scope = prefs.getString(SCOPE, "");
+ return accessTokenResponse;
+ }
+
+ public void write(AccessTokenResponse accessTokenResponse) {
+ Editor editor = prefs.edit();
+ editor.putString(ACCESS_TOKEN,accessTokenResponse.accessToken);
+ editor.putLong(EXPIRES_IN,accessTokenResponse.expiresIn);
+ editor.putString(REFRESH_TOKEN,accessTokenResponse.refreshToken);
+ editor.putString(SCOPE,accessTokenResponse.scope);
+ editor.commit();
+ }
+
+ public void clear() {
+ Editor editor = prefs.edit();
+ editor.remove(ACCESS_TOKEN);
+ editor.remove(EXPIRES_IN);
+ editor.remove(REFRESH_TOKEN);
+ editor.remove(SCOPE);
+ editor.commit();
+ }
+
+ public void updateAccessToken(String accessToken) {
+ Editor editor = prefs.edit();
+ editor.putString(ACCESS_TOKEN,accessToken);
+ editor.commit();
+ }
+
+ public String get(String key) {
+ return prefs.getString(key, "");
+ }
+
+ public void put(String key, String value) {
+ Editor editor = prefs.edit();
+ editor.putString(key, value);
+ editor.commit();
+ }
+}