package com.etiennelawlor.loop.prefs; import android.content.Context; import android.content.SharedPreferences; import com.etiennelawlor.loop.models.AccessToken; import com.etiennelawlor.loop.network.models.response.AuthorizedUser; import com.google.gson.Gson; /** * Created by etiennelawlor on 11/26/16. */ public class LoopPrefs { // region Constants private static final String LOOP_PREF = "LOOP_PREF"; private static final String KEY_ACCESS_TOKEN = "KEY_ACCESS_TOKEN"; private static final String KEY_AUTHORIZED_USER = "KEY_AUTHORIZED_USER"; // endregion // region Constructors private LoopPrefs() { //no instance } // region Getters public static AccessToken getAccessToken(Context context) { SharedPreferences preferences = getSharedPreferences(context); Gson gson = new Gson(); String json = preferences.getString(KEY_ACCESS_TOKEN, ""); AccessToken accessToken = gson.fromJson(json, AccessToken.class); return accessToken; } public static AuthorizedUser getAuthorizedUser(Context context) { SharedPreferences preferences = getSharedPreferences(context); Gson gson = new Gson(); String json = preferences.getString(KEY_AUTHORIZED_USER, ""); AuthorizedUser authorizedUser = gson.fromJson(json, AuthorizedUser.class); return authorizedUser; } // endregion // region Setters public static void saveAccessToken(Context context, AccessToken accessToken) { SharedPreferences.Editor editor = getEditor(context); Gson gson = new Gson(); String json = gson.toJson(accessToken); editor.putString(KEY_ACCESS_TOKEN, json) .apply(); } public static void saveAuthorizedUser(Context context, AuthorizedUser authorizedUser) { SharedPreferences.Editor editor = getEditor(context); Gson gson = new Gson(); String json = gson.toJson(authorizedUser); editor.putString(KEY_AUTHORIZED_USER, json) .apply(); } // endregion public static void signOut(Context context) { SharedPreferences.Editor editor = getEditor(context); editor.remove(KEY_ACCESS_TOKEN) .remove(KEY_AUTHORIZED_USER) .apply(); } // region Helper Methods private static SharedPreferences.Editor getEditor(Context context) { SharedPreferences preferences = getSharedPreferences(context); return preferences.edit(); } private static SharedPreferences getSharedPreferences(Context context) { return context.getSharedPreferences(LOOP_PREF, Context.MODE_PRIVATE); } // endregion }