package net.hockeyapp.android.utils; import android.content.Context; import android.content.SharedPreferences; /** * <h3>Description</h3> * * {@link SharedPreferences} helper class * */ public class PrefsUtil { private SharedPreferences mFeedbackTokenPrefs; private SharedPreferences.Editor mFeedbackTokenPrefsEditor; private SharedPreferences mNameEmailSubjectPrefs; private SharedPreferences.Editor mNameEmailSubjectPrefsEditor; /** * Private constructor prevents instantiation from other classes */ private PrefsUtil() { } /** * PrefsUtilHolder is loaded on the first execution of WbUtil.getInstance() * or the first access to PrefsUtilHolder.INSTANCE, not before. */ private static class PrefsUtilHolder { public static final PrefsUtil INSTANCE = new PrefsUtil(); } /** * Return the singleton. * * @return the singleton */ public static PrefsUtil getInstance() { return PrefsUtilHolder.INSTANCE; } /** * Save feedback token to {@link SharedPreferences} * * @param context the context to use * @param token the feedback token */ public void saveFeedbackTokenToPrefs(Context context, String token) { if (context != null) { mFeedbackTokenPrefs = context.getSharedPreferences(Util.PREFS_FEEDBACK_TOKEN, 0); if (mFeedbackTokenPrefs != null) { mFeedbackTokenPrefsEditor = mFeedbackTokenPrefs.edit(); mFeedbackTokenPrefsEditor.putString(Util.PREFS_KEY_FEEDBACK_TOKEN, token); mFeedbackTokenPrefsEditor.apply(); } } } /** * Retrieves the feedback token from {@link SharedPreferences} * * @param context the context to use * @return the feedback token */ public String getFeedbackTokenFromPrefs(Context context) { if (context == null) { return null; } mFeedbackTokenPrefs = context.getSharedPreferences(Util.PREFS_FEEDBACK_TOKEN, 0); if (mFeedbackTokenPrefs == null) { return null; } return mFeedbackTokenPrefs.getString(Util.PREFS_KEY_FEEDBACK_TOKEN, null); } /** * Save name and email to {@link SharedPreferences} * * @param context the context to use * @param name the user's name * @param email the user's email * @param subject the message subject */ public void saveNameEmailSubjectToPrefs(Context context, String name, String email, String subject) { if (context != null) { mNameEmailSubjectPrefs = context.getSharedPreferences(Util.PREFS_NAME_EMAIL_SUBJECT, 0); if (mNameEmailSubjectPrefs != null) { mNameEmailSubjectPrefsEditor = mNameEmailSubjectPrefs.edit(); if (name == null || email == null || subject == null) { mNameEmailSubjectPrefsEditor.putString(Util.PREFS_KEY_NAME_EMAIL_SUBJECT, null); } else { mNameEmailSubjectPrefsEditor.putString(Util.PREFS_KEY_NAME_EMAIL_SUBJECT, String.format("%s|%s|%s", name, email, subject)); } mNameEmailSubjectPrefsEditor.apply(); } } } /** * Retrieves the name and email from {@link SharedPreferences} * * @param context the context to use * @return a string with name, email, and subject */ public String getNameEmailFromPrefs(Context context) { if (context == null) { return null; } mNameEmailSubjectPrefs = context.getSharedPreferences(Util.PREFS_NAME_EMAIL_SUBJECT, 0); if (mNameEmailSubjectPrefs == null) { return null; } return mNameEmailSubjectPrefs.getString(Util.PREFS_KEY_NAME_EMAIL_SUBJECT, null); } }